packages feed

hxt (empty) → 7.1

raw patch · 677 files changed

+273119/−0 lines, 677 filesdep +HTTPdep +HUnitdep +basebuild-type:Customsetup-changedbinary-added

Dependencies added: HTTP, HUnit, base, haskell98, network, parsec

Files

+ LICENSE view
@@ -0,0 +1,9 @@+The MIT License++Copyright (c) 2005 Uwe Schmidt, Martin Schmidt, Torben Kuseler++Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:++The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ Makefile view
@@ -0,0 +1,116 @@+# $Id: Makefile,v 1.93 2006/11/24 07:41:37 hxml Exp $++HXT_HOME	= .++SOFTWARE	= HXT+VERSION		= 7.1+VERSIONTAG	= hxt-7-01				# use: make tag for creating cvs tag+LASTVERSION	= 7.0+DIST		= $(SOFTWARE)-$(VERSION)+PUBDATE		:= $(shell date +%Y-%m-%d)++EDIT_VERSION	= sed 's/%DISTFILE%/$(DIST)/g' \+		| sed 's/%SOFTWARE%/$(SOFTWARE)/g' \+		| sed 's/%VERSION%/$(VERSION)/g' \+		| sed 's/%PUBDATE%/$(PUBDATE)/g'+++# --------------------------------------------------++all		:+		$(MAKE) -C src      all VERSION=$(VERSION)+		$(MAKE) allexamples++allexamples	:+		$(MAKE) -C examples all VERSION=$(VERSION)++doc		:+		$(MAKE) -C src doc        VERSION=$(VERSION)+		$(MAKE) -C src doc_filter VERSION=$(VERSION)+		$(MAKE) -C src doc_arrow  VERSION=$(VERSION)++test		:+		$(MAKE) -C examples test VERSION=$(VERSION) LASTVERSION=$(LASTVERSION)++setup		: Setup.lhs+		ghc -package Cabal Setup.lhs -o setup+		rm -f Setup.hi Setup.o+++DIST_FILES	= Makefile README LICENSE Setup.lhs hxt.cabal+DIST_TAR	= $(DIST).tar.gz++hxt.cabal	: src/hxt-package.conf src/Makefile Makefile+		$(MAKE) -C src ../hxt.cabal VERSION=$(VERSION)++dist		: all doc hxt.cabal+		[ -d $(DIST) ] || mkdir -p $(DIST)+		$(MAKE) -C src      dist DIST=../$(DIST)+		$(MAKE) -C examples dist DIST=../$(DIST)+		$(MAKE) -C doc      dist DIST=../$(DIST)+		cat doc/index.html | $(EDIT_VERSION) > $(DIST)/doc/index.html+		cp $(DIST_FILES) $(DIST)++tarball		: dist+		tar -zcvf $(DIST_TAR) $(DIST)++clean		:+		$(MAKE) -C src      clean+		$(MAKE) -C examples clean+		$(MAKE) -C doc      clean+		rm -rf $(DIST) $(DIST_TAR) hxt.cabal setup .setup-config .installed-pkg-config dist++tag		:+		darcs tag $(VERSIONTAG) .++install		:+		$(MAKE) -C src install++uninstall		:+		$(MAKE) -C src uninstall++# --------------------------------------------------++.PHONY		: all doc test dist clean tag install uninstall tarball webpage cleanwebpage++# --------------------------------------------------++# Create webpage directory for distribution++WEBHOME		= ../../../fh/public_html/HXmlToolbox++webpage		: tarball+		[ ! -d $(WEBHOME) ] || echo "please clean $(WEBHOME) first: make cleanwebpage"+		mkdir -p $(WEBHOME)+		cp -r doc/hdoc doc/hdoc_filter doc/hdoc_arrow $(WEBHOME)/+		cp -r doc/hvalidator/thesis $(WEBHOME)/thesis+		cp -f doc/hvalidator/thesis.ps doc/hvalidator/thesis.pdf $(WEBHOME) || true+		[ -d $(WEBHOME)/hxpath ] || mkdir -p $(WEBHOME)/hxpath+		cp -f doc/hxpath/diplomarbeit.pdf $(WEBHOME)/hxpath+		[ -d $(WEBHOME)/relaxng ] || mkdir -p $(WEBHOME)/relaxng+		cp -f doc/relaxng/thesis.pdf $(WEBHOME)/relaxng+		[ -d $(WEBHOME)/cookbook ] || mkdir -p $(WEBHOME)/cookbook+		[ -d $(WEBHOME)/cookbook/doc ] || mkdir -p $(WEBHOME)/cookbook/doc+		cp -f doc/cookbook/doc/thesis.pdf $(WEBHOME)/cookbook/doc+		[ -d $(WEBHOME)/xslt ] || mkdir -p $(WEBHOME)/xslt+		cp -f doc/xslt/thesis.pdf $(WEBHOME)/xslt+		[ -d $(WEBHOME)/examples ] || mkdir -p $(WEBHOME)/examples+		cp -f examples/hsvg/*.html.jpg $(WEBHOME)/examples+		cp -f examples/hsvg/*.html.svg $(WEBHOME)/examples+		cp -f examples/hfilter/FilterExample.hs examples/hunit/HUnitExample.hs examples/hsvg/TreeVisualisation.hs $(WEBHOME)/examples+		cp -f examples/arrows/AGentleIntroductionToHXT/SimpleExamples.hs $(WEBHOME)/examples+		cat doc/index.html | $(EDIT_VERSION) > $(WEBHOME)/index.html+		cp $(DIST_TAR) $(WEBHOME)+		( echo "AddType text/html .html" \+		; echo "allow from all" \+		) > $(WEBHOME)/.htaccess+++cleanwebpage	:+		rm -rf $(WEBHOME)+++# --------------------------------------------------+#++# end Makefile
+ README view
@@ -0,0 +1,19 @@+$Id: README,v 1.25 2006/11/15 18:29:08 hxml Exp $++The Haskell XML Toolbox is a collection of tools for processing XML with+Haskell.++The Haskell XML Toolbox is available from:+    http://www.fh-wedel.de/~si/HXmlToolbox/++Detailed information about the features, changes, requirements, installation and documentation+is available from that web page.++A getting started tutorial for HXT is available+under "http://www.haskell.org/haskellwiki/HXT"++good luck++Uwe Schmidt++(uwe@fh-wedel.de)
+ Setup.lhs view
@@ -0,0 +1,8 @@+#!/usr/bin/runhugs -98++> module Main where++> import Distribution.Simple++> main :: IO ()+> main = defaultMain
+ doc/Makefile view
@@ -0,0 +1,28 @@+# $Id: Makefile,v 1.5 2006/11/11 15:36:03 hxml Exp $++HXT_HOME	= ..++all		:+		@echo "thesis not remade, command '$(MAKE) -C doc/hvalidator all' not executed (this is o.k)"++test		:++DIST		= $(HXT_HOME)/dist+DIST_DIR	= $(DIST)/doc+DIST_FILES	= Makefile \+		  hdoc hdoc_filter hdoc_arrow \+		  hvalidator/thesis \+		  $(wildcard hxpath/*.pdf) \+		  relaxng/thesis.pdf \+		  xslt/thesis.pdf \+		  cookbook/Makefile $(wildcard cookbook/*.hs) $(wildcard cookbook/examples/*.rdf) cookbook/doc/thesis.pdf++dist		:+		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)+		tar cvf - $(DIST_FILES) | ( cd $(DIST_DIR) ; tar xf - )+		cp hvalidator/thesis.pdf $(DIST_DIR)++clean		:+		rm -rf hdoc/* hdoc_arrow/* hdoc_filter/*++.PHONY		: all test dist clean
+ doc/cookbook/HRdf.hs view
@@ -0,0 +1,143 @@+{- |+   Module     : Main+   Author     : Manuel Ohlendorf+   +   Maintainer : Manuel Ohlendorf+   Stability  : experimental+   Portability: portable+   Version    : ++The main programme, using the RDF\/XML parser and the SPARQL query language parser.+-}++module Main+where++import Text.XML.HXT.Arrow+import System.IO      -- import the IO and commandline option stuff+import System.Environment+import System.Console.GetOpt+import System.Exit++import Char+import Data.Maybe+import RDF+-- ------------------------------------------------------------++-- |+-- the main programme,++main :: IO ()+main+    = do+      argv <- getArgs         -- get the commandline arguments+      (al, qr, src) <- cmdlineOpts argv       -- and evaluate them, return a key-value list+      [rc] <- runX (processDocument al qr src)+      exitProg (rc >= c_err)+-- ------------------------------------------------------------++exitProg  :: Bool -> IO a+exitProg True = exitWith (ExitFailure (-1))+exitProg False  = exitWith ExitSuccess++-- ------------------------------------------------------------++processDocument :: Attributes -> String -> String -> IOSArrow b Int+processDocument al qr src+    =   readDocument al src +        >>> removeAllWhiteSpace >>> propagateNamespaces +        >>>+        ifA normaliseOption +            (normalizeRDF >>> indentDoc >>> writeDocument al outputFile) +            (replaceChildren (parseRDF >>> processQuery qr)+             >>> writeDocument ((a_output_xml,v_0):al) outputFile)+        >>>+        getErrStatus+   where+    +    +   normaliseOption = getParamString a_normalise >>> isA (== "1")+    +   outputFile = (fromMaybe "" (lookup a_output_file al))++processQuery :: String -> IOSArrow RDFStore XmlTree +processQuery qr = ifP (const (qr == ""))+                      (arr showRDFStore)+                      ((getSPARQLQuery qr &&& this) +                        >>> arr2 evalQuery +                        >>> arr showResult)+                  >>> mkText++++-- ------------------------------------------------------------+--+-- the boring option definition and evaluation part+--+-- see doc for System.Console.GetOpt++a_normalise :: String+a_normalise = "normaliseRDF"++rdfOptions :: [OptDescr (String, String)]+rdfOptions = [Option "n" [a_normalise] (NoArg (a_normalise, "1")) "generate output in normalised RDF, SPARQL not supported here"+			]++progName	:: String+progName	= "RDFParser"+    +options 	:: [OptDescr (String, String)]+options+    = selectOptions [ a_help+		    ] generalOptions+      +++      selectOptions [ a_trace+		    , a_proxy+		    , a_use_curl+		    , a_options_curl+		    , a_encoding+		    ] inputOptions+      +++      selectOptions [ a_output_file+		    ] outputOptions+      +++      rdfOptions+      +++      showOptions++usage		:: [String] -> IO a+usage errl+    | null errl+	= do+	  hPutStrLn stdout use+	  exitProg False+    | otherwise+	= do+	  hPutStrLn stderr (concat errl ++ "\n" ++ use)+	  exitProg True+    where+    header = "RDFParser - a program to parse simple RDF/XML documents and search for triples with SPARQL\n"++ +             "Usage: " ++ progName ++ " [OPTION...] <SPARQL query> [URI or FILE]"+    use    = usageInfo header options+++cmdlineOpts 	:: [String] -> IO (Attributes,String, String)+cmdlineOpts argv+    = case (getOpt Permute options argv) of+      (ol,n,[]  )+	  -> do+	     (qr, sa) <- src n+	     help (lookup a_help ol)+	     return (ol, qr, sa)+      (_,_,errs)+	  -> usage errs+    where+    src [qr, i]	= return (qr, i)+    src []	= usage ["input file/uri missing"]+    src [u]	= return ("", u)+    src _ = usage ["only one input url or file allowed\n"]++    help Nothing	= return ()+    help (Just _)	= usage []++-- ------------------------------------------------------------
+ doc/cookbook/Makefile view
@@ -0,0 +1,23 @@+GHCFLAGS	= -Wall -O2+GHCPACKAGES	= -package hxt+GHC 		= ghc $(GHCFLAGS)+HDOC_DIR	= doc/hdoc+HDOC_FLAGS	=+RDF_SRC 	= $(wildcard ./*.hs) +RDF_LIB		= $(wildcard ./*.o) \+			  $(wildcard ./*.hi)++HDOCFLAGS	= -o $(HDOC_DIR) -h -t "RDF/XML parser and SPARQL parser"+HDOC		= haddock $(HDOCFLAGS)++prog		= HRdf ++all		: $(RDF_SRC)+		$(GHC) --make $(GHCPACKAGES) -o $(prog) $< ++doc 		: $(RDF_SRC)+		[ -d $(HDOC_DIR) ] || mkdir -p $(HDOC_DIR)+		$(HDOC) $(HDOC_FLAGS) $(RDF_SRC)++clean 		: $(RDF_LIB)+		rm -f $(RDF_LIB)	
+ doc/cookbook/RDF.hs view
@@ -0,0 +1,32 @@+{- |+   Module     : RDF+   Author     : Manuel Ohlendorf++   Maintainer : Manuel Ohlendorf+   Stability  : experimental+   Portability: portable+   Version    : ++This is the main entry point to all the RDF\/XML processing functions and the SPARQL parser.++It exports all important elements from the basic libraries.+-}++module RDF+    ( module RDFParser+    , module RDFNormalize+    , module RDFDataTypes+    , module SPARQLEval+    , module SPARQLDataTypes+    , module SPARQLFunctions+    )+where++import RDFParser+import RDFNormalize+import RDFDataTypes+import SPARQLEval+import SPARQLDataTypes+import SPARQLFunctions++
+ doc/cookbook/RDFDataTypes.hs view
@@ -0,0 +1,163 @@+{- |+   Module     : RDFDataTypes +   Author     : Manuel Ohlendorf++   Maintainer : Manuel Ohlendorf+   Stability  : experimental+   Portability: portable+   Version    : ++The core data types for RDF processing. ++The constructor functions for the data types are also listed hier. ++Some of the data types are also used by the SPARQL parser.++-}+module RDFDataTypes +    (RDFStore +    ,showRDFStore+    ,Triple (..) +    ,Object (..)+    ,Predicate (..)+    ,Subject (..)+    ,RDFTerm (..)+    ,URI+    ,Var+    ,mkPredicate+    ,mkTriple+    ,mkResource+    ,mkLangLiteral+    ,mkLiteral+    ,mkTypedLiteral+    ,mkSubjectBlankNode+    ,mkURIRef+    ,mkObjectBlankNode+    ,equalRDFTermURI)+where++import Char (toLower)++ +{- | +    Represents an RDF triple. The Show-implementation returns it in N-Triples syntax.+    Subject, Predicate and Object are shared by the SPARQParser and RDFParser.+    That's why every data type can hold a 'Var' which is needed by the SPARQL Parser+-}+data Triple = Triple Subject Predicate Object deriving (Ord,Eq)+++-- | returns the triples in N-Triples syntax+instance Show Triple+  where+  show (Triple s p o)   = show s ++ " "++ show p ++" " ++ show o++" ."+++-- | Represents a Subject or a Subject variable +data Subject = Subject RDFTerm -- ^ used by RDF parser and SPARQL parser+                | SubjectVar Var -- ^ used only by SPARQL parser, represents the variable of a query+                deriving (Ord,Eq)++instance Show Subject+    where+    show (Subject r)    = show r+    show (SubjectVar v) = show v++-- | Represents a Predicate or a Predicate variable  +data Predicate = Predicate URI -- ^ used by RDF parser and SPARQL parser+                | PredicateVar Var -- ^ used only by SPARQL parser, represents the variable of a query+                deriving (Ord,Eq)++instance Show Predicate+    where+    show (Predicate u)    = '<' : u ++ ">"+    show (PredicateVar v) = show v++-- | Represents a Object or a Object variable+data Object = Object RDFTerm -- ^ used only by SPARQL parser, represents the variable of a query+              | ObjectVar Var -- ^ used only by SPARQL parser, represents the variable of a query+              deriving (Ord,Eq)++instance Show Object +    where+    show (Object r)    = show r+    show (ObjectVar v) = show v++-- | The variable in SPARQL query+type Var = String+++-- | Represents all logical units of a Subject or Object +data RDFTerm = URIRef URI                       -- ^ a URI reference+               | RDFLiteral String              -- ^ a plain literal+               | RDFLangLiteral String String   -- ^ a literal with language extension (literal, language)+               | RDFTypedLiteral String URI     -- ^ a typed literal (literal, type uri)+               | BlankNode String               -- ^ a blank node with blank node identifier+                 deriving (Ord,Eq)++-- | A Uniform Resource Identifier+type URI = String++instance Show RDFTerm+  where+  show (URIRef uri)              = '<' : uri ++ ">"+  show (BlankNode i)             = '_' : ':' : i+  show (RDFLiteral lit)          = '"' : lit ++ "\"" +  show (RDFLangLiteral lit lang) = '"' : lit ++ "\"" ++ "@" ++ lang+  show (RDFTypedLiteral l u)     = '\"' : l ++ "\"^^" ++"<"++ u ++">"+++-- the different construtor functions++-- | 'Subject' constructor with URIref+mkURIRef :: URI -> Subject+mkURIRef u = Subject (URIRef u)++-- | 'Subject' constructor with blank node identifier+mkSubjectBlankNode :: String -> Subject+mkSubjectBlankNode i = Subject (BlankNode i)++-- | 'Predicate' constructor with URIref+mkPredicate :: URI -> Predicate+mkPredicate u = Predicate u ++-- | 'Object' constructor with blank node identifier+mkObjectBlankNode :: String -> Object+mkObjectBlankNode i = Object (BlankNode i)++-- | 'Object' constructor with URIref (a resource)+mkResource :: String -> Object+mkResource r  = Object (URIRef r)++-- | 'Object' constructor with plain literal+mkLiteral :: String -> Object+mkLiteral l  = Object (RDFLiteral l) ++-- | 'Object' constructor with literal and language information+mkLangLiteral :: String -> String -> Object+mkLangLiteral lang lit = Object (RDFLangLiteral  lit ((map $ toLower) $ lang)) ++-- | 'Object' constructor with typed literal+mkTypedLiteral :: URI -> String -> Object+mkTypedLiteral t l  = Object (RDFTypedLiteral l t) ++-- | Equal function for 'RDFTerm' and 'URI'+equalRDFTermURI :: RDFTerm -> URI -> Bool+equalRDFTermURI (URIRef u) uri = u == uri+equalRDFTermURI _ _ = False++-- | A list of triples+type RDFStore = [Triple]++-- | show function for 'RDFStore'+showRDFStore ::  RDFStore ->  String+showRDFStore []  = ""+showRDFStore (x:xs) =  show x ++ "\n" ++ showRDFStore xs++--printResult :: RDFStore -> String+--printResult xs = show (length xs) ++" Triples found\n"++-- | constructor function for 'Triple'+mkTriple :: Subject -> Predicate -> Object -> Triple+mkTriple s p o = Triple s p o+
+ doc/cookbook/RDFFunctions.hs view
@@ -0,0 +1,100 @@+{- |+   Module     : RDFFunctions +   Author     : Manuel Ohlendorf  ++   Maintainer : Manuel Ohlendorf+   Stability  : experimental+   Portability: portable+   Version    :++All RDF related functions, predicates and syntax term definitions+-}+module RDFFunctions+where++import Text.XML.HXT.Arrow++-- namespace definition for RDF and others++-- | Namespace definition for RDF and XML+namespaceXML, namespaceRDF :: String+namespaceRDF = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"+namespaceXML = "http://www.w3.org/XML/1998/namespace"++-- | XML terms+xml_base, xml_lang :: QName+xml_base = mkNsName "xml:base" namespaceXML+xml_lang = mkNsName "xml:lang" namespaceXML++-- | RDF Core Syntax Terms+rdf_RDF,rdf_about,rdf_ID,rdf_resource,rdf_nodeID,rdf_datatype,rdf_parseType :: QName+rdf_RDF           = mkNsName "rdf:RDF" namespaceRDF+rdf_about         = mkNsName "rdf:about" namespaceRDF+rdf_ID            = mkNsName "rdf:ID" namespaceRDF  +rdf_resource      = mkNsName "rdf:resource" namespaceRDF+rdf_nodeID        = mkNsName "rdf:nodeID" namespaceRDF+rdf_datatype      = mkNsName "rdf:datatype" namespaceRDF+rdf_parseType     = mkNsName "rdf:parseType" namespaceRDF --TODO ParseType  Resource => keine BlankNode, kommt in Properties vor++-- | Other RDF Syntax Terms+rdf_Description,rdf_li ::QName+rdf_Description   = mkNsName "rdf:Description" namespaceRDF+rdf_li            = mkNsName "rdf:li" namespaceRDF++-- | RDF Container Terms+rdf_Seq , rdf_Bag , rdf_Alt :: QName+rdf_Seq = mkNsName "rdf:Seq" namespaceRDF+rdf_Bag = mkNsName "rdf:Bag" namespaceRDF+rdf_Alt = mkNsName "rdf:Alt" namespaceRDF++-- | Allowed Property Names+rdf_Statement,rdf_subject,rdf_predicate,rdf_object,rdf_type,rdf_value,rdf_first,rdf_rest :: QName+rdf_Statement = mkNsName "rdf:Statement"namespaceRDF+rdf_subject   = mkNsName "rdf:subject" namespaceRDF+rdf_predicate = mkNsName "rdf:predicate" namespaceRDF+rdf_object    = mkNsName "rdf:object" namespaceRDF+rdf_type  	  = mkNsName "rdf:type" namespaceRDF+rdf_value 	  =	mkNsName "rdf:value" namespaceRDF+rdf_first  	  = mkNsName "rdf:first" namespaceRDF+rdf_rest  	  = mkNsName "rdf:rest" namespaceRDF+ --und: _n where n is a decimal integer greater than zero with no leading zeros.++-- | URI of XML Literals+xmlliteral :: String+xmlliteral = "http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral"+++{- Functions for RDF Parsing and Normalizing -}++-- | rdf:RDF test+isRDF :: (ArrowXml a) => a XmlTree XmlTree+isRDF = isElem >>>  hasQName rdf_RDF  ++-- | Tests, wether the element is a node element+isNodeElem :: (ArrowXml a) => a XmlTree XmlTree+isNodeElem = isElem >>> (hasQName rdf_Description >>> (hasQAttr rdf_nodeID `orElse` hasQAttr rdf_about)) ++-- | Tests, wether the element is a resource element+isResource :: (ArrowXml a) => a XmlTree XmlTree+isResource = isEmptyElem >>> hasQAttr rdf_resource ++-- | Checks wether an element is empty or not+isEmptyElem :: (ArrowXml a) => a XmlTree XmlTree +isEmptyElem = (isElem >>> neg getChildren) `guards` this++-- | Tests, wether an element has a datatype definition+hasDatatype :: (ArrowXml a) => a XmlTree XmlTree+hasDatatype = hasQAttr rdf_datatype++-- | Tests, wether an element as rdf:nodeID attribute+hasNodeID :: (ArrowXml a) => a XmlTree XmlTree+hasNodeID = hasQAttr rdf_nodeID++-- | has parse type \"Literal\" or not+hasLiteralParseType :: (ArrowXml a) => a XmlTree XmlTree+hasLiteralParseType = hasQAttrValue rdf_parseType (== "Literal")++-- | has parse type \"Resource\" or not+hasResourceParseType :: (ArrowXml a) => a XmlTree XmlTree+hasResourceParseType = hasQAttrValue rdf_parseType (== "Resource") -- for omitting blank nodes +
+ doc/cookbook/RDFNormalize.hs view
@@ -0,0 +1,223 @@+{- |+   Module     : RDFNormalize +   Author     : Manuel Ohlendorf  ++   Maintainer : Manuel Ohlendorf+   Stability  : experimental+   Portability: portable+   Version    :++Contains all normalisation arrows and exports the main entry point to them+-}++module RDFNormalize  (normalizeRDF)+where+import Char+import Text.XML.HXT.Arrow+import RDFFunctions+import Maybe+import Text.XML.HXT.DOM.Util+++-- -------------------------------------------------------------+-- ***** NORMALISATION ****+-- -------------------------------------------------------------++-- | The normalisation arrow. +-- Creates a normalised RDF\/XML document where several abbreviations have been removed\/normalised.+-- Not every abbreviation is supported right now.+normalizeRDF :: IOSArrow XmlTree XmlTree+normalizeRDF = processChildren $ +               seqA [changeBase+                    ,mkAbsoluteURIs+                    ,convertToUtf+                    ,processContainer+                    ,processTypedElem+                    ,generateDescElem+                    ,reifyStatement+                    ,generateNodeID+                    ,processChildren (multi isNodeElem)+                    ,deleteDuplicate+                    ,processPropertyAttr -- all Desc ELements must be generated and unfolded befor generating objects+                    ]++-- | removes duplicate node elements, generated by the unfolding+-- every information of this elements is copied to the element above+deleteDuplicate :: (ArrowXml a) => a XmlTree XmlTree+deleteDuplicate +    = processTopDown (+        (processChildren( (addAttrl (getChildren >>> getAttrl) >>> setChildren []) +                           `when` +                          (getChildren >>> isNodeElem))+        )`when` (isNodeElem >>> (deep isNodeElem) ) --`when` (isNodeElem >>> (getChildren>>>getChildren >>> isNodeElem) ))+                     )+++-- | Node elements which do not have the name rdf:Description, are extended by the predicate rdf:type and the subject+-- name as value.+processTypedElem ::  (ArrowXml a) => a XmlTree XmlTree+processTypedElem +  = processTopDown (+      (insertChildrenAt 0 typeElem >>> setElemName rdf_Description)+      `when`  +      ((neg isEmptyElem >>> isTypedNodeElem) `orElse` (isTypedNodeElem >>> nonRDFAttributes)) )+    +    where +    typeElem +      = mkElement rdf_type (qattr rdf_resource (getUniversalUri >>> mkText)) none+    +    isTypedNodeElem +      = isElem  >>> (hasQAttr rdf_nodeID `orElse` hasQAttr rdf_about) >>> neg (hasQName rdf_Description)+    +    nonRDFAttributes = getAttrl >>> neg ( hasQName rdf_about +                                          `orElse` hasQName rdf_nodeID +                                          `orElse` hasName "xml:lang"+                                          `orElse` hasQName rdf_ID)++-- | Deals with reification elements. Is not able to process every kind of reification case, yet.+reifyStatement :: IOSArrow XmlTree XmlTree+reifyStatement = processTopDown((catA[this, statement, subject, predicate, object] >>> processChildren (removeQAttr rdf_ID)) +                                 `when`+                                 (isElem >>> (hasQAttr rdf_about) >>> getChildren >>> hasQAttr rdf_ID))+                                    where+                                    aboutValue = ((getBaseURI >>> arr(++"#")) &&& (getChildren>>>getQAttrValue rdf_ID)) >>> arr(uncurry (++))+                                +                                    statement = generateReifyNode rdf_type rdf_resource (txt (universalUri rdf_Statement ))+                                    subject   = generateReifyNode rdf_subject rdf_resource (getQAttrValue rdf_about >>> mkText)+                                    predicate = generateReifyNode rdf_predicate rdf_resource (getChildren >>>getUniversalUri >>> mkText)+                                    object = ifA (getChildren >>> hasQAttr rdf_resource) +                                                             (generateReifyNode rdf_object rdf_resource (getChildren >>>getChildren))+                                                             (mkElement rdf_Description (qattr rdf_about (aboutValue >>> mkText)) (mkElement rdf_object none (getChildren>>>getChildren)))++                                    generateReifyNode theType objectType theObj = mkElement rdf_Description (qattr rdf_about (aboutValue >>> mkText)) (mkElement theType (qattr objectType theObj) none) ++-- | Replaces every rdf:li element with a unique number+processContainer :: IOSArrow XmlTree XmlTree+processContainer = processTopDown((arr setElemName $< counterLi)+                                     `when`+                                     (isElem >>> hasQName rdf_li))+                                      where+                                      counterLi = getCounter "li_counter"+                                                  >>> (arr ('_':)) +                                                  >>> arr((flip mkNsName) $ namespaceRDF)  + ++-- | generates blank node identifiers +-- furthermore, the fragment identifers are processed here.+generateNodeID :: IOSArrow XmlTree XmlTree+generateNodeID+    = processTopDown (choiceA   [choice1 :-> addAttrl (qattr rdf_nodeID (getCounter "node_id">>>(arr("genid"++)) >>> mkText))   -- id erzeugen und zustand verändern+                                ,(isElem >>> hasQAttr rdf_ID) :-> ((addAttrl (qattr rdf_about attrValue) )>>>removeQAttr rdf_ID) +                                ,this:-> this+                              ]+                     )+                     where +                     choice1 = ( isElem >>> hasQName rdf_Description >>> neg ( hasQAttr rdf_nodeID `orElse` hasQAttr rdf_about `orElse` hasQAttr rdf_ID))++                     --creates an absolut from the input                        +                     attrValue = getQAttrValue rdf_ID >>> arr('#':)>>> mkAbsURI >>> mkText++-- | processing of xml:base+changeBase :: IOSArrow XmlTree XmlTree+changeBase+        = processTopDownWithAttrl ( +            (perform (getAttrValue "xml:base" >>> changeBaseURI)) +            `when` (isElem >>> hasAttr "xml:base")+            )+++-- | generate a simple counter and returns its value as String+getCounter :: String -> IOSArrow b String+getCounter name   +        = arr genNewId                      +     $<+     getParamInt 1 name       -- default start wert 0+   where+   genNewId :: Int -> IOSArrow b String+   genNewId i+        = setParamInt name (i+1)              -- wird hier beim ersten aufruf in den zustand geschrieben+            >>>+            constA (show i)++++-- | generates node elements for property-and-node elements.+generateDescElem :: (ArrowXml a) => a XmlTree XmlTree+generateDescElem +    = processTopDown (replaceChildren (mkElement rdf_Description none getChildren) +                      `when` hasResourceParseType )+++{- generates Property and Object for Property attributes in subject elements-}+processPropertyAttr :: (ArrowXml a) => a XmlTree XmlTree+processPropertyAttr +    = processTopDown (+            insertChildrenAt 0 propertyElements +            `when` isNodeElem )++propertyElements :: (ArrowXml a) => a XmlTree XmlTree+propertyElements+    = getAttrl +      >>> neg ( hasQName rdf_about +                `orElse` hasQName rdf_nodeID+                `orElse` hasName "xml:lang"+                `orElse` hasQName rdf_ID )+      >>> arr mkqelem $<<< getQName &&& listA none &&& (listA (constA getChildren))+++-- | changes every relative URI to the absolute uri.                                            +mkAbsoluteURIs :: IOSArrow XmlTree XmlTree+mkAbsoluteURIs = processChildren (mkAbs `when` isElem)+      where+      mkAbs = mkAbsURIs $< getBaseURI ++mkAbsURIs   :: String -> IOSArrow XmlTree XmlTree+mkAbsURIs base+        = processTopDown editURIs       -- edit all refs in documnt+        where++        -- build the edit filter from the list of element-attribute names+        editURIs = seqA . map mkAbs $ rdfAttrs+      +        -- list of attributes which can have relative uris+        rdfAttrs = [ rdf_about,rdf_datatype,rdf_resource]++        -- change the reference in attribute attrName of element elemName++        mkAbs attrName = processAttrl ( changeAttrValue (mkAbsURIString base)+                `when`+                hasQName attrName+                )++-- | compute an absolute URI, if not possible leave URI unchanged+mkAbsURIString  :: String -> String -> String+mkAbsURIString base uri+    = fromMaybe uri . expandURIString uri $ base++++-- | converts every non US-ASCII character to the encoded UNICODE variant+convertToUtf :: (ArrowXml a) => a XmlTree XmlTree+convertToUtf+        = processTopDown editToUtf+      where editToUtf = changeText toUtf `when` isText++toUtf :: [Char] -> [Char]+toUtf = concatMap charToUtf++charToUtf :: Char -> String+charToUtf c+  | ord c < 0x80  = [c]+  | otherwise = "\\u00" ++ charToHexString c++{-hexChar :: Int -> String+hexChar i | i < 0 = hexChar (i + 2^16)+hexChar i =  toHex (i `div` 256) ++ toHex (i `mod` 256)++toHex :: Int -> [Char]+toHex i = [toHexDigit (i `div` 16), toHexDigit (i `mod` 16)]++toHexDigit :: Int -> Char+toHexDigit x+  | x < 10= chr ((ord '0')+x)+  | otherwise= chr ((ord 'A')+x-10)-}
+ doc/cookbook/RDFParser.hs view
@@ -0,0 +1,83 @@+{- |+   Module     : RDFParser +   Author     : Manuel Ohlendorf  ++   Maintainer : Manuel Ohlendorf+   Stability  : experimental+   Portability: portable+   Version    :++Arrows to parse an RDF\/XML document. Two versions of processing arrows are provided. ++parseRDF normalises the document before it parses the document and creates the list of triples. ++processRDF expects a normalised document for parsing.+-}++module RDFParser (processRDF,parseRDF) +where++import Text.XML.HXT.Arrow+import RDFDataTypes+import RDFFunctions+import RDFNormalize++-- -------------------------------------------------------------+-- ***** PARSEN ****+-- -------------------------------------------------------------++-- | normalises the document and then parses it.+--+-- > normalizeRDF >>> processRDF+--+-- see 'normalizeRDF'+parseRDF :: IOSArrow XmlTree RDFStore+parseRDF = normalizeRDF >>> processRDF++-- | just processes the document and does not do any normalisation.+processRDF :: (ArrowXml a) => a XmlTree RDFStore+processRDF = getChildren >>> isRDF `guards` arr triples  ++-- | stores the resulting triples in a list+triples :: XmlTree -> RDFStore +triples = runLA  ( processSubject)++-- | processes the node elements+processSubject :: (ArrowXml a) => a XmlTree Triple +processSubject +    = getChildren >>> (isNodeElem `guards` (arr getTriple $< blankOrNot))+    where+    blankOrNot +        = ifA hasNodeID+        ((getQAttrValue rdf_nodeID >>> arr mkSubjectBlankNode) &&& getAttrValue "xml:lang") +        ((getQAttrValue rdf_about >>> arr mkURIRef) &&& getAttrValue "xml:lang")++-- | processes the property nodes+processPredicate :: (ArrowXml a) => a XmlTree Predicate  +processPredicate +    = choiceA [ hasResourceParseType :-> (getUniversalUri >>> arr mkPredicate),+               this :-> (getUniversalUri >>> arr mkPredicate)+              ]+-- | generates the object elements+processObject :: (ArrowXml a) => String -> a XmlTree Object +processObject lang+    = choiceA [isResource                    :-> (getQAttrValue rdf_resource >>> arr mkResource)  +              ,(isEmptyElem >>> hasNodeID)   :-> (getQAttrValue rdf_nodeID >>> arr mkObjectBlankNode)+              ,hasDatatype                   :-> op1+              ,hasLiteralParseType           :-> op2+              ,hasAttr "xml:lang"            :-> ((getAttrValue "xml:lang"  &&& xshow getChildren) >>> arr2 mkLangLiteral)+              ,isA(const (length lang /= 0)) :-> (xshow getChildren >>> arr (mkLangLiteral lang))+              ,this                          :-> (xshow getChildren >>> arr mkLiteral)  +              ]+                where+                op1 = getQAttrValue rdf_datatype &&& (xshow getChildren) >>> arr2 mkTypedLiteral+                op2 = xshow getChildren >>> arr (mkTypedLiteral xmlliteral)++-- generates the whole triple+getTriple :: (ArrowXml a) => (Subject, String) -> a XmlTree Triple +getTriple (subject,lang)+        = getChildren >>> (processPredicate &&& processObject lang) >>> arr2 (mkTriple subject) ++++
+ doc/cookbook/SPARQLDataTypes.hs view
@@ -0,0 +1,53 @@+{- |+   Module     : SPARQLDataTypes +   Author     : Manuel Ohlendorf  ++   Maintainer : Manuel Ohlendorf+   Stability  : experimental+   Portability: portable+   Version    :++The core SPARQL query language data types. Every data type has two constructors: ++One for the parser result and the other for the normalised version of this data type.+-}+module SPARQLDataTypes+    (Query (..)+    ,GraphPattern (..)+    ,PatternElement (..)+    ,TriplePattern (..)+    )+where++import RDFDataTypes++-- | Represents a SPARQL query+data Query = Query [Var] GraphPattern       -- ^ the parse result: a list of variables from the SELECT-Clause +                                            --  and the graph pattern from the WHERE-clause.+            | QueryN [Var] [TriplePattern]  -- ^ the normalised query: a list of variables and a list of triple patterns +            | Empty                         -- ^ the empty query: only returned when parser fails+            deriving (Show,Ord,Eq)++{- two versions of triple patterns. the first one is the unnomalized version with predicate-object and object list abbreviations. the second is normalized. only this can be processed by the query evaluator -}+-- | Represents a triple pattern+data TriplePattern = TriplePat Subject [(Predicate, [Object])] -- ^ triple pattern, +                                                               -- containing predicate-object and object list abbreviations+                    | TriplePatN Subject Predicate Object      -- ^ normalised triple pattern with simple triples+                    deriving (Show,Ord,Eq)++-- | The graph pattern, only used by the SPARQL parser.+data GraphPattern = GraphPattern [PatternElement]+                    deriving (Show,Ord,Eq)++-- | The pattern element +data PatternElement = PET TriplePattern     -- ^ represents a query with a single triple pattern+                    | PEG [PatternElement]  -- ^ represents a query with a list of triple patterns+                    deriving (Show,Ord,Eq)++++++++
+ doc/cookbook/SPARQLEval.hs view
@@ -0,0 +1,109 @@+{- |+   Module     : SPARQLEval +   Author     : Manuel Ohlendorf  ++   Maintainer : Manuel Ohlendorf+   Stability  : experimental+   Portability: portable+   Version    :++The core evaluation function.+-}+module SPARQLEval+    (evalQuery)++where++import Text.XML.HXT.DOM.Util (noDoubles)+import SPARQLDataTypes+import SPARQLFunctions+import RDFDataTypes+import List++-- | a helper data type, only for internal use+data Binding = BT Var RDFTerm | BU Var URI deriving (Show,Eq,Ord)++mkTBind :: Var -> RDFTerm -> Binding+mkTBind v t = BT v t++mkUBind :: Var -> URI -> Binding+mkUBind v u = BU v u++-- | generates all possible bindings, also returns the triple with the containing binding. This is not needed yet, but+-- can neccesary later.+substituteOne :: Triple -> TriplePattern -> [(Triple,[Binding])]+substituteOne tr@(Triple (Subject a) (Predicate b) (Object c)) (TriplePatN (Subject x) (Predicate y) (Object z)) + = if (a == x &&  b == y && c == z) then [(tr,[])] else []++substituteOne tr@(Triple (Subject a) (Predicate b) (Object c)) (TriplePatN (SubjectVar x) (Predicate y) (Object z)) + = if (b == y && c == z) then [(tr,[mkTBind x a])] else []++substituteOne tr@(Triple (Subject a) (Predicate b) (Object c)) (TriplePatN (Subject x) (PredicateVar y) (Object z)) + = if (a == x && c == z) then [(tr,[mkUBind y b])] else []++substituteOne tr@(Triple (Subject a) (Predicate b) (Object c)) (TriplePatN (Subject x) (Predicate y) (ObjectVar z)) + = if (a == x &&  b == y) then [(tr,[mkTBind z c])] else []++substituteOne tr@(Triple (Subject a) (Predicate b) (Object c)) (TriplePatN (SubjectVar x) (PredicateVar y) (Object z)) + | x == y =  if (equalRDFTermURI a b && c == z) then [(tr,[(mkTBind x a),(mkUBind y b)])] else []+ | otherwise = if (c == z) then [(tr,[(mkTBind x a),(mkUBind y b)])] else []++substituteOne tr@(Triple (Subject a) (Predicate b) (Object c)) (TriplePatN (SubjectVar x) (Predicate y) (ObjectVar z)) + | x == z =  if (a == c && b == y) then [(tr,[(mkTBind x a),(mkTBind z c)])] else []+ | otherwise = if (b == y) then [(tr,[(mkTBind x a),(mkTBind z c)])] else []++substituteOne tr@(Triple (Subject a) (Predicate b) (Object c)) (TriplePatN (Subject x) (PredicateVar y) (ObjectVar z)) + | y == z =  if (equalRDFTermURI c b && a == x) then [(tr,[(mkUBind y b),(mkTBind z c)])]  else []+ | otherwise = if (a == x) then [(tr,[(mkUBind y b),(mkTBind z c)])] else []++substituteOne tr@(Triple (Subject a) (Predicate b) (Object c)) (TriplePatN (SubjectVar x) (PredicateVar y) (ObjectVar z))+ | x == y && y == z =  if (equalRDFTermURI a b && equalRDFTermURI c b) +                       then [(tr,[(mkTBind x a), (mkUBind y b),(mkTBind z c)])] else []+ | x == y =  if (equalRDFTermURI a b) +             then [(tr,[(mkTBind x a), (mkUBind y b),(mkTBind z c)])] else []+ | y == z =  if (equalRDFTermURI c b) +             then [(tr,[(mkTBind x a), (mkUBind y b),(mkTBind z c)])] else []+ | x == z =  if (a == c) +             then [(tr,[(mkTBind x a), (mkUBind y b),(mkTBind z c)])] else []+ | x/=y && y/=z && x/=z  = [(tr,[(mkTBind x a), (mkUBind y b),(mkTBind z c)])]+ | otherwise = []+substituteOne (Triple _ _ _) _ = [] ++-- different selector functions.++getBindings :: [(Triple,[Binding])] -> [[Binding]]+getBindings [] = []+getBindings (x:xs) = [snd x] ++ getBindings xs++getVarBinding :: Var -> Binding -> [(Either RDFTerm URI)]+getVarBinding v (BT a b) = if v==a then [ (Left b)] else []+getVarBinding v (BU a b) = if v==a then [ (Right b)] else []++getVarBindings :: Var -> [Binding] -> [(Either RDFTerm URI)]+getVarBindings _ [] = []+getVarBindings v (x:xs) = getVarBinding v x ++ getVarBindings v xs++getAllVarBindings :: [Var] -> [Binding] -> [(Var,[(Either RDFTerm URI)])]+getAllVarBindings [] _ = []+getAllVarBindings (x:xs) ys = (x,(getVarBindings x ys)) : getAllVarBindings xs ys+++substitute :: [Triple] -> [TriplePattern] ->  [(Triple,[Binding])]+substitute [] [] = []+substitute _ []  = []+substitute [] _ = []+substitute (x:xs) ys = concat (map (substituteOne x) ys) ++ substitute xs ys++++-- | The evaluation function. +-- Takes a 'Query' and a 'RDFStore' and generates a list of possible bindings between variables and concrete values.+-- If the 'Query' is not in the normalised form, it is normalised before evaluation starts.+evalQuery :: Query -> RDFStore -> [(Var,[(Either RDFTerm URI)])] +evalQuery Empty _ = []+evalQuery _ [] = []+evalQuery (Query a b ) store = evalQuery (normalizeQuery (Query a b)) store +evalQuery (QueryN var tr) store = getAllVarBindings var (concat(getBindings(noDoubles (substitute store tr))))+++
+ doc/cookbook/SPARQLFunctions.hs view
@@ -0,0 +1,88 @@+{- |+   Module     : SPARQLFunctions +   Author     : Manuel Ohlendorf  ++   Maintainer : Manuel Ohlendorf+   Stability  : experimental+   Portability: portable+   Version    :++Several functions used for query processing.+-}+module SPARQLFunctions+    (+    normalizeQuery+    ,showResult+    ,getSPARQLQuery+    )+where++import SPARQLDataTypes+import RDFDataTypes+import SPARQLParser+import Text.ParserCombinators.Parsec (parse)+import Text.XML.HXT.Arrow++-- | normalises the Triple Patterns+normalizeTripleP :: TriplePattern -> [TriplePattern]+normalizeTripleP (TriplePatN s p o ) = [TriplePatN s p o]+normalizeTripleP (TriplePat _ [])          = []+normalizeTripleP (TriplePat _ ((_,[]):_)) = []+normalizeTripleP (TriplePat s ((p,[o]):xs)) =  (TriplePatN s p o) : normalizeTripleP(TriplePat s xs)+normalizeTripleP (TriplePat s ((p,(x:xs)):ys)) = (TriplePatN s p x) : normalizeTripleP (TriplePat s [(p,xs)]) +                                                ++ normalizeTripleP (TriplePat s ys)++-- | normalises the Pattern elements+normalizePatternElement :: PatternElement -> [TriplePattern]+normalizePatternElement (PET t) = normalizeTripleP t+normalizePatternElement (PEG []) = []+normalizePatternElement (PEG (x:xs)) = normalizePatternElement x ++ normalizePatternElement' xs+                                        +normalizePatternElement' :: [PatternElement] -> [TriplePattern]+normalizePatternElement' [] = []+normalizePatternElement' (x:xs) = normalizePatternElement x  ++ normalizePatternElement' xs++-- | normalises the graph patterns+normalizeGraphPattern :: GraphPattern -> [TriplePattern]+normalizeGraphPattern (GraphPattern []) = []+normalizeGraphPattern (GraphPattern (x:xs)) = normalizePatternElement x ++ normalizePatternElement' xs ++-- | normalises a 'Query' by removing all abbreviations. +-- The result is a 'Query' containing a list of simple triple patterns.+-- This function has to be called be for query evaluation.+normalizeQuery :: Query -> Query+normalizeQuery Empty = Empty+normalizeQuery (QueryN _ [])  = Empty+normalizeQuery (QueryN v (x:xs)) = QueryN v (x:xs)+normalizeQuery (Query v gp) = QueryN v (normalizeGraphPattern gp)++showIt :: [(Either RDFTerm URI)] -> String+showIt [] = ""+showIt ((Right u) :xs) = '|' : "<" ++ u ++">|\n" ++ showIt xs+showIt ((Left r) :xs)  = '|' : show r ++"|\n" ++ showIt xs++-- | The show function for printing out the result of the query evaluation+showResult :: [(Var,[(Either RDFTerm URI)])] -> String+showResult [] = ""+showResult ((var, xs):ys) +    = if (xs /=[]) +      then '\t' : '?':var ++ "\n" ++ (showIt xs) ++"\n"++ (showResult ys) +      else ""+++-- | The main entry point, when combining the SPARQL parser with a arrow based programme.+-- Executes the SPARQL parser and returns a 'Query'.+--+-- Raises an error if the parsing fails and returns a empty 'Query'.+--+-- The extra parameter is the query string which will be parsed.+-- The arrow input is ignored, the output is the parsed query.+getSPARQLQuery :: String -> IOSArrow a Query +getSPARQLQuery queryStr+    = case (parse parseSPARQL "" queryStr) of+      Left parseError+       -> (issueFatal ("Syntax error in SPARQL query " +                        ++ show queryStr +                        ++ ": " ++ show parseError) >>> constA (Empty))+      Right theQuery+       -> constA (theQuery)
+ doc/cookbook/SPARQLParser.hs view
@@ -0,0 +1,454 @@+{- |+   Module     : SPARQLParser +   Author     : Manuel Ohlendorf  ++   Maintainer : Manuel Ohlendorf+   Stability  : experimental+   Portability: portable+   Version    :++The SPARQL query language Parsec parser. Exports the main parser. The grammar of the query language can be found here: <file:../grammar.txt>+-}+++--Some of the parsers cover more than one production. Some abbreviations have been commented out.++module SPARQLParser +   (parseSPARQL)+where++import Char+    (toLower+    ,toUpper+    )++import Text.ParserCombinators.Parsec+import SPARQLDataTypes+import RDFDataTypes+import Monad+import Text.XML.HXT.Parser.XmlParser+    (skipS0+    )+++-- some useful token and symbol parser+xsd, rdf, rdfType, booleanD, integerD, doubleD :: String+xsd         = "http://www.w3.org/2001/XMLSchema#"+rdf         = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"+rdfType     = rdf ++"type"+booleanD    = xsd ++ "boolean"+doubleD     = xsd ++ "double"+integerD    = xsd ++ "integer"+++lbrace, rbrace, dot, com, semcol :: Parser ()+lbrace      = tokenParser (symbol "{")+rbrace      = tokenParser (symbol "}")+dot         = tokenParser (symbol ".")+com         = tokenParser (symbol ",")+semcol      = tokenParser (symbol ";")++caseChar        :: Char -> CharParser st Char+caseChar c       = satisfy (\x -> toUpper x == toUpper c) <?> ""++caseString      :: String -> CharParser st () +caseString cs    = mapM_ caseChar cs <?> "" ++tokenParser :: Parser String -> Parser ()+tokenParser p+    = try ( do+            skipS0+            p+            skipS0+           )++symbol :: String -> Parser String+symbol s = try (string s)++-- | The main entry point to the parser.+-- Creates a 'Query' as result, which contains all SPARQL abbreviations.+-- In order to evaluate the result, it has to be normalised before.+-- see "SPARQLFunctions" for normalisation function+parseSPARQL :: Parser Query+parseSPARQL+    = do+        skipS0+        qr <- query+        skipS0+        eof+        return qr++-- [1] in the case of 'SELECT *' a query is returned, which matches every triple+query :: Parser Query+query +    = do+        caseString "SELECT"  +        skipS0+        a <- do string "*"+                return (["s","p","o"])+             <|> selectClause +        skipS0+        b <- option [] whereClause+        return (if b == [] then (QueryN a [triple]) +                else (Query a (GraphPattern b)))+    where triple = TriplePatN (SubjectVar "s") (PredicateVar "p") (ObjectVar "o")++-- [2]+selectClause :: Parser [Var]+selectClause +    = do+        a <- varPlus+        return a++-- not part of the gramma +varPlus :: Parser [Var]+varPlus = do+            a <- var+            skipS0+            b <- many var+            return (a :b)+-- [3]+whereClause :: Parser [PatternElement] +whereClause +    = do+        caseString "WHERE"+        skipS0+        a <- graphPattern+        skipS0+        eof+        return a+--[4]+graphPattern :: Parser [PatternElement]+graphPattern+    = do+        lbrace+        a <- patternElementsList+        rbrace <?> "end of graph pattern"+        return (a)+    +-- [5]+patternElementsList :: Parser [PatternElement] +patternElementsList +    = do+        skipS0+        a <- patternElement+        b <- option [] patternElementsListTail+        return (a : b)+--[6]+patternElementsListTail :: Parser [PatternElement]+patternElementsListTail +    = do+        dot+        a <- option [] patternElementsList                 +        return a+-- [7]+patternElement:: Parser PatternElement+patternElement = do +                    skipS0 +                    pe <- do tr <- triples+                             return (PET tr)+ +                          <|>+                          do gr <- graphPattern+                             return (PEG gr)+                    return pe ++++--[8]+triples :: Parser TriplePattern+triples = do +            subj <- do +                        v <- var +                        return (SubjectVar v)+                    <|>+                    do+                        g <- graphTerm+                        return (Subject g)++            predObL <- propertyListNotEmpty+            return (TriplePat subj predObL)+          ++-- [9]+propertyList:: Parser [(Predicate,[Object])] +propertyList = do +                a <- option [] propertyListNotEmpty+                return a+-- [10]+propertyListNotEmpty:: Parser [(Predicate,[Object])] +propertyListNotEmpty = do+                        skipS0+                        p <- (do  +                                 v <- var+                                 return (PredicateVar v)+                                 <|>+                                 do  +                                 u <- uri+                                 return (Predicate u)+                                 <|>+                                 do+                                 string "a"+                                 return (Predicate rdfType)+                                )+                        skipS0+                        obl <- objectList+                        skipS0+                        t <- option [] propertyListTail+                        return ((p,obl):t)+-- [11]+propertyListTail:: Parser [(Predicate,[Object])] +propertyListTail = do+                    semcol+                    a <- option []  propertyList+                    return a++-- [12]+objectList :: Parser [Object] +objectList = do+                a <- object+                b <- option [] objectTail      +                return (a:b)+-- [13]+objectTail :: Parser [Object]+objectTail = do+                com+                a <- option [] (objectList)+                return (a)++-- [14]+--verb :: Parser String+--verb = varOrURI -- <|> string "a"++-- [15]+object :: Parser Object +object = do v <- var +            return (ObjectVar v)+         <|>+         do g <- graphTerm+            return (Object g)+--original:+-- varOrTerm  <|> triplesNode <?> "object"++-- [16]+{-varOrURI :: Parser String+varOrURI = do v <- var +              return (show v)+           <|> +           do u <- uri+              return (show u)++-- [17]+varOrTerm :: Parser String+varOrTerm = do v <- var +               return (show v)+            <|> +            do g <- graphTerm+               return (show g)+-}+-- [18][32]+var :: Parser Var +var = do {+         ; char '?' <|> char '$'+         ; variable <- (ncname2 <|> ncname1)+         ; skipS0+		 ; return (variable)+         }+        <?> "Variable"++-- [19] [26]+graphTerm :: Parser RDFTerm+graphTerm = do+               a <-rdfTerm+               return (a) +          --  <|> +          --  (string "()" <?> "")++-- [20]+rdfTerm :: Parser RDFTerm +rdfTerm = do u <- uri+             return (URIRef u)+          <|> rdfLiteral +          <|> blankNode +          <|> numericLiteral +          <|> booleanLiteral++-- [21] +numericLiteral :: Parser RDFTerm+numericLiteral = do i <- try floatingPoint+                    return (RDFTypedLiteral i doubleD)+                 <|> +                 do f <- integerP+                    return (RDFTypedLiteral f integerD)+                    ++-- [22]+rdfLiteral :: Parser RDFTerm +rdfLiteral = do+                a <- stringP+                (b,c) <- option ("","") (do l <-langtag+                                            return (l,"")+                                         <|>+                                         do string "\^\^" +                                            u <- uri+                                            return ("",u)+                                        )+                return (if (c =="") +                        then if (b == "")+                             then (RDFLiteral a)+                             else (RDFLangLiteral a b)                              +                        else (RDFTypedLiteral a c)+                        )          +                +            <?> "RDF Literal"++-- [23]+booleanLiteral :: Parser RDFTerm+booleanLiteral = do caseString "TRUE"+                    return (RDFTypedLiteral "TRUE" booleanD) +                 <|> +                 do caseString "FALSE" +                    return (RDFTypedLiteral "FALSE" booleanD)+                 <?> "Boolean Literal"++-- [25] [27] [30]+uri :: Parser URI +uri = do {char '<' +		 ;theUri <-many (noneOf ">") +		 ;char '>' <?> "end of URI"				  +		 ;return (theUri)+		 }+        <?> "URI"++-- [26]+blankNode :: Parser RDFTerm +blankNode+        = do+            lab <- bnode_label +            return (BlankNode lab)+        <?> "BlankNode"-- <|> string "[]"++-- [28] Integer [37] <INTEGER_10> und [42] <DIGITS>+integerP :: Parser String+integerP = many1 digit <?> "Integer"++--[29] [38]+floatingPoint :: Parser String+floatingPoint +    = do+        a <- many1 digit+        b <- try (do +                    char '.'+                    c <- many digit+                    d <- option "" exponentP+                    return ('.':c++d)+                  <|>+                  exponentP+                )+        return (a++b)+      <|>+      do+        char '.'+        a <- many1 digit+        b <- option "" exponentP+        return ("0."++a++b)+      <?> "floating point"++-- [39]+exponentP :: Parser String+exponentP = do+             a <- oneOf "eE"+             b <- option '+' (oneOf "+-")+             c <- many1 digit+             return (a:b:c) +             <?> "exponent"                     +--[31]+bnode_label :: Parser String+bnode_label = do+                string "_:"+                lab <- (ncname2 <|> ncname1) +                return lab++-- [33][34][35][36]+langtag :: Parser String+langtag +	= do {char '@'+		 ;s1 <- many1 letter +		 ;s2 <- many (do +                         char '-' +                         s3 <- (many1 alphaNum)+                         return ('-' : s3)+                      )+		 ;return ((map toLower) $ (s1 ++ (concat s2)))+		 }+        <?> "Language Tag"++-- [24]    +stringP :: Parser String+stringP = string_literal1 <|> string_literal2++--[40]+string_literal1 :: Parser String+string_literal1 +    = do+        char '\'' +        str <- (many (noneOf "'\\\n\r")) +        char '\''+        return str++--[41]+string_literal2 :: Parser String+string_literal2 +	= do+		char '"' +		str <- (many (noneOf "\"\\\n\r")) +		char '"'+		return str ++-- [43]+ncchar1 :: Parser Char +ncchar1 =   oneOf ['A' .. 'Z'] +        <|> oneOf['a'..'z'] +        <|> oneOf ['\x00c0' .. '\x00D6']  +        <|> oneOf ['\x00D8' .. '\x00F6']+        <|> oneOf ['\x00F8' .. '\x02FF']+        <|> oneOf ['\x0370' .. '\x037D']+        <|> oneOf ['\x037F' .. '\x1FFF']+        <|> oneOf ['\x200C' .. '\x200D']+        <|> oneOf ['\x2070' .. '\x218F']+        <|> oneOf ['\x2C00' .. '\x2FEF']+        <|> oneOf ['\x3001' .. '\xD7FF']+        <|> oneOf ['\xF900' .. '\xFFFF']+       +-- [44] [45]+ncchar_end :: Parser Char +ncchar_end = ncchar1 <|> char '_' <|> char '-' <|> digit <|> char '\x00B7'++-- [45]+--ncchar_full :: Parser Char+--ncchar_full = ncchar_end <|>  char '.'++--[46]+ncname1 :: Parser String +ncname1 = do+         c   <- ncchar1+         rs1 <- many ncchar_end+         rs2 <- many ( do+                       xs1 <- many1 (char '.')+                       xs2 <- many1 ncchar_end+                       return (xs1 ++ xs2)+                     )+         return (c : rs1 ++ concat rs2)++--[47]+ncname2 :: Parser String +ncname2 = do+         c   <- char '_'+         rs1 <- many ncchar_end+         rs2 <- many ( do+                       xs1 <- many1 (char '.')+                       xs2 <- many1 ncchar_end+                       return (xs1 ++ xs2)+                     )+         return (c : rs1 ++ concat rs2)+
+ doc/cookbook/doc/thesis.pdf view

binary file changed (absent → 578620 bytes)

+ doc/cookbook/examples/example07.rdf view
@@ -0,0 +1,13 @@+<?xml version="1.0"?>+<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"+         xmlns:dc="http://purl.org/dc/elements/1.1/"+         xmlns:ex="http://example.org/stuff/1.0/">+  <rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar"+		   dc:title="RDF/XML Syntax Specification (Revised)">+    <ex:editor>+      <rdf:Description ex:fullName="Dave Beckett">+	<ex:homePage rdf:resource="http://purl.org/net/dajobe/" />+      </rdf:Description>+    </ex:editor>+  </rdf:Description>+</rdf:RDF>
+ doc/cookbook/examples/example07_1.rdf view
@@ -0,0 +1,12 @@+<?xml version="1.0"?>+<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"+         xmlns:dc="http://purl.org/dc/elements/1.1/"+         xmlns:ex="http://example.org/stuff/1.0/">+  <rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar"+		   dc:title="RDF/XML Syntax Specification (Revised)">+    <ex:editor rdf:nodeID="abc"/>+  </rdf:Description>+  <rdf:Description rdf:nodeID="abc" ex:fullName="Dave Beckett">+	<ex:homePage rdf:resource="http://purl.org/net/dajobe/" />+  </rdf:Description>+ </rdf:RDF>
+ doc/cookbook/examples/example08.rdf view
@@ -0,0 +1,15 @@+<?xml version="1.0" encoding="utf-8"?>+<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"+         xmlns:dc="http://purl.org/dc/elements/1.1/">+  <rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar">+    <dc:title>RDF/XML Syntax Specification (Revised)</dc:title>+    <dc:title xml:lang="en">RDF/XML Syntax Specification (Revised)</dc:title>+    <dc:title xml:lang="en-US">RDF/XML Syntax Specification (Revised)</dc:title>+  </rdf:Description>++  <rdf:Description rdf:about="http://example.org/buecher/baum" xml:lang="de">+    <dc:title>Der Baum</dc:title>+    <dc:description>Das Buch ist außergewöhnlich</dc:description>+    <dc:title xml:lang="en">The Tree</dc:title>+  </rdf:Description>+</rdf:RDF>
+ doc/cookbook/examples/example09.rdf view
@@ -0,0 +1,11 @@+<?xml version="1.0"?>+<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"+         xmlns:ex="http://example.org/stuff/1.0/">+  <rdf:Description rdf:about="http://example.org/item01">+    <ex:prop rdf:parseType="Literal"+             xmlns:a="http://example.org/a#"><a:Box required="true">+         <a:widget size="10" />+         <a:grommit id="23" /></a:Box>+    </ex:prop>+  </rdf:Description>+</rdf:RDF>
+ doc/cookbook/examples/example1.rdf view
@@ -0,0 +1,14 @@+<?xml version="1.0"?>+<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"+            xmlns:exterms="http://www.example.org/terms/"+            xmlns:dc="http://purl.org/dc/elements/1.1/">+<rdf:Description rdf:about="http://www.example.org/index.html">+    <exterms:creation-date>August 16, 1999</exterms:creation-date>+</rdf:Description>+-<rdf:Description rdf:about="http://www.example.org/index.html">+    <dc:language>en</dc:language>+</rdf:Description>+<!--<rdf:Description rdf:about="http://www.example.org/index.html">+    <dc:creator rdf:resource="http://www.example.org/staffid/85740"/>+  </rdf:Description>-->+</rdf:RDF>
+ doc/cookbook/examples/example10.rdf view
@@ -0,0 +1,7 @@+<?xml version="1.0"?>+<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"+         xmlns:ex="http://example.org/stuff/1.0/">+  <rdf:Description rdf:about="http://example.org/item01">+    <ex:size rdf:datatype="http://www.w3.org/2001/XMLSchema#int">123</ex:size>+  </rdf:Description>+</rdf:RDF>
+ doc/cookbook/examples/example11.rdf view
@@ -0,0 +1,14 @@+<?xml version="1.0"?>+<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"+         xmlns:dc="http://purl.org/dc/elements/1.1/"+         xmlns:ex="http://example.org/stuff/1.0/">+  <rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar"+		   dc:title="RDF/XML Syntax Specification (Revised)">+    <ex:editor rdf:nodeID="abc"/>+  </rdf:Description>++  <rdf:Description rdf:nodeID="abc"+                   ex:fullName="Dave Beckett">+    <ex:homePage rdf:resource="http://purl.org/net/dajobe/"/>+  </rdf:Description>+</rdf:RDF>
+ doc/cookbook/examples/example12.rdf view
@@ -0,0 +1,12 @@+<?xml version="1.0"?>+<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"+         xmlns:dc="http://purl.org/dc/elements/1.1/"+         xmlns:ex="http://example.org/stuff/1.0/">+  <rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar"+		   dc:title="RDF/XML Syntax Specification (Revised)">+    <ex:editor rdf:parseType="Resource">+      <ex:fullName>Dave Beckett</ex:fullName>+      <ex:homePage rdf:resource="http://purl.org/net/dajobe/"/>+    </ex:editor>+  </rdf:Description>+</rdf:RDF>
+ doc/cookbook/examples/example13.rdf view
@@ -0,0 +1,10 @@+<?xml version="1.0"?>+<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"+         xmlns:dc="http://purl.org/dc/elements/1.1/"+         xmlns:ex="http://example.org/stuff/1.0/">+  <rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar"+		   dc:title="RDF/XML Syntax Specification (Revised)">+    <ex:editor ex:fullName="Dave Beckett" />+    <!-- Note the ex:homePage property has been ignored for this example -->+  </rdf:Description>+</rdf:RDF>
+ doc/cookbook/examples/example14.rdf view
@@ -0,0 +1,9 @@+<?xml version="1.0"?>+<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"+         xmlns:dc="http://purl.org/dc/elements/1.1/"+         xmlns:ex="http://example.org/stuff/1.0/">+  <rdf:Description rdf:about="http://example.org/thing">+    <rdf:type rdf:resource="http://example.org/stuff/1.0/Document"/>+    <dc:title>A marvelous thing</dc:title>+  </rdf:Description>+</rdf:RDF>
+ doc/cookbook/examples/example15.rdf view
@@ -0,0 +1,8 @@+<?xml version="1.0"?>+<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"+         xmlns:dc="http://purl.org/dc/elements/1.1/"+         xmlns:ex="http://example.org/stuff/1.0/">+  <ex:Document rdf:about="http://example.org/thing">+    <dc:title>A marvelous thing</dc:title>+  </ex:Document>+</rdf:RDF>
+ doc/cookbook/examples/example16.rdf view
@@ -0,0 +1,8 @@+<?xml version="1.0"?>+<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"+         xmlns:ex="http://example.org/stuff/1.0/"+         xml:base="http://example.org/here/">+  <rdf:Description rdf:ID="snack">+    <ex:prop rdf:resource="fruit/apple"/>+  </rdf:Description>+</rdf:RDF>
+ doc/cookbook/examples/example17.rdf view
@@ -0,0 +1,8 @@+<?xml version="1.0"?>+<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">+  <rdf:Seq rdf:about="http://example.org/favourite-fruit">+    <rdf:_1 rdf:resource="http://example.org/banana"/>+    <rdf:_2 rdf:resource="http://example.org/apple"/>+    <rdf:_3 rdf:resource="http://example.org/pear"/>+  </rdf:Seq>+</rdf:RDF>
+ doc/cookbook/examples/example18.rdf view
@@ -0,0 +1,8 @@+<?xml version="1.0"?>+<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">+  <rdf:Seq rdf:about="http://example.org/favourite-fruit">+    <rdf:li rdf:resource="http://example.org/banana"/>+    <rdf:li rdf:resource="http://example.org/apple"/>+    <rdf:li rdf:resource="http://example.org/pear"/>+  </rdf:Seq>+</rdf:RDF>
+ doc/cookbook/examples/example19.rdf view
@@ -0,0 +1,11 @@+<?xml version="1.0"?>+<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"+         xmlns:ex="http://example.org/stuff/1.0/">+  <rdf:Description rdf:about="http://example.org/basket">+    <ex:hasFruit rdf:parseType="Collection">+      <rdf:Description rdf:about="http://example.org/banana"/>+      <rdf:Description rdf:about="http://example.org/apple"/>+      <rdf:Description rdf:about="http://example.org/pear"/>+    </ex:hasFruit>+  </rdf:Description>+</rdf:RDF>
+ doc/cookbook/examples/example2.rdf view
@@ -0,0 +1,9 @@+<?xml version="1.0"?>+<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"+            xmlns:exterms="http://www.example.org/terms/"+            xmlns:dc="http://purl.org/dc/elements/1.1/">+    <rdf:Description rdf:about="http://www.example.org/index.html">+        <exterms:creation-date>August 16, 1999</exterms:creation-date>+        <dc:language>en</dc:language>+    </rdf:Description>+</rdf:RDF>
+ doc/cookbook/examples/example20.rdf view
@@ -0,0 +1,8 @@+<?xml version="1.0"?>+<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"+         xmlns:ex="http://example.org/stuff/1.0/"+         xml:base="http://example.org/triples/">+  <rdf:Description rdf:about="http://example.org/">+    <ex:prop rdf:ID="triple1">blah</ex:prop>+  </rdf:Description>+</rdf:RDF>
+ doc/cookbook/examples/example3.rdf view
@@ -0,0 +1,16 @@+<?xml version="1.0"?>+<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"+            xmlns:dc="http://purl.org/dc/elements/1.1/"+            xmlns:exterms="http://www.example.org/terms/">++  <rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar">+    <dc:title rdf:datatype="fdjhdfdfd">RDF/XML Syntax Specification (Revised)</dc:title>+    <exterms:editor rdf:nodeID="abc"/>+  </rdf:Description>++  <rdf:Description rdf:nodeID="abc">+    <exterms:fullName>Dave Beckett</exterms:fullName>+    <exterms:homePage rdf:resource="http://purl.org/net/dajobe/"/>+  </rdf:Description>++</rdf:RDF>
+ doc/hdoc/Control-Arrow-ArrowIO.html view
@@ -0,0 +1,482 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Control.Arrow.ArrowIO</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowIO.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Control.Arrow.ArrowIO</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: ArrowIO.hs,v 1.6 2005<EM+>09</EM+>02 17:09:39 hxml Exp $+</P+><P+>Lifting of IO actions to arrows+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> Arrow a =&gt; <A HREF="#t%3AArrowIO"+>ArrowIO</A+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AarrIO"+>arrIO</A+> :: (b -&gt; IO c) -&gt; a b c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AarrIO0"+>arrIO0</A+> :: IO c -&gt; a b c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AarrIO2"+>arrIO2</A+> :: (b1 -&gt; b2 -&gt; IO c) -&gt; a (b1, b2) c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AarrIO3"+>arrIO3</A+> :: (b1 -&gt; b2 -&gt; b3 -&gt; IO c) -&gt; a (b1, (b2, b3)) c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AarrIO4"+>arrIO4</A+> :: (b1 -&gt; b2 -&gt; b3 -&gt; b4 -&gt; IO c) -&gt; a (b1, (b2, (b3, b4))) c</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> (Arrow a, <A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIO"+>ArrowIO</A+> a) =&gt; <A HREF="#t%3AArrowIOIf"+>ArrowIOIf</A+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AisIOA"+>isIOA</A+> :: (b -&gt; IO Bool) -&gt; a b b</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> Arrow a =&gt; <A NAME="t%3AArrowIO"+></A+><B+>ArrowIO</B+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>the interface for converting an IO action into an arrow+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+>Methods</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A NAME="v%3AarrIO"+></A+><B+>arrIO</B+> :: (b -&gt; IO c) -&gt; a b c</TD+></TR+><TR+><TD CLASS="doc"+>construct an arrow from an IO action+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AarrIO0"+></A+><B+>arrIO0</B+> :: IO c -&gt; a b c</TD+></TR+><TR+><TD CLASS="doc"+>construct an arrow from an IO action without any parameter+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AarrIO2"+></A+><B+>arrIO2</B+> :: (b1 -&gt; b2 -&gt; IO c) -&gt; a (b1, b2) c</TD+></TR+><TR+><TD CLASS="doc"+>construction of a 2 argument arrow from a binary IO action+ |+ | example: <TT+> a1 &amp;&amp;&amp; a2 &gt;&gt;&gt; arr2 f </TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AarrIO3"+></A+><B+>arrIO3</B+> :: (b1 -&gt; b2 -&gt; b3 -&gt; IO c) -&gt; a (b1, (b2, b3)) c</TD+></TR+><TR+><TD CLASS="doc"+>construction of a 3 argument arrow from a 3-ary IO action+ |+ | example: <TT+> a1 &amp;&amp;&amp; a2 &amp;&amp;&amp; a3 &gt;&gt;&gt; arr3 f </TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AarrIO4"+></A+><B+>arrIO4</B+> :: (b1 -&gt; b2 -&gt; b3 -&gt; b4 -&gt; IO c) -&gt; a (b1, (b2, (b3, b4))) c</TD+></TR+><TR+><TD CLASS="doc"+>construction of a 4 argument arrow from a 4-ary IO action+ |+ | example: <TT+> a1 &amp;&amp;&amp; a2 &amp;&amp;&amp; a3 &amp;&amp;&amp; a4 &gt;&gt;&gt; arr4 f </TT+>+</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ArrowIO')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:ArrowIO" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIO"+>ArrowIO</A+> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIO"+>ArrowIO</A+> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> (Arrow a, <A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIO"+>ArrowIO</A+> a) =&gt; <A NAME="t%3AArrowIOIf"+></A+><B+>ArrowIOIf</B+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>the interface for converting an IO predicate into a list arrow+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+>Methods</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A NAME="v%3AisIOA"+></A+><B+>isIOA</B+> :: (b -&gt; IO Bool) -&gt; a b b</TD+></TR+><TR+><TD CLASS="doc"+><P+>builds an arrow from an IO predicate+</P+><P+>if the predicate holds, the single list containing the input is returned, else the empty list,+ similar to <TT+><A HREF="Control-Arrow-ArrowList.html#v%3AisA"+>isA</A+></TT+>+</P+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ArrowIOIf')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:ArrowIOIf" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIOIf"+>ArrowIOIf</A+> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIOIf"+>ArrowIOIf</A+> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Control-Arrow-ArrowIf.html view
@@ -0,0 +1,782 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Control.Arrow.ArrowIf</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowIf.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Control.Arrow.ArrowIf</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: ArrowIf.hs,v 1.8 2006<EM+>05</EM+>04 14:17:53 hxml Exp $+</P+><P+>Conditionals for List Arrows+</P+><P+>This module defines conditional combinators for list arrows.+</P+><P+>The empty list as result represents False, none empty lists True.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; <A HREF="#t%3AArrowIf"+>ArrowIf</A+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AifA"+>ifA</A+> :: a b c -&gt; a b d -&gt; a b d -&gt; a b d</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AifP"+>ifP</A+> :: (b -&gt; Bool) -&gt; a b d -&gt; a b d -&gt; a b d</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aneg"+>neg</A+> :: a b c -&gt; a b b</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Awhen"+>when</A+> :: a b b -&gt; a b c -&gt; a b b</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AwhenP"+>whenP</A+> :: a b b -&gt; (b -&gt; Bool) -&gt; a b b</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AwhenNot"+>whenNot</A+> :: a b b -&gt; a b c -&gt; a b b</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AwhenNotP"+>whenNotP</A+> :: a b b -&gt; (b -&gt; Bool) -&gt; a b b</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aguards"+>guards</A+> :: a b c -&gt; a b d -&gt; a b d</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AguardsP"+>guardsP</A+> :: (b -&gt; Bool) -&gt; a b d -&gt; a b d</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Acontaining"+>containing</A+> :: a b c -&gt; a c d -&gt; a b c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnotContaining"+>notContaining</A+> :: a b c -&gt; a c d -&gt; a b c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AorElse"+>orElse</A+> :: a b c -&gt; a b c -&gt; a b c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchoiceA"+>choiceA</A+> :: [<A HREF="Control-Arrow-ArrowIf.html#t%3AIfThen"+>IfThen</A+> (a b c) (a b d)] -&gt; a b d</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtagA"+>tagA</A+> :: a b c -&gt; a b (Either b b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AspanA"+>spanA</A+> :: a b b -&gt; a [b] ([b], [b])</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ApartitionA"+>partitionA</A+> :: a b b -&gt; a [b] ([b], [b])</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AIfThen"+>IfThen</A+> a b = <A HREF="#v%3A%3A-%3E"+>(:-&gt;)</A+> a b</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; <A NAME="t%3AArrowIf"+></A+><B+>ArrowIf</B+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+><P+>The interface for arrows as conditionals.+</P+><P+>Requires list arrows because False is represented as empty list, True as none empty lists.+</P+><P+>Only <TT+><A HREF="Control-Arrow-ArrowIf.html#v%3AifA"+>ifA</A+></TT+> and <TT+><A HREF="Control-Arrow-ArrowIf.html#v%3AorElse"+>orElse</A+></TT+> don't have default implementations+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+>Methods</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A NAME="v%3AifA"+></A+><B+>ifA</B+> :: a b c -&gt; a b d -&gt; a b d -&gt; a b d</TD+></TR+><TR+><TD CLASS="doc"+>if lifted to arrows+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AifP"+></A+><B+>ifP</B+> :: (b -&gt; Bool) -&gt; a b d -&gt; a b d -&gt; a b d</TD+></TR+><TR+><TD CLASS="doc"+>shortcut: <TT+> ifP p = ifA (isA p) </TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aneg"+></A+><B+>neg</B+> :: a b c -&gt; a b b</TD+></TR+><TR+><TD CLASS="doc"+>negation: <TT+> neg f = ifA f none this </TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Awhen"+></A+><B+>when</B+> :: a b b -&gt; a b c -&gt; a b b</TD+></TR+><TR+><TD CLASS="doc"+><TT+> f `when` g </TT+> : when the predicate g holds, f is applied, else the identity filter this+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AwhenP"+></A+><B+>whenP</B+> :: a b b -&gt; (b -&gt; Bool) -&gt; a b b</TD+></TR+><TR+><TD CLASS="doc"+>shortcut: <TT+> f `whenP` p = f `when` (isA p) </TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AwhenNot"+></A+><B+>whenNot</B+> :: a b b -&gt; a b c -&gt; a b b</TD+></TR+><TR+><TD CLASS="doc"+><TT+> f `whenNot` g </TT+> : when the predicate g does not hold, f is applied, else the identity filter this+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AwhenNotP"+></A+><B+>whenNotP</B+> :: a b b -&gt; (b -&gt; Bool) -&gt; a b b</TD+></TR+><TR+><TD CLASS="doc"+>like <TT+><A HREF="Control-Arrow-ArrowIf.html#v%3AwhenP"+>whenP</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aguards"+></A+><B+>guards</B+> :: a b c -&gt; a b d -&gt; a b d</TD+></TR+><TR+><TD CLASS="doc"+><TT+> g `guards` f </TT+> : when the predicate g holds, f is applied, else none+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AguardsP"+></A+><B+>guardsP</B+> :: (b -&gt; Bool) -&gt; a b d -&gt; a b d</TD+></TR+><TR+><TD CLASS="doc"+>like <TT+><A HREF="Control-Arrow-ArrowIf.html#v%3AwhenP"+>whenP</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Acontaining"+></A+><B+>containing</B+> :: a b c -&gt; a c d -&gt; a b c</TD+></TR+><TR+><TD CLASS="doc"+><P+><TT+> f `containing` g </TT+> : keep only those results from f for which g holds+</P+><P+>definition: <TT+> f `containing` g = f &gt;&gt;&gt; g `guards` this </TT+>+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnotContaining"+></A+><B+>notContaining</B+> :: a b c -&gt; a c d -&gt; a b c</TD+></TR+><TR+><TD CLASS="doc"+><P+><TT+> f `notContaining` g </TT+> : keep only those results from f for which g does not hold+</P+><P+>definition: <TT+> f `notContaining` g = f &gt;&gt;&gt; ifA g none this </TT+>+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AorElse"+></A+><B+>orElse</B+> :: a b c -&gt; a b c -&gt; a b c</TD+></TR+><TR+><TD CLASS="doc"+><TT+> f `orElse` g </TT+> : directional choice: if f succeeds, the result of f is the result, else g is applied+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchoiceA"+></A+><B+>choiceA</B+> :: [<A HREF="Control-Arrow-ArrowIf.html#t%3AIfThen"+>IfThen</A+> (a b c) (a b d)] -&gt; a b d</TD+></TR+><TR+><TD CLASS="doc"+><P+>generalisation of <TT+><A HREF="Control-Arrow-ArrowIf.html#v%3AorElse"+>orElse</A+></TT+> for multi way branches like in case expressions.+</P+><P+>An auxiliary data type <TT+><A HREF="Control-Arrow-ArrowIf.html#t%3AIfThen"+>IfThen</A+></TT+> with an infix constructor ':-&gt;' is used for writing multi way branches+</P+><P+>example: <TT+> choiceA [ p1 :-&gt; e1, p2 :-&gt; e2, this :-&gt; default ] </TT+>+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtagA"+></A+><B+>tagA</B+> :: a b c -&gt; a b (Either b b)</TD+></TR+><TR+><TD CLASS="doc"+>tag a value with Left or Right, if arrow has success, input is tagged with Left, else with Right+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AspanA"+></A+><B+>spanA</B+> :: a b b -&gt; a [b] ([b], [b])</TD+></TR+><TR+><TD CLASS="doc"+><P+>split a list value with an arrow and returns a pair of lists.+ This is the arrow version of span. The arrow is deterministic.+</P+><P+>example: <TT+> runLA (spanA (isA (/= '-'))) &quot;abc-def&quot; </TT+> gives <TT+> [(&quot;abc&quot;,&quot;-def&quot;)] </TT+> as result+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ApartitionA"+></A+><B+>partitionA</B+> :: a b b -&gt; a [b] ([b], [b])</TD+></TR+><TR+><TD CLASS="doc"+><P+>partition a list of values into a pair of lists+</P+><P+>This is the arrow Version of <TT+><A HREF="Data-List.html#v%3Apartition"+>partition</A+></TT+>+</P+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ArrowIf')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:ArrowIf" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"+>ArrowIf</A+> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"+>ArrowIf</A+> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"+>ArrowIf</A+> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"+>ArrowIf</A+> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AIfThen"+></A+><B+>IfThen</B+> a b</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>an auxiliary data type for <TT+><A HREF="Control-Arrow-ArrowIf.html#v%3AchoiceA"+>choiceA</A+></TT+>+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3A%3A-%3E"+></A+><B+>(:-&gt;)</B+> a b</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Control-Arrow-ArrowList.html view
@@ -0,0 +1,1195 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Control.Arrow.ArrowList</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowList.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Control.Arrow.ArrowList</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: ArrowList.hs,v 1.11 2006<EM+>06</EM+>01 12:59:04 hxml Exp $+</P+><P+>The List Arrow Class+</P+><P+>This module defines the interface for list arrows.+</P+><P+>A list arrow is a function, that gives a list of results+for a given argument. A single element result represents a normal function.+An empty list oven indicates, the function is undefined for the given argument.+The empty list may also represent False, none empty lists True.+A list with more than one element gives all results for a nondeterministic function.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> (Arrow a, ArrowPlus a, ArrowZero a, ArrowApply a) =&gt; <A HREF="#t%3AArrowList"+>ArrowList</A+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3Aarr2"+>arr2</A+> :: (b1 -&gt; b2 -&gt; c) -&gt; a (b1, b2) c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aarr3"+>arr3</A+> :: (b1 -&gt; b2 -&gt; b3 -&gt; c) -&gt; a (b1, (b2, b3)) c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aarr4"+>arr4</A+> :: (b1 -&gt; b2 -&gt; b3 -&gt; b4 -&gt; c) -&gt; a (b1, (b2, (b3, b4))) c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aarr2A"+>arr2A</A+> :: (b -&gt; a c d) -&gt; a (b, c) d</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AarrL"+>arrL</A+> :: (b -&gt; [c]) -&gt; a b c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aarr2L"+>arr2L</A+> :: (b -&gt; c -&gt; [d]) -&gt; a (b, c) d</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AconstA"+>constA</A+> :: c -&gt; a b c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AconstL"+>constL</A+> :: [c] -&gt; a b c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisA"+>isA</A+> :: (b -&gt; Bool) -&gt; a b b</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%3E%3E."+>(&gt;&gt;.)</A+> :: a b c -&gt; ([c] -&gt; [d]) -&gt; a b d</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%3E."+>(&gt;.)</A+> :: a b c -&gt; ([c] -&gt; d) -&gt; a b d</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AlistA"+>listA</A+> :: a b c -&gt; a b [c]</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Athis"+>this</A+> :: a b b</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Anone"+>none</A+> :: a b c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AwithDefault"+>withDefault</A+> :: a b c -&gt; c -&gt; a b c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Asingle"+>single</A+> :: a b c -&gt; a b c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AapplyA"+>applyA</A+> :: a b (a b c) -&gt; a b c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%24%3C"+>($&lt;)</A+> :: (c -&gt; a b d) -&gt; a b c -&gt; a b d</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%24%3C%3C"+>($&lt;&lt;)</A+> :: (c1 -&gt; c2 -&gt; a b d) -&gt; a b (c1, c2) -&gt; a b d</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%24%3C%3C%3C"+>($&lt;&lt;&lt;)</A+> :: (c1 -&gt; c2 -&gt; c3 -&gt; a b d) -&gt; a b (c1, (c2, c3)) -&gt; a b d</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%24%3C%3C%3C%3C"+>($&lt;&lt;&lt;&lt;)</A+> :: (c1 -&gt; c2 -&gt; c3 -&gt; c4 -&gt; a b d) -&gt; a b (c1, (c2, (c3, c4))) -&gt; a b d</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%24%3C%24"+>($&lt;$)</A+> :: (c -&gt; a b b) -&gt; a b c -&gt; a b b</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aperform"+>perform</A+> :: a b c -&gt; a b b</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcatA"+>catA</A+> :: [a b c] -&gt; a b c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AseqA"+>seqA</A+> :: [a b b] -&gt; a b b</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> (Arrow a, ArrowPlus a, ArrowZero a, ArrowApply a) =&gt; <A NAME="t%3AArrowList"+></A+><B+>ArrowList</B+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+><P+>The interface for list arrows+</P+><P+>Only mkA, <TT+><A HREF="Control-Arrow-ArrowList.html#v%3Aarr2A"+>arr2A</A+></TT+>, <TT+><A HREF="Control-Arrow-ArrowList.html#v%3AisA"+>isA</A+></TT+> '(&gt;&gt;.)' don't have default implementations+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+>Methods</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A NAME="v%3Aarr2"+></A+><B+>arr2</B+> :: (b1 -&gt; b2 -&gt; c) -&gt; a (b1, b2) c</TD+></TR+><TR+><TD CLASS="doc"+>construction of a 2 argument arrow from a binary function+ |+ | example: <TT+> a1 &amp;&amp;&amp; a2 &gt;&gt;&gt; arr2 f </TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aarr3"+></A+><B+>arr3</B+> :: (b1 -&gt; b2 -&gt; b3 -&gt; c) -&gt; a (b1, (b2, b3)) c</TD+></TR+><TR+><TD CLASS="doc"+>construction of a 3 argument arrow from a 3-ary function+ |+ | example: <TT+> a1 &amp;&amp;&amp; a2 &amp;&amp;&amp; a3 &gt;&gt;&gt; arr3 f </TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aarr4"+></A+><B+>arr4</B+> :: (b1 -&gt; b2 -&gt; b3 -&gt; b4 -&gt; c) -&gt; a (b1, (b2, (b3, b4))) c</TD+></TR+><TR+><TD CLASS="doc"+>construction of a 4 argument arrow from a 4-ary function+ |+ | example: <TT+> a1 &amp;&amp;&amp; a2 &amp;&amp;&amp; a3 &amp;&amp;&amp; a4 &gt;&gt;&gt; arr4 f </TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aarr2A"+></A+><B+>arr2A</B+> :: (b -&gt; a c d) -&gt; a (b, c) d</TD+></TR+><TR+><TD CLASS="doc"+>construction of a 2 argument arrow from a singe argument arrow+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AarrL"+></A+><B+>arrL</B+> :: (b -&gt; [c]) -&gt; a b c</TD+></TR+><TR+><TD CLASS="doc"+>constructor for a list arrow from a function with a list as result+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aarr2L"+></A+><B+>arr2L</B+> :: (b -&gt; c -&gt; [d]) -&gt; a (b, c) d</TD+></TR+><TR+><TD CLASS="doc"+>constructor for a list arrow with 2 arguments+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AconstA"+></A+><B+>constA</B+> :: c -&gt; a b c</TD+></TR+><TR+><TD CLASS="doc"+>constructor for a const arrow: <TT+> constA = arr . const </TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AconstL"+></A+><B+>constL</B+> :: [c] -&gt; a b c</TD+></TR+><TR+><TD CLASS="doc"+>constructor for a const arrow: <TT+> constL = arrL . const </TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisA"+></A+><B+>isA</B+> :: (b -&gt; Bool) -&gt; a b b</TD+></TR+><TR+><TD CLASS="doc"+>builds an arrow from a predicate.+ If the predicate holds, the single list containing the input is returned, else the empty list+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%3E%3E."+></A+><B+>(&gt;&gt;.)</B+> :: a b c -&gt; ([c] -&gt; [d]) -&gt; a b d</TD+></TR+><TR+><TD CLASS="doc"+><P+>combinator for converting the result of a list arrow into another list+</P+><P+>example: <TT+> foo &gt;&gt;. reverse </TT+> reverses the the result of foo+</P+><P+>example: <TT+> foo &gt;&gt;. take 1 </TT+> constructs a deterministic version of foo by deleting all further results+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%3E."+></A+><B+>(&gt;.)</B+> :: a b c -&gt; ([c] -&gt; d) -&gt; a b d</TD+></TR+><TR+><TD CLASS="doc"+>combinator for converting the result of an arrow into a single element result+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AlistA"+></A+><B+>listA</B+> :: a b c -&gt; a b [c]</TD+></TR+><TR+><TD CLASS="doc"+><P+>combinator for converting an arrow into a determinstic version with all results collected in a single element list+</P+><PRE+> listA af = af &gt;&gt;. (:[]) </PRE+><P+>this is useful when the list of results computed by an arrow must be manipulated (e.g. sorted)+</P+><P+>example for sorting the results of a filter+</P+><PRE+> collectAndSort         :: a b c -&gt; a b c++ collectAndSort collect = listA collect &gt;&gt;&gt; arrL sort+</PRE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Athis"+></A+><B+>this</B+> :: a b b</TD+></TR+><TR+><TD CLASS="doc"+>the identity arrow, alias for returnA+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Anone"+></A+><B+>none</B+> :: a b c</TD+></TR+><TR+><TD CLASS="doc"+>the zero arrow, alias for zeroArrow+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AwithDefault"+></A+><B+>withDefault</B+> :: a b c -&gt; c -&gt; a b c</TD+></TR+><TR+><TD CLASS="doc"+><P+>converts an arrow, that may fail, into an arrow that always succeeds+</P+><P+>example: <TT+> withDefault none &quot;abc&quot; </TT+> is equivalent to <TT+> constA &quot;abc&quot; </TT+>+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Asingle"+></A+><B+>single</B+> :: a b c -&gt; a b c</TD+></TR+><TR+><TD CLASS="doc"+><P+>makes a list arrow deterministic, the number of results is at most 1+</P+><P+>definition+</P+><PRE+> single f = f &gt;&gt;. take 1+</PRE+><P+>examples with strings:+</P+><PRE+> runLA ( single none ) &quot;x&quot; == []+ runLA ( single this ) &quot;x&quot; == [&quot;x&quot;]+ runLA ( single+         (constA &quot;y&quot;+          &lt;+&gt; this ) ) &quot;x&quot; == [&quot;y&quot;]+</PRE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AapplyA"+></A+><B+>applyA</B+> :: a b (a b c) -&gt; a b c</TD+></TR+><TR+><TD CLASS="doc"+><P+>compute an arrow from the input and apply the arrow to this input+</P+><P+>definition: <TT+> (f &amp;&amp;&amp; this) &gt;&gt;&gt; app </TT+>+</P+><P+>in a point free style, there is no way to use an argument in 2 places,+ this is a combinator for simulating this. first the argument is used to compute an arrow,+ then this new arrow is applied to the input+</P+><P+>applyA coresponds to: <TT+> apply f x = let g = f x in g x </TT+>+</P+><P+>see also: <TT+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C"+>$&lt;</A+></TT+>, <TT+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C"+>$&lt;&lt;</A+></TT+>, <TT+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C%3C"+>$&lt;&lt;&lt;</A+></TT+>, <TT+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C%3C%3C"+>$&lt;&lt;&lt;&lt;</A+></TT+>, <TT+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%24"+>$&lt;$</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%24%3C"+></A+><B+>($&lt;)</B+> :: (c -&gt; a b d) -&gt; a b c -&gt; a b d</TD+></TR+><TR+><TD CLASS="doc"+><P+>compute the parameter for an arrow with extra parameters from the input+ and apply the arrow for all parameter values to the input+</P+><P+>a kind of &quot;function call&quot; for arrows, useful for joining arrows+</P+><PRE+> infixl 2 ($&lt;)+</PRE+><P+>definition:+</P+><PRE+> g $&lt; f = applyA (f &gt;&gt;&gt; arr g)+</PRE+><P+>if <TT+>f</TT+> fails, the whole arrow fails, e.g. <TT+> g $&lt; none == none </TT+>+</P+><P+>if <TT+>f</TT+> computes n values and <TT+>g</TT+> is deterministic, the whole arrow computes n values+</P+><P+>examples with simple list arrows with strings+</P+><PRE+> prefixString   :: String -&gt; a String String+ prefixString s =  arr (s++)++ runLA ( prefixString $&lt; none           ) &quot;x&quot; == []+ runLA ( prefixString $&lt; constA &quot;y&quot;     ) &quot;x&quot; == [&quot;yx&quot;]+ runLA ( prefixString $&lt; this           ) &quot;x&quot; == [&quot;xx&quot;]+ runLA ( prefixString $&lt; constA &quot;y&quot;+                         &lt;+&gt; constA &quot;z&quot; ) &quot;x&quot; == [&quot;yx&quot;,&quot;zx&quot;]+ runLA ( prefixString $&lt; constA &quot;y&quot;+                         &lt;+&gt; this+                         &lt;+&gt; constA &quot;z&quot; ) &quot;x&quot; == [&quot;yx&quot;,&quot;xx&quot;,&quot;zx&quot;]+</PRE+><P+>see also: <TT+><A HREF="Control-Arrow-ArrowList.html#v%3AapplyA"+>applyA</A+></TT+>, <TT+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C"+>$&lt;&lt;</A+></TT+>, <TT+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C%3C"+>$&lt;&lt;&lt;</A+></TT+>, <TT+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C%3C%3C"+>$&lt;&lt;&lt;&lt;</A+></TT+>, <TT+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%24"+>$&lt;$</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%24%3C%3C"+></A+><B+>($&lt;&lt;)</B+> :: (c1 -&gt; c2 -&gt; a b d) -&gt; a b (c1, c2) -&gt; a b d</TD+></TR+><TR+><TD CLASS="doc"+><P+>binary version of <TT+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C"+>$&lt;</A+></TT+>+</P+><P+>example with simple list arrows with strings+</P+><PRE+> infixString    :: String -&gt; String -&gt; a String String+ infixString s1 s2+                = arr (\ s -&gt; s1 ++ s ++ s2)++ runLA ( infixString $&lt;&lt; constA &quot;y&quot; &amp;&amp;&amp; constA &quot;z&quot; ) &quot;x&quot; = [&quot;yxz&quot;]+ runLA ( infixString $&lt;&lt; this &amp;&amp;&amp; this             ) &quot;x&quot; = [&quot;xxx&quot;]+ runLA ( infixString $&lt;&lt; constA &quot;y&quot;+                         &amp;&amp;&amp; (constA &quot;z&quot; &lt;+&gt; this) ) &quot;x&quot; = [&quot;yxz&quot;, &quot;yxx&quot;]+</PRE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%24%3C%3C%3C"+></A+><B+>($&lt;&lt;&lt;)</B+> :: (c1 -&gt; c2 -&gt; c3 -&gt; a b d) -&gt; a b (c1, (c2, c3)) -&gt; a b d</TD+></TR+><TR+><TD CLASS="doc"+><P+>version of <TT+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C"+>$&lt;</A+></TT+> for arrows with 3 extra parameters+</P+><P+>typical usage+</P+><PRE+> f $&lt;&lt;&lt; g1 &amp;&amp;&amp; g2 &amp;&amp;&amp; g3+</PRE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%24%3C%3C%3C%3C"+></A+><B+>($&lt;&lt;&lt;&lt;)</B+> :: (c1 -&gt; c2 -&gt; c3 -&gt; c4 -&gt; a b d) -&gt; a b (c1, (c2, (c3, c4))) -&gt; a b d</TD+></TR+><TR+><TD CLASS="doc"+><P+>version of <TT+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C"+>$&lt;</A+></TT+> for arrows with 4 extra parameters+</P+><P+>typical usage+</P+><PRE+> f $&lt;&lt;&lt;&lt; g1 &amp;&amp;&amp; g2 &amp;&amp;&amp; g3 &amp;&amp;&amp; g4+</PRE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%24%3C%24"+></A+><B+>($&lt;$)</B+> :: (c -&gt; a b b) -&gt; a b c -&gt; a b b</TD+></TR+><TR+><TD CLASS="doc"+><P+>compute the parameter for an arrow <TT+>f</TT+> with an extra parameter by an arrow <TT+>g</TT+>+ and apply all the results from <TT+>g</TT+> sequentially to the input+</P+><PRE+> infixl 2 ($&lt;$)+</PRE+><P+>typical usage:+</P+><PRE+> g :: a b c+ g = ...++ f :: c -&gt; a b b+ f x = ... x ...++ f $&lt;$ g+</PRE+><P+><TT+>f</TT+> computes the extra parameters for <TT+>g</TT+> from the input of type <TT+>b</TT+> and <TT+>g</TT+> is applied with this+ parameter to the input. This allows programming in a point wise style in <TT+>g</TT+>, which becomes+ neccessary, when a value is needed more than once.+</P+><P+>this combinator is useful, when transforming a single value (document) step by step,+ with <TT+>g</TT+> for collecting the data for all steps, and <TT+>f</TT+> for transforming the input step by step+</P+><P+>if <TT+>g</TT+> is deterministic (computes exactly one result),+ <TT+> g $&lt;$ f == g $&lt; f </TT+> holds+</P+><P+>if <TT+>g</TT+> fails, <TT+> f $&lt;$ g == this </TT+>+</P+><P+>if <TT+>g</TT+> computes more than one result, <TT+>f</TT+> is applied sequentially to the input for every result from <TT+>g</TT+>+</P+><P+>examples with simple list arrows with strings+</P+><PRE+> prefixString   :: String -&gt; a String String+ prefixString s =  arr (s++)++ runLA ( prefixString $&lt;$ none                      ) &quot;x&quot; == [&quot;x&quot;]+ runLA ( prefixString $&lt;$ constA &quot;y&quot;                ) &quot;x&quot; == [&quot;yx&quot;]+ runLA ( prefixString $&lt;$ constA &quot;y&quot; &lt;+&gt; constA &quot;z&quot; ) &quot;x&quot; == [&quot;zyx&quot;]+ runLA ( prefixString $&lt;$ constA &quot;y&quot; &lt;+&gt; this+                          &lt;+&gt; constA &quot;z&quot;            ) &quot;x&quot; == [&quot;zxyx&quot;]+</PRE+><P+>example with two extra parameter+</P+><PRE+> g1 :: a b c1+ g2 :: a b c2++ f          :: (c1, c2) -&gt; a b b+ f (x1, x2) =  ... x1 ... x2 ... ++ f $&lt;$ g1 &amp;&amp;&amp; g2+</PRE+><P+>see also: <TT+><A HREF="Control-Arrow-ArrowList.html#v%3AapplyA"+>applyA</A+></TT+>, <TT+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C"+>$&lt;</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aperform"+></A+><B+>perform</B+> :: a b c -&gt; a b b</TD+></TR+><TR+><TD CLASS="doc"+><P+>useful only for arrows with side effects: perform applies an arrow to the input+ ignores the result and returns the input+</P+><P+>example: <TT+> ... &gt;&gt;&gt; perform someTraceArrow &gt;&gt;&gt; ... </TT+>+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcatA"+></A+><B+>catA</B+> :: [a b c] -&gt; a b c</TD+></TR+><TR+><TD CLASS="doc"+><P+>generalization of arrow combinator &lt;+&gt;+</P+><P+>definition: <TT+> catA = foldl (<A HREF="+"+>+</A+>) none </TT+>+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AseqA"+></A+><B+>seqA</B+> :: [a b b] -&gt; a b b</TD+></TR+><TR+><TD CLASS="doc"+><P+>generalization of arrow combinator &gt;&gt;&gt;+</P+><P+>definition: <TT+> seqA = foldl (&gt;&gt;&gt;) this </TT+>+</P+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ArrowList')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:ArrowList" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Control-Arrow-ArrowState.html view
@@ -0,0 +1,387 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Control.Arrow.ArrowState</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowState.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Control.Arrow.ArrowState</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: ArrowState.hs,v 1.5 2005<EM+>09</EM+>02 17:09:39 hxml Exp $+</P+><P+>Arrows for managing an explicit state+</P+><P+>State arrows work similar to state monads.+   A state value is threaded through the application of arrows.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> Arrow a =&gt; <A HREF="#t%3AArrowState"+>ArrowState</A+> s a | a -&gt; s <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeState"+>changeState</A+> :: (s -&gt; b -&gt; s) -&gt; a b b</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaccessState"+>accessState</A+> :: (s -&gt; b -&gt; c) -&gt; a b c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetState"+>getState</A+> :: a b s</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetState"+>setState</A+> :: a s s</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnextState"+>nextState</A+> :: (s -&gt; s) -&gt; a b s</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> Arrow a =&gt; <A NAME="t%3AArrowState"+></A+><B+>ArrowState</B+> s a | a -&gt; s <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+><P+>The interface for accessing and changing the state component.+</P+><P+>Multi parameter classes and functional dependencies are required.+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+>Methods</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeState"+></A+><B+>changeState</B+> :: (s -&gt; b -&gt; s) -&gt; a b b</TD+></TR+><TR+><TD CLASS="doc"+>change the state of a state arrow by applying a function+ for computing a new state from the old and the arrow input.+ Result is the arrow input+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaccessState"+></A+><B+>accessState</B+> :: (s -&gt; b -&gt; c) -&gt; a b c</TD+></TR+><TR+><TD CLASS="doc"+>access the state with a function using the arrow input+ as data for selecting state components.+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetState"+></A+><B+>getState</B+> :: a b s</TD+></TR+><TR+><TD CLASS="doc"+><P+>read the complete state, ignore arrow input+</P+><P+>definition: <TT+> getState = accessState (\ s x -&gt; s) </TT+> +</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetState"+></A+><B+>setState</B+> :: a s s</TD+></TR+><TR+><TD CLASS="doc"+><P+>overwrite the old state+</P+><P+>definition: <TT+> setState = changeState (\ s x -&gt; x) </TT+>+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnextState"+></A+><B+>nextState</B+> :: (s -&gt; s) -&gt; a b s</TD+></TR+><TR+><TD CLASS="doc"+><P+>change state (and ignore input) and return new state+</P+><P+>convenience function,+ usefull for generating e.g. unique identifiers:+</P+><P+>example with SLA state list arrows+</P+><PRE+> newId :: SLA Int b String+ newId = nextState (+1)+         &gt;&gt;&gt;+         arr (('#':) . show)+ + runSLA 0 (newId &lt;+&gt; newId &lt;+&gt; newId) undefined+   = [&quot;#1&quot;, &quot;#2&quot;, &quot;#3&quot;]+</PRE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ArrowState')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:ArrowState" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowState.html#t%3AArrowState"+>ArrowState</A+> s (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowState.html#t%3AArrowState"+>ArrowState</A+> s (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Control-Arrow-ArrowStrict.html view
@@ -0,0 +1,183 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Control.Arrow.ArrowStrict</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowStrict.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Control.Arrow.ArrowStrict</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id$+</P+><P+>Arrows for complete evaluation of result+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AstrictA"+>strictA</A+> :: (Arrow a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> b) =&gt; a b b</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AstrictA"+></A+><B+>strictA</B+> :: (Arrow a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> b) =&gt; a b b</TD+></TR+><TR+><TD CLASS="doc"+><P+>complete evaluation of an arrow result using <TT+><A HREF="Control-Strategies-DeepSeq.html#v%3AdeepSeq"+>deepSeq</A+></TT+>+ and <TT+><A HREF="Control-Strategies-DeepSeq.html#v%3Astrict"+>strict</A+></TT+>+</P+><P+>this is sometimes useful for preventing space leaks, especially after reading+ and validation of a document, all DTD stuff is not longer in use and can be+ recycled by the GC.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Control-Arrow-ArrowTree.html view
@@ -0,0 +1,1035 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Control.Arrow.ArrowTree</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowTree.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Control.Arrow.ArrowTree</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: ArrowTree.hs,v 1.12 2006<EM+>11</EM+>30 16:05:24 hxml Exp $+</P+><P+>List arrows for tree processing.+</P+><P+>Trees that implement the <A HREF="Data-Tree-Class.html"+>Data.Tree.Class</A+> interface, can be processed+with these arrows.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> (ArrowPlus a, <A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"+>ArrowIf</A+> a) =&gt; <A HREF="#t%3AArrowTree"+>ArrowTree</A+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetChildren"+>getChildren</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetNode"+>getNode</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) b</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetChildren"+>setChildren</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; [t b] -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetNode"+>setNode</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; b -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeChildren"+>changeChildren</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; ([t b] -&gt; [t b]) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeNode"+>changeNode</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; (b -&gt; b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessChildren"+>processChildren</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AreplaceChildren"+>replaceChildren</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%2F%3E"+>(/&gt;)</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%3C%2F"+>(&lt;/)</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Adeep"+>deep</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Adeepest"+>deepest</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Amulti"+>multi</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) c -&gt; a (t b) c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessBottomUp"+>processBottomUp</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessTopDown"+>processTopDown</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessBottomUpWhenNot"+>processBottomUpWhenNot</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessTopDownUntil"+>processTopDownUntil</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AinsertChildrenAt"+>insertChildrenAt</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; Int -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AinsertChildrenAfter"+>insertChildrenAfter</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AinsertTreeTemplate"+>insertTreeTemplate</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; [<A HREF="Control-Arrow-ArrowIf.html#t%3AIfThen"+>IfThen</A+> (a (t b) c) (a (t b) (t b))] -&gt; a (t b) (t b)</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> <A HREF="#t%3ATree"+>Tree</A+> t </TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> (ArrowPlus a, <A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"+>ArrowIf</A+> a) =&gt; <A NAME="t%3AArrowTree"+></A+><B+>ArrowTree</B+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+><P+>The interface for tree arrows+</P+><P+>all functions have default implementations+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+>Methods</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A NAME="v%3AgetChildren"+></A+><B+>getChildren</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+>select the children of the root of a tree+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetNode"+></A+><B+>getNode</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) b</TD+></TR+><TR+><TD CLASS="doc"+>select the attribute of the root of a tree+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetChildren"+></A+><B+>setChildren</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; [t b] -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+>substitute the children of the root of a tree+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetNode"+></A+><B+>setNode</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; b -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+>substitute the attribute of the root of a tree+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeChildren"+></A+><B+>changeChildren</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; ([t b] -&gt; [t b]) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+>edit the children of the root of a tree+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeNode"+></A+><B+>changeNode</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; (b -&gt; b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+>edit the attribute of the root of a tree+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessChildren"+></A+><B+>processChildren</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+><P+>apply an arrow element wise to all children of the root of a tree+ collect these results and substitute the children with this result+</P+><P+>example: <TT+> processChildren isText </TT+> deletes all subtrees, for which isText does not hold+</P+><P+>example: <TT+> processChildren (none `when` isCmt) </TT+> removes all children, for which isCmt holds+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AreplaceChildren"+></A+><B+>replaceChildren</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+><P+>similar to processChildren, but the new children are computed by processing+ the whole input tree+</P+><P+>example: <TT+> replaceChildren (deep isText) </TT+> selects all subtrees for which isText holds+ and substitutes the children component of the root node with this list+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%2F%3E"+></A+><B+>(/&gt;)</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+><P+>pronounced &quot;slash&quot;, meaning g inside f+</P+><P+>defined as <TT+> f /&gt; g = f &gt;&gt;&gt; getChildren &gt;&gt;&gt; g </TT+>+</P+><P+>example: <TT+> hasName &quot;html&quot; /&gt; hasName &quot;body&quot; /&gt; hasName &quot;h1&quot; </TT+>+</P+><P+>This expression selects+ all &quot;h1&quot; elements in the &quot;body&quot; element of an &quot;html&quot; element, an expression, that+ corresponds 1-1 to the XPath selection path &quot;html/body/h1&quot; +</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%3C%2F"+></A+><B+>(&lt;/)</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+><P+>pronounced &quot;outside&quot; meaning f containing g+</P+><P+>defined as <TT+> f <A HREF="\/ g = f \`containing\` (getChildren >>"+>\/ g = f \`containing\` (getChildren &gt;&gt;</A+> g) </TT+>+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Adeep"+></A+><B+>deep</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+><P+>recursively searches a whole tree for subtrees, for which a predicate holds.+ The search is performed top down. When a tree is found, this becomes an element of the result+ list. The tree found is not further examined for any subtress, for which the predicate also could hold.+ See <TT+><A HREF="Control-Arrow-ArrowTree.html#v%3Amulti"+>multi</A+></TT+> for this kind of search.+</P+><P+>example: <TT+> deep isHtmlTable </TT+> selects all top level table elements in a document+ (with an appropriate definition for isHtmlTable) but no tables occuring within a table cell.+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Adeepest"+></A+><B+>deepest</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+><P+>recursively searches a whole tree for subrees, for which a predicate holds.+ The search is performed bottom up.+</P+><P+>example: <TT+> deepest isHtmlTable </TT+> selects all innermost table elements in a document+ but no table elements containing tables. See <TT+><A HREF="Control-Arrow-ArrowTree.html#v%3Adeep"+>deep</A+></TT+> and <TT+><A HREF="Control-Arrow-ArrowTree.html#v%3Amulti"+>multi</A+></TT+> for other search strategies.+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Amulti"+></A+><B+>multi</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) c -&gt; a (t b) c</TD+></TR+><TR+><TD CLASS="doc"+><P+>recursively searches a whole tree for subtrees, for which a predicate holds.+ The search is performed top down. All nodes of the tree are searched, even within the+ subtrees of trees for which the predicate holds.+</P+><P+>example: <TT+> multy isHtmlTable </TT+> selects all table elements, even nested ones.+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessBottomUp"+></A+><B+>processBottomUp</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+><P+>recursively transforms a whole tree by applying an arrow to all subtrees,+ this is done bottom up depth first, leaves first, root as last tree+</P+><P+>example: <TT+> processBottomUp (getChildren `when` isHtmlFont) </TT+> removes all font tags in a HTML document, even nested ones+ (with an appropriate definition of isHtmlFont)+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessTopDown"+></A+><B+>processTopDown</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+>similar to <TT+><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessBottomUp"+>processBottomUp</A+></TT+>, but recursively transforms a whole tree by applying an arrow to all subtrees+ with a top down depth first traversal strategie. In many cases <TT+><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessBottomUp"+>processBottomUp</A+></TT+> and <TT+><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessTopDown"+>processTopDown</A+></TT+>+ give same results.+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessBottomUpWhenNot"+></A+><B+>processBottomUpWhenNot</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+>recursively transforms a whole tree by applying an arrow to all subtrees,+ but transformation stops when a predicte does not hold for a subtree,+ leaves are transformed first+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessTopDownUntil"+></A+><B+>processTopDownUntil</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+><P+>recursively transforms a whole tree by applying an arrow to all subtrees,+ but transformation stops when a tree is successfully transformed.+ the transformation is done top down+</P+><P+>example: <TT+> processTopDownUntil (isHtmlTable `guards` tranformTable) </TT+>+ transforms all top level table elements into something else, but inner tables remain unchanged+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AinsertChildrenAt"+></A+><B+>insertChildrenAt</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; Int -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+><P+>computes a list of trees by applying an arrow to the input+ and inserts this list in front of index i in the list of children+</P+><P+>example: <TT+> insertChildrenAt 0 (deep isCmt) </TT+> selects all subtrees for which isCmt holds+ and copies theses in front of the existing children+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AinsertChildrenAfter"+></A+><B+>insertChildrenAfter</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+>similar to <TT+><A HREF="Control-Arrow-ArrowTree.html#v%3AinsertChildrenAt"+>insertChildrenAt</A+></TT+>, but the insertion position is searched with a predicate+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AinsertTreeTemplate"+></A+><B+>insertTreeTemplate</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; [<A HREF="Control-Arrow-ArrowIf.html#t%3AIfThen"+>IfThen</A+> (a (t b) c) (a (t b) (t b))] -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+><P+>an arrow for inserting a whole subtree with some holes in it (a template)+ into a document. The holes can be filled with contents from the input.+</P+><P+>Example+</P+><PRE+> insertTreeTemplateTest	:: ArrowXml a =&gt; a b XmlTree+ insertTreeTemplateTest+     = doc+       &gt;&gt;&gt;+       insertTemplate template pattern+     where+     doc								-- the input data+ 	= constA &quot;&lt;x&gt;&lt;y&gt;The Title&lt;/y&gt;&lt;z&gt;The content&lt;/z&gt;&lt;/x&gt;&quot;+ 	  &gt;&gt;&gt; xread+     template								-- the output template with 2 holes: xxx and yyy+ 	= constA &quot;&lt;html&gt;&lt;head&gt;&lt;title&gt;xxx&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;h1&gt;yyy&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;&quot;+ 	  &gt;&gt;&gt; xread+     pattern+ 	= [ hasText (== &quot;xxx&quot;)						-- fill the xxx hole with the input contents from element &quot;x/y&quot;+ 	    :-&gt; ( getChildren &gt;&gt;&gt; hasName &quot;y&quot; &gt;&gt;&gt; deep isText )+ + 	  , hasText (== &quot;yyy&quot;)						-- fill the yyy hole with the input contents from element &quot;x/z&quot;+ 	    :-&gt; ( getChildren &gt;&gt;&gt; hasName &quot;z&quot; &gt;&gt;&gt; getChildren )+ 	  ]+</PRE+><P+>computes the XML tree for the following document+</P+><PRE+> &quot;&lt;html&gt;&lt;head&gt;&lt;title&gt;The Title&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;h1&gt;The content&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;&quot;+</PRE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ArrowTree')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:ArrowTree" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"+>ArrowTree</A+> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"+>ArrowTree</A+> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"+>ArrowTree</A+> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"+>ArrowTree</A+> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> <A NAME="t%3ATree"+></A+><B+>Tree</B+> t </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>The interface for trees+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Tree')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:Tree" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Control-Arrow-IOListArrow.html view
@@ -0,0 +1,320 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Control.Arrow.IOListArrow</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/IOListArrow.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Control.Arrow.IOListArrow</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: IOListArrow.hs,v 1.6 2005<EM+>09</EM+>02 17:09:39 hxml Exp $+</P+><P+>Implementation of pure list arrows with io+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>newtype</SPAN+> <A HREF="#t%3AIOLA"+>IOLA</A+> a b = <A HREF="#v%3AIOLA"+>IOLA</A+> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="recfield"+><A HREF="#v%3ArunIOLA"+>runIOLA</A+> :: (a -&gt; IO [b])</TD+></TR+></TABLE+>}</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>newtype</SPAN+> <A NAME="t%3AIOLA"+></A+><B+>IOLA</B+> a b</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>list arrow combined with IO monad+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AIOLA"+></A+><B+>IOLA</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="body" COLSPAN="2"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ArunIOLA"+></A+><B+>runIOLA</B+> :: (a -&gt; IO [b])</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:IOLA')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:IOLA" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Arrow <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+>ArrowApply <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+>ArrowChoice <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"+>ArrowDTD</A+> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIO"+>ArrowIO</A+> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIOIf"+>ArrowIOIf</A+> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"+>ArrowIf</A+> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+>ArrowPlus <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"+>ArrowTree</A+> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+>ArrowZero <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Control-Arrow-IOStateListArrow.html view
@@ -0,0 +1,411 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Control.Arrow.IOStateListArrow</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/IOStateListArrow.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Control.Arrow.IOStateListArrow</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: IOStateListArrow.hs,v 1.7 2005<EM+>09</EM+>02 17:09:39 hxml Exp $+</P+><P+>Implementation of arrows with IO and a state+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>newtype</SPAN+> <A HREF="#t%3AIOSLA"+>IOSLA</A+> s a b = <A HREF="#v%3AIOSLA"+>IOSLA</A+> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="recfield"+><A HREF="#v%3ArunIOSLA"+>runIOSLA</A+> :: (s -&gt; a -&gt; IO (s, [b]))</TD+></TR+></TABLE+>}</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AliftSt"+>liftSt</A+> :: <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s1 b c -&gt; <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> (s1, s2) b c</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ArunSt"+>runSt</A+> :: s2 -&gt; <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> (s1, s2) b c -&gt; <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s1 b c</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>newtype</SPAN+> <A NAME="t%3AIOSLA"+></A+><B+>IOSLA</B+> s a b</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>list arrow combined with a state and the IO monad+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AIOSLA"+></A+><B+>IOSLA</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="body" COLSPAN="2"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ArunIOSLA"+></A+><B+>runIOSLA</B+> :: (s -&gt; a -&gt; IO (s, [b]))</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:IOSLA')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:IOSLA" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowState.html#t%3AArrowState"+>ArrowState</A+> s (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+>Arrow (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+>ArrowApply (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+>ArrowChoice (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"+>ArrowDTD</A+> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIO"+>ArrowIO</A+> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIOIf"+>ArrowIOIf</A+> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"+>ArrowIf</A+> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+>ArrowPlus (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"+>ArrowTree</A+> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+>ArrowZero (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AliftSt"+></A+><B+>liftSt</B+> :: <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s1 b c -&gt; <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> (s1, s2) b c</TD+></TR+><TR+><TD CLASS="doc"+><P+>lift the state of an IOSLA arrow to a state with an additional component.+</P+><P+>This is uesful, when running predefined IO arrows, e.g. for document input,+ in a context with a more complex state component.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArunSt"+></A+><B+>runSt</B+> :: s2 -&gt; <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> (s1, s2) b c -&gt; <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s1 b c</TD+></TR+><TR+><TD CLASS="doc"+><P+>run an arrow with augmented state in the context of a simple state arrow.+ An initial value for the new state component is needed.+</P+><P+>This is useful, when running an arrow with an extra environment component, e.g.+ for namespace handling in XML.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Control-Arrow-ListArrow.html view
@@ -0,0 +1,340 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Control.Arrow.ListArrow</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ListArrow.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Control.Arrow.ListArrow</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: ListArrow.hs,v 1.7 2006<EM+>05</EM+>04 14:17:53 hxml Exp $+</P+><P+>Implementation of pure list arrows+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>newtype</SPAN+> <A HREF="#t%3ALA"+>LA</A+> a b = <A HREF="#v%3ALA"+>LA</A+> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="recfield"+><A HREF="#v%3ArunLA"+>runLA</A+> :: (a -&gt; [b])</TD+></TR+></TABLE+>}</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AfromLA"+>fromLA</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+> b c -&gt; a b c</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>newtype</SPAN+> <A NAME="t%3ALA"+></A+><B+>LA</B+> a b</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>pure list arrow data type+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ALA"+></A+><B+>LA</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="body" COLSPAN="2"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ArunLA"+></A+><B+>runLA</B+> :: (a -&gt; [b])</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:LA')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:LA" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Arrow <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+></TD+></TR+><TR+><TD CLASS="decl"+>ArrowApply <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+></TD+></TR+><TR+><TD CLASS="decl"+>ArrowChoice <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"+>ArrowDTD</A+> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"+>ArrowIf</A+> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+></TD+></TR+><TR+><TD CLASS="decl"+>ArrowPlus <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"+>ArrowTree</A+> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+></TD+></TR+><TR+><TD CLASS="decl"+>ArrowZero <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfromLA"+></A+><B+>fromLA</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+> b c -&gt; a b c</TD+></TR+><TR+><TD CLASS="doc"+>conversion of pure list arrows into other possibly more complex+ list arrows+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Control-Arrow-ListArrows.html view
@@ -0,0 +1,228 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Control.Arrow.ListArrows</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ListArrows.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Control.Arrow.ListArrows</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: ListArrows.hs,v 1.1 2005<EM+>09</EM+>30 14:41:44 hxml Exp $+</P+><P+>Module for importing all list arrows+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Control-Arrow-ArrowStrict.html"+>Control.Arrow.ArrowStrict</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Control-Arrow-ArrowList.html"+>Control.Arrow.ArrowList</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Control-Arrow-ArrowIf.html"+>Control.Arrow.ArrowIf</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Control-Arrow-ArrowState.html"+>Control.Arrow.ArrowState</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Control-Arrow-ArrowTree.html"+>Control.Arrow.ArrowTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Control-Arrow-ArrowIO.html"+>Control.Arrow.ArrowIO</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Control-Arrow-ListArrow.html"+>Control.Arrow.ListArrow</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Control-Arrow-StateListArrow.html"+>Control.Arrow.StateListArrow</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Control-Arrow-IOListArrow.html"+>Control.Arrow.IOListArrow</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Control-Arrow-IOStateListArrow.html"+>Control.Arrow.IOStateListArrow</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Control-Arrow-StateListArrow.html view
@@ -0,0 +1,363 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Control.Arrow.StateListArrow</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/StateListArrow.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Control.Arrow.StateListArrow</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: StateListArrow.hs,v 1.7 2005<EM+>09</EM+>02 17:09:39 hxml Exp $+</P+><P+>Implementation of list arrows with a state+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>newtype</SPAN+> <A HREF="#t%3ASLA"+>SLA</A+> s a b = <A HREF="#v%3ASLA"+>SLA</A+> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="recfield"+><A HREF="#v%3ArunSLA"+>runSLA</A+> :: (s -&gt; a -&gt; (s, [b]))</TD+></TR+></TABLE+>}</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AfromSLA"+>fromSLA</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; s -&gt; <A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s b c -&gt; a b c</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>newtype</SPAN+> <A NAME="t%3ASLA"+></A+><B+>SLA</B+> s a b</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>list arrow combined with a state+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ASLA"+></A+><B+>SLA</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="body" COLSPAN="2"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ArunSLA"+></A+><B+>runSLA</B+> :: (s -&gt; a -&gt; (s, [b]))</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:SLA')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:SLA" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowState.html#t%3AArrowState"+>ArrowState</A+> s (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+>Arrow (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+>ArrowApply (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+>ArrowChoice (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"+>ArrowDTD</A+> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"+>ArrowIf</A+> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+>ArrowPlus (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"+>ArrowTree</A+> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+>ArrowZero (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfromSLA"+></A+><B+>fromSLA</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; s -&gt; <A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s b c -&gt; a b c</TD+></TR+><TR+><TD CLASS="doc"+><P+>conversion of state list arrows into arbitray other+ list arrows.+</P+><P+>allows running a state list arrow within another arrow:+</P+><P+>example:+</P+><PRE+> ... &gt;&gt;&gt; fromSLA 0 (... setState ... getState ... ) &gt;&gt;&gt; ...+</PRE+><P+>runs a state arrow with initial state 0 (e..g. an Int) within+ another arrow sequence+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Control-Monad-MonadStateIO.html view
@@ -0,0 +1,408 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Control.Monad.MonadStateIO</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Monad/MonadStateIO.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Control.Monad.MonadStateIO</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>general usefull state monad for a local state and IO+</P+><P+>Version : $Id: MonadStateIO.hs,v 1.1 2004<EM+>09</EM+>02 19:11:55 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>newtype</SPAN+> <A HREF="#t%3AStateIO"+>StateIO</A+> state res = <A HREF="#v%3ASTIO"+>STIO</A+> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="recfield"+><A HREF="#v%3Atrans"+>trans</A+> :: (state -&gt; IO (res, state))</TD+></TR+></TABLE+>}</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aio"+>io</A+> :: IO a -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtrcState"+>trcState</A+> :: (state -&gt; String) -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state ()</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeState"+>changeState</A+> :: (state -&gt; state) -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetState"+>setState</A+> :: state -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetState"+>getState</A+> :: <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Arun"+>run</A+> :: state -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state res -&gt; IO res</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>newtype</SPAN+> <A NAME="t%3AStateIO"+></A+><B+>StateIO</B+> state res</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ASTIO"+></A+><B+>STIO</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="body" COLSPAN="2"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3Atrans"+></A+><B+>trans</B+> :: (state -&gt; IO (res, state))</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:StateIO')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:StateIO" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Monad (<A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aio"+></A+><B+>io</B+> :: IO a -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state a</TD+></TR+><TR+><TD CLASS="doc"+>lift IO command to <TT+><A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtrcState"+></A+><B+>trcState</B+> :: (state -&gt; String) -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state ()</TD+></TR+><TR+><TD CLASS="doc"+>state inspection command: a &quot;show&quot;-like function is applied to the state+ and the result is written to stderr.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeState"+></A+><B+>changeState</B+> :: (state -&gt; state) -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state state</TD+></TR+><TR+><TD CLASS="doc"+>change the state with a given function and return the new state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetState"+></A+><B+>setState</B+> :: state -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state state</TD+></TR+><TR+><TD CLASS="doc"+>set the state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetState"+></A+><B+>getState</B+> :: <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state state</TD+></TR+><TR+><TD CLASS="doc"+>read the state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Arun"+></A+><B+>run</B+> :: state -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state res -&gt; IO res</TD+></TR+><TR+><TD CLASS="doc"+>run a <TT+><A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+></TT+> command with an initial state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Control-Strategies-DeepSeq.html view
@@ -0,0 +1,447 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Control.Strategies.DeepSeq</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Strategies/DeepSeq.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Control.Strategies.DeepSeq</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>stolen from comp.lang.functional from Dean Herington+</P+><P+>DeepSeq.lhs  --  deep strict evaluation support+</P+><P+>The <TT+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+></TT+> class provides a method <TT+><A HREF="Control-Strategies-DeepSeq.html#v%3AdeepSeq"+>deepSeq</A+></TT+> that is similar to+seq except that it forces deep evaluation of its first argument+before returning its second argument.+</P+><P+>Instances of <TT+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+></TT+> are provided for Prelude types.  Other+instances must be supplied by users of this module.+</P+><P+>$Id: DeepSeq.lhs,v 1.5 2002<EM+>04</EM+>01 20:58:24 heringto Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> <A NAME="t%3ADeepSeq"+></A+><B+>DeepSeq</B+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+>Methods</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A NAME="v%3AdeepSeq"+></A+><B+>deepSeq</B+> :: a -&gt; b -&gt; b</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:DeepSeq')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:DeepSeq" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> Bool</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> Char</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> Double</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> Float</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> Int</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> Integer</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> Ordering</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"+>XIOSysState</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> ()</TD+></TR+><TR+><TD CLASS="decl"+>(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> b) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (a, b)</TD+></TR+><TR+><TD CLASS="decl"+>(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> b, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> c) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (a, b, c)</TD+></TR+><TR+><TD CLASS="decl"+>(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> b, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> c, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> d) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (a, b, c, d)</TD+></TR+><TR+><TD CLASS="decl"+>(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> b, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> c, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> d, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> e) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (a, b, c, d, e)</TD+></TR+><TR+><TD CLASS="decl"+>(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> b, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> c, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> d, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> e, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> f) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (a, b, c, d, e, f)</TD+></TR+><TR+><TD CLASS="decl"+>(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> b, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> c, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> d, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> e, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> f, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> g) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (a, b, c, d, e, f, g)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (a -&gt; b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (IO a)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (Maybe a)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> us =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (<A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOState"+>XIOState</A+> us)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> [a]</TD+></TR+><TR+><TD CLASS="decl"+>(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> b) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (Either a b)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%24%21%21"+></A+><B+>($!!)</B+> :: <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a =&gt; (a -&gt; b) -&gt; a -&gt; b</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Astrict"+></A+><B+>strict</B+> :: <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a =&gt; a -&gt; a</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Data-AssocList.html view
@@ -0,0 +1,388 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Data.AssocList</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/AssocList.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Data.AssocList</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>simple key value assocciation list+ implemented as unordered list of pairs+</P+><P+>Version : $Id: AssocList.hs,v 1.2 2005<EM+>05</EM+>27 13:15:23 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AAssocList"+>AssocList</A+> k v = [(k, v)]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AlookupDef"+>lookupDef</A+> :: Eq k =&gt; v -&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; v</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Alookup1"+>lookup1</A+> :: Eq k =&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k [e] -&gt; [e]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasEntry"+>hasEntry</A+> :: Eq k =&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddEntry"+>addEntry</A+> :: Eq k =&gt; k -&gt; v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddEntries"+>addEntries</A+> :: Eq k =&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AdelEntry"+>delEntry</A+> :: Eq k =&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AdelEntries"+>delEntries</A+> :: Eq k =&gt; [k] -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AAssocList"+></A+><B+>AssocList</B+> k v = [(k, v)]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AlookupDef"+></A+><B+>lookupDef</B+> :: Eq k =&gt; v -&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; v</TD+></TR+><TR+><TD CLASS="doc"+>lookup with default value+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Alookup1"+></A+><B+>lookup1</B+> :: Eq k =&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k [e] -&gt; [e]</TD+></TR+><TR+><TD CLASS="doc"+>lookup with empty list (empty string) as default value+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasEntry"+></A+><B+>hasEntry</B+> :: Eq k =&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test for existence of a key+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddEntry"+></A+><B+>addEntry</B+> :: Eq k =&gt; k -&gt; v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v</TD+></TR+><TR+><TD CLASS="doc"+>add an entry, remove an existing entry before adding the new one at the top of the list, addEntry is strict+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddEntries"+></A+><B+>addEntries</B+> :: Eq k =&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v</TD+></TR+><TR+><TD CLASS="doc"+>add a whole list of entries with <TT+><A HREF="Data-AssocList.html#v%3AaddEntry"+>addEntry</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdelEntry"+></A+><B+>delEntry</B+> :: Eq k =&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v</TD+></TR+><TR+><TD CLASS="doc"+>delete an entry, delEntry is strict+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdelEntries"+></A+><B+>delEntries</B+> :: Eq k =&gt; [k] -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v</TD+></TR+><TR+><TD CLASS="doc"+>delete a list of entries with <TT+><A HREF="Data-AssocList.html#v%3AdelEntry"+>delEntry</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Data-NavTree.html view
@@ -0,0 +1,628 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Data.NavTree</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/NavTree.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Data.NavTree</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>Navigable tree structure which allow a program to traverse+ up the tree as well as down.+ copied and modified from HXML (<A HREF="http://www.flightlab.com/~joe/hxml/"+>http://www.flightlab.com/~joe/hxml/</A+>)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3ANavTree"+>NavTree</A+> a = <A HREF="#v%3ANT"+>NT</A+> (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a) [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a] [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a] [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Antree"+>ntree</A+> :: <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a -&gt; <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsubtreeNT"+>subtreeNT</A+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AdataNT"+>dataNT</A+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AupNT"+>upNT</A+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AdownNT"+>downNT</A+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AleftNT"+>leftNT</A+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ArightNT"+>rightNT</A+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ApreorderNT"+>preorderNT</A+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ArevPreorderNT"+>revPreorderNT</A+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetChildrenNT"+>getChildrenNT</A+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ao%27"+>o'</A+> :: Monad m =&gt; (b -&gt; m c) -&gt; (a -&gt; m b) -&gt; a -&gt; m c</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmaybeStar"+>maybeStar</A+> :: (a -&gt; Maybe a) -&gt; a -&gt; [a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmaybePlus"+>maybePlus</A+> :: (a -&gt; Maybe a) -&gt; a -&gt; [a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Data-Tree-NTree-Filter.html"+>Data.Tree.NTree.Filter</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3ANavTree"+></A+><B+>NavTree</B+> a</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+><P+>navigable tree with nodes of type node+</P+><P+>a navigable tree consists of a n-ary tree for the current fragment tree,+ a navigable tree for all ancestors, and two n-ary trees for+ the previous- and following siblings+</P+></TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ANT"+></A+><B+>NT</B+> (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a) [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a] [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a] [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a]</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:NavTree')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:NavTree" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>??? a =&gt; Eq (<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+>??? a =&gt; Ord (<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+>??? a =&gt; Show (<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Antree"+></A+><B+>ntree</B+> :: <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a -&gt; <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a</TD+></TR+><TR+><TD CLASS="doc"+>converts a n-ary tree in a navigable tree+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsubtreeNT"+></A+><B+>subtreeNT</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a</TD+></TR+><TR+><TD CLASS="doc"+>converts a navigable tree in a n-ary tree+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdataNT"+></A+><B+>dataNT</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; a</TD+></TR+><TR+><TD CLASS="doc"+>function for selecting the value of the current fragment tree+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AupNT"+></A+><B+>upNT</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a)</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdownNT"+></A+><B+>downNT</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a)</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AleftNT"+></A+><B+>leftNT</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a)</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArightNT"+></A+><B+>rightNT</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a)</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ApreorderNT"+></A+><B+>preorderNT</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArevPreorderNT"+></A+><B+>revPreorderNT</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetChildrenNT"+></A+><B+>getChildrenNT</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ao%27"+></A+><B+>o'</B+> :: Monad m =&gt; (b -&gt; m c) -&gt; (a -&gt; m b) -&gt; a -&gt; m c</TD+></TR+><TR+><TD CLASS="doc"+>Kleisli composition:+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmaybeStar"+></A+><B+>maybeStar</B+> :: (a -&gt; Maybe a) -&gt; a -&gt; [a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmaybePlus"+></A+><B+>maybePlus</B+> :: (a -&gt; Maybe a) -&gt; a -&gt; [a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Data-Tree-NTree-Filter.html"+>Data.Tree.NTree.Filter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Data-Tree-Class.html view
@@ -0,0 +1,578 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Data.Tree.Class</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/Tree/Class.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Data.Tree.Class</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>Interface definition for trees+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> <A HREF="#t%3ATree"+>Tree</A+> t  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkTree"+>mkTree</A+> :: a -&gt; [t a] -&gt; t a</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkLeaf"+>mkLeaf</A+> :: a -&gt; t a</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisLeaf"+>isLeaf</A+> :: t a -&gt; Bool</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisInner"+>isInner</A+> :: t a -&gt; Bool</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetNode"+>getNode</A+> :: t a -&gt; a</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetChildren"+>getChildren</A+> :: t a -&gt; [t a]</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeNode"+>changeNode</A+> :: (a -&gt; a) -&gt; t a -&gt; t a</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeChildren"+>changeChildren</A+> :: ([t a] -&gt; [t a]) -&gt; t a -&gt; t a</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetNode"+>setNode</A+> :: a -&gt; t a -&gt; t a</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetChildren"+>setChildren</A+> :: [t a] -&gt; t a -&gt; t a</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AfoldTree"+>foldTree</A+> :: (a -&gt; [b] -&gt; b) -&gt; t a -&gt; b</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnodesTree"+>nodesTree</A+> :: t a -&gt; [a]</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AdepthTree"+>depthTree</A+> :: t a -&gt; Int</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcardTree"+>cardTree</A+> :: t a -&gt; Int</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AformatTree"+>formatTree</A+> :: (a -&gt; String) -&gt; t a -&gt; String</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> <A NAME="t%3ATree"+></A+><B+>Tree</B+> t  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>The interface for trees+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+>Methods</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A NAME="v%3AmkTree"+></A+><B+>mkTree</B+> :: a -&gt; [t a] -&gt; t a</TD+></TR+><TR+><TD CLASS="doc"+>tree construction: a new tree is constructed by a node attribute and a list of children+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkLeaf"+></A+><B+>mkLeaf</B+> :: a -&gt; t a</TD+></TR+><TR+><TD CLASS="doc"+><P+>leaf construction: leafs don't have any children+</P+><P+>definition: <TT+> mkLeaf n = mkTree n [] </TT+>+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisLeaf"+></A+><B+>isLeaf</B+> :: t a -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>leaf test: list of children empty?+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisInner"+></A+><B+>isInner</B+> :: t a -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>innner node test: <TT+> not . isLeaf </TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetNode"+></A+><B+>getNode</B+> :: t a -&gt; a</TD+></TR+><TR+><TD CLASS="doc"+>select node attribute+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetChildren"+></A+><B+>getChildren</B+> :: t a -&gt; [t a]</TD+></TR+><TR+><TD CLASS="doc"+>select children+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeNode"+></A+><B+>changeNode</B+> :: (a -&gt; a) -&gt; t a -&gt; t a</TD+></TR+><TR+><TD CLASS="doc"+>edit node attribute+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeChildren"+></A+><B+>changeChildren</B+> :: ([t a] -&gt; [t a]) -&gt; t a -&gt; t a</TD+></TR+><TR+><TD CLASS="doc"+>edit children+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetNode"+></A+><B+>setNode</B+> :: a -&gt; t a -&gt; t a</TD+></TR+><TR+><TD CLASS="doc"+>substitute node: <TT+> setNode n = changeNode (const n) </TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetChildren"+></A+><B+>setChildren</B+> :: [t a] -&gt; t a -&gt; t a</TD+></TR+><TR+><TD CLASS="doc"+>substitute children: <TT+> setChildren cl = changeChildren (const cl) </TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfoldTree"+></A+><B+>foldTree</B+> :: (a -&gt; [b] -&gt; b) -&gt; t a -&gt; b</TD+></TR+><TR+><TD CLASS="doc"+>fold for trees+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnodesTree"+></A+><B+>nodesTree</B+> :: t a -&gt; [a]</TD+></TR+><TR+><TD CLASS="doc"+>all nodes of a tree+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdepthTree"+></A+><B+>depthTree</B+> :: t a -&gt; Int</TD+></TR+><TR+><TD CLASS="doc"+>depth of a tree+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcardTree"+></A+><B+>cardTree</B+> :: t a -&gt; Int</TD+></TR+><TR+><TD CLASS="doc"+>number of nodes in a tree+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AformatTree"+></A+><B+>formatTree</B+> :: (a -&gt; String) -&gt; t a -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>format tree for readable trace output+</P+><P+>a <EM+>graphical</EM+> representation of the tree in text format+</P+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Tree')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:Tree" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Data-Tree-Class.html#t%3ATree"+>Tree</A+> <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Data-Tree-NTree-Filter.html view
@@ -0,0 +1,3077 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Data.Tree.NTree.Filter</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/Tree/NTree/Filter.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Data.Tree.NTree.Filter</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+><B+>Contents</B+></TD+></TR+><TR+><TD+><DL+><DT+><A HREF="#1"+>Filter+</A+></DT+><DT+><A HREF="#2"+>Monadic Filter+</A+></DT+></DL+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: Filter.hs,v 1.6 2006<EM+>11</EM+>12 14:52:59 hxml Exp $+</P+><P+>Filter for n-ary tree structure with filter combinators+copied and modified from HxXml (<A HREF="http://www.cs.york.ac.uk/fp/HaXml/"+>http://www.cs.york.ac.uk/fp/HaXml/</A+>)+</P+><P+>Similar but more flexible functions for tree processing are defined in the+arrow classes <A HREF="Control-Arrow-ArrowList.html"+>Control.Arrow.ArrowList</A+>, <A HREF="Control-Arrow-ArrowIf.html"+>Control.Arrow.ArrowIf</A+>, <A HREF="Control-Arrow-ArrowTree.html"+>Control.Arrow.ArrowTree</A+> and <A HREF="Control-Arrow-ArrowState.html"+>Control.Arrow.ArrowState</A+>.+For new applications, especially for XML processing, it's recommended to use the arrow interface+<A HREF="Text-XML-HXT-Arrow.html"+>Text.XML.HXT.Arrow</A+> instead of this filter approach as part of the api <A HREF="Text-XML-HXT-Parser.html"+>Text.XML.HXT.Parser</A+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>module <A HREF="Data-Tree-NTree-TypeDefs.html"+>Data.Tree.NTree.TypeDefs</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ATFilter"+>TFilter</A+> node = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>NTrees</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ATSFilter"+>TSFilter</A+> node = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>NTrees</A+> node -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>NTrees</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Asatisfies"+>satisfies</A+> :: (a -&gt; [b]) -&gt; a -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Anone"+>none</A+> :: a -&gt; [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Athis"+>this</A+> :: a -&gt; [a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisOf"+>isOf</A+> :: (a -&gt; Bool) -&gt; a -&gt; [a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisOfNode"+>isOfNode</A+> :: (node -&gt; Bool) -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkNTree"+>mkNTree</A+> :: <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AreplaceNode"+>replaceNode</A+> :: node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AreplaceChildren"+>replaceChildren</A+> :: <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>NTrees</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmodifyNode"+>modifyNode</A+> :: (node -&gt; Maybe node) -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmodifyNode0"+>modifyNode0</A+> :: (node -&gt; node) -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmodifyChildren"+>modifyChildren</A+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATSFilter"+>TSFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsubstChildren"+>substChildren</A+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessChildren"+>processChildren</A+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ao"+>o</A+> :: (a -&gt; [b]) -&gt; (c -&gt; [a]) -&gt; c -&gt; [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A.%3E"+>(.&gt;)</A+> :: (a -&gt; [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; [c]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AseqF"+>seqF</A+> :: [a -&gt; [a]] -&gt; a -&gt; [a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A..%3E"+>(..&gt;)</A+> :: (a -&gt; [b]) -&gt; (a -&gt; b -&gt; [d]) -&gt; a -&gt; [d]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%2B%2B%2B"+>(+++)</A+> :: (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Acat"+>cat</A+> :: [a -&gt; [b]] -&gt; a -&gt; [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AorElse"+>orElse</A+> :: (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aiff"+>iff</A+> :: (a -&gt; [c]) -&gt; (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Achoice"+>choice</A+> :: [<A HREF="Data-Tree-NTree-Filter.html#t%3AIfThen"+>IfThen</A+> (a -&gt; [c]) (a -&gt; [b])] -&gt; a -&gt; [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AIfThen"+>IfThen</A+> a b = <A HREF="#v%3A%3A-%3E"+>(:-&gt;)</A+> a b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Awhen"+>when</A+> :: (a -&gt; [a]) -&gt; (a -&gt; [a]) -&gt; a -&gt; [a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AwhenNot"+>whenNot</A+> :: (a -&gt; [a]) -&gt; (a -&gt; [a]) -&gt; a -&gt; [a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aguards"+>guards</A+> :: (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aneg"+>neg</A+> :: (a -&gt; [c]) -&gt; a -&gt; [a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Acontaining"+>containing</A+> :: (a -&gt; [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnotContaining"+>notContaining</A+> :: (a -&gt; [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%2F%3E"+>(/&gt;)</A+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%3C%2F"+>(&lt;/)</A+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Adeep"+>deep</A+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Adeepest"+>deepest</A+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Amulti"+>multi</A+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessBottomUp"+>processBottomUp</A+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessBottomUpIfNot"+>processBottomUpIfNot</A+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessTopDown"+>processTopDown</A+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessTopDownUntil"+>processTopDownUntil</A+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AinsertChildrenAt"+>insertChildrenAt</A+> :: Int -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AinsertChildrenAfter"+>insertChildrenAfter</A+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AthisM"+>thisM</A+> :: Monad m =&gt; a -&gt; m [a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnoneM"+>noneM</A+> :: Monad m =&gt; a -&gt; m [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A.%3E%3E"+>(.&gt;&gt;)</A+> :: Monad m =&gt; (a -&gt; m [b]) -&gt; (b -&gt; m [c]) -&gt; a -&gt; m [c]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AseqM"+>seqM</A+> :: Monad m =&gt; [a -&gt; m [a]] -&gt; a -&gt; m [a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%2B%2B%2B%3E%3E"+>(+++&gt;&gt;)</A+> :: Monad m =&gt; (a -&gt; m [b]) -&gt; (a -&gt; m [b]) -&gt; a -&gt; m [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcatM"+>catM</A+> :: Monad m =&gt; [a -&gt; m [b]] -&gt; a -&gt; m [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AifM"+>ifM</A+> :: Monad m =&gt; (a -&gt; [b]) -&gt; (a -&gt; m [c]) -&gt; (a -&gt; m [c]) -&gt; a -&gt; m [c]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchoiceM"+>choiceM</A+> :: Monad m =&gt; [<A HREF="Data-Tree-NTree-Filter.html#t%3AIfThen"+>IfThen</A+> (a -&gt; [c]) (a -&gt; m [b])] -&gt; a -&gt; m [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AwhenM"+>whenM</A+> :: Monad m =&gt; (a -&gt; m [a]) -&gt; (a -&gt; [b]) -&gt; a -&gt; m [a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AwhenNotM"+>whenNotM</A+> :: Monad m =&gt; (a -&gt; m [a]) -&gt; (a -&gt; [b]) -&gt; a -&gt; m [a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AguardsM"+>guardsM</A+> :: Monad m =&gt; (a -&gt; [b]) -&gt; (a -&gt; m [c]) -&gt; a -&gt; m [c]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcontainingM"+>containingM</A+> :: Monad m =&gt; (a -&gt; m [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; m [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessChildrenM"+>processChildrenM</A+> :: Monad m =&gt; (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node]) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessTopDownM"+>processTopDownM</A+> :: Monad m =&gt; (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node]) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessBottomUpM"+>processBottomUpM</A+> :: Monad m =&gt; (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node]) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AliftMf"+>liftMf</A+> :: Monad m =&gt; (a -&gt; [b]) -&gt; a -&gt; m [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%24%24"+>($$)</A+> :: (a -&gt; [b]) -&gt; [a] -&gt; [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%24%24%3C"+>($$&lt;)</A+> :: Monad m =&gt; (a -&gt; m [b]) -&gt; [a] -&gt; m [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AperformAction"+>performAction</A+> :: Monad m =&gt; (a -&gt; m b) -&gt; a -&gt; m [a]</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Data-Tree-NTree-TypeDefs.html"+>Data.Tree.NTree.TypeDefs</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ATFilter"+></A+><B+>TFilter</B+> node = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>NTrees</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>tree filter type: a function mapping a tree onto a list of trees+</P+><P+>filter can be used in various ways, as predicates, selectors, transformers, ...+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ATSFilter"+></A+><B+>TSFilter</B+> node = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>NTrees</A+> node -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>NTrees</A+> node</TD+></TR+><TR+><TD CLASS="doc"+>a filter for sequences+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Asatisfies"+></A+><B+>satisfies</B+> :: (a -&gt; [b]) -&gt; a -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+><P+>satisfies converts a result of a predicate filter into a boolean+</P+><P+>is a shortcut for not . null+</P+><P+>typical use in guards or ifs: <TT+>if (satisfies f) t then ... else ... </TT+>+</P+><UL+><LI+> 1.parameter f :  the predicate filter+</LI+><LI+> 2.parameter t :  the tree to be tested+</LI+><LI+> returns : <TT+>b = not (null (f t))</TT+>+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+><A NAME="1"+>Filter+</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Anone"+></A+><B+>none</B+> :: a -&gt; [b]</TD+></TR+><TR+><TD CLASS="doc"+>the null filter, returns the empty list+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Athis"+></A+><B+>this</B+> :: a -&gt; [a]</TD+></TR+><TR+><TD CLASS="doc"+>the unit filter, returns the single element list containing the argument+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisOf"+></A+><B+>isOf</B+> :: (a -&gt; Bool) -&gt; a -&gt; [a]</TD+></TR+><TR+><TD CLASS="doc"+><P+>conversion from predicate function to filter+</P+><UL+><LI+> 1.parameter p :  the predicate for testing the tree+</LI+><LI+> returns : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Athis"+>this</A+></TT+> or <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Anone"+>none</A+></TT+> depending on the predicate+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisOfNode"+></A+><B+>isOfNode</B+> :: (node -&gt; Bool) -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>select filter, selects trees with node values with a specific property+</P+><UL+><LI+> 1.parameter p :  the predicate for testing the node value+</LI+><LI+> returns : <TT+>[]</TT+> or <TT+>[t]</TT+> depending on <TT+>p t</TT+>+</LI+></UL+><P+>a special case of <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AisOf"+>isOf</A+></TT+> filter+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkNTree"+></A+><B+>mkNTree</B+> :: <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>filter for substituting an arbitray tree by a constant+</P+><UL+><LI+> 1.parameter t :  the result tree, the input tree is ignored+</LI+><LI+> returns : the filter+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AreplaceNode"+></A+><B+>replaceNode</B+> :: node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>filter for replacing the node+</P+><UL+><LI+> 1.parameter n :  the new node+</LI+><LI+> returns : the editing filter+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AreplaceChildren"+></A+><B+>replaceChildren</B+> :: <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>NTrees</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>filter for replacing the children+</P+><UL+><LI+> 1.parameter cs :  cs the list of children+</LI+><LI+> returns : the filter+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmodifyNode"+></A+><B+>modifyNode</B+> :: (node -&gt; Maybe node) -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmodifyNode0"+></A+><B+>modifyNode0</B+> :: (node -&gt; node) -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>filter for editing the node+</P+><UL+><LI+> 1.parameter nf :  the XNode editing funtion+</LI+><LI+> returns : the filter+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmodifyChildren"+></A+><B+>modifyChildren</B+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATSFilter"+>TSFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>filter for editing the children+</P+><P+>all children are processed with a filter mapping lists to lists,+ this enables not only elementwise editing by lifting a normal+ filter to a list filter with <TT+>(f $$)</TT+> (see '($$)') but also manipulation+ of the order of the elements, e.g. <A HREF="reverse.html"+>reverse</A+> is an appropriate childen+ editing function.+</P+><UL+><LI+> 1.parameter csf :  the children editing function+</LI+><LI+> returns : the filter+</LI+></UL+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessChildren"+>processChildren</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsubstChildren"+></A+><B+>substChildren</B+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+>filter for substituting the children of a tree by+ a new list of childen computed by applying a filter to the input tree.+ <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyChildren"+>modifyChildren</A+></TT+> can be expressed by <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AsubstChildren"+>substChildren</A+></TT+>:+ <TT+>modifyChildren f t</TT+> is equal to <TT+>substChildren (f . getChildren)</TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessChildren"+></A+><B+>processChildren</B+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>Filter for editing the children of a tree element wise+</P+><UL+><LI+> 1.parameter cf :  the filter applied to the children+</LI+><LI+> returns : the editing filter+</LI+></UL+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyChildren"+>modifyChildren</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ao"+></A+><B+>o</B+> :: (a -&gt; [b]) -&gt; (c -&gt; [a]) -&gt; c -&gt; [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>sequential composition of filters, usually written in infix notation f2 <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Ao"+>o</A+></TT+> f1.+</P+><P+>for predicate filter the logical AND+</P+><UL+><LI+> 1.parameter f2 :  the 2. filter+</LI+><LI+> 2.parameter f1 :  the 1. filter+</LI+><LI+> returns : the fiter applying first f1 to n and then f2 to the result (like function composition)+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A.%3E"+></A+><B+>(.&gt;)</B+> :: (a -&gt; [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; [c]</TD+></TR+><TR+><TD CLASS="doc"+><P+>pronounced &quot;followed by&quot;, defined as: <TT+>f .&gt; g = g `o` f</TT+>.+</P+><P+>allows filter composition in a more readable way from left to right+</P+><UL+><LI+> 1.parameter f1 :  the 1. filter+</LI+><LI+> 2.parameter f2 :  the 2. filter+</LI+><LI+> returns : the composition of f1 and f2+</LI+></UL+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Ao"+>o</A+></TT+>, '(..&gt;)'+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AseqF"+></A+><B+>seqF</B+> :: [a -&gt; [a]] -&gt; a -&gt; [a]</TD+></TR+><TR+><TD CLASS="doc"+><P+>apply a list of filters sequentially with '(.&gt;)', for predicate filters the generalized AND+</P+><P+>see also : '(.&gt;)'+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A..%3E"+></A+><B+>(..&gt;)</B+> :: (a -&gt; [b]) -&gt; (a -&gt; b -&gt; [d]) -&gt; a -&gt; [d]</TD+></TR+><TR+><TD CLASS="doc"+><P+>special sequential composition.+</P+><P+>filter f is applied to an argument t.+ then filter g is applied to all elements of the result list,+ but the argument t is also passed as extra parameter to g.+</P+><P+>This allows for step by step transformations of a tree+ with access to the original tree in every+ transformation step.+</P+><P+>see also : '(.&gt;)', <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Ao"+>o</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%2B%2B%2B"+></A+><B+>(+++)</B+> :: (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>binary parallel composition, the logical OR for predicate filter+</P+><UL+><LI+> 1.parameter f1 :  the 1. filter+</LI+><LI+> 2.parameter f2 :  the 2. filter+</LI+><LI+> returns : the filter for applying f1 and f2 both to an argument tree and concatenating the results+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Acat"+></A+><B+>cat</B+> :: [a -&gt; [b]] -&gt; a -&gt; [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>apply a list of filters, a &quot;union&quot; for lists, for predicate filters the generalized OR+</P+><UL+><LI+> 1.parameter fs :  the list of filters+</LI+><LI+> returns : the composing filter+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AorElse"+></A+><B+>orElse</B+> :: (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>directional choice, usually written in infix notation as f <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AorElse"+>orElse</A+></TT+> g+</P+><UL+><LI+> 1.parameter f :  the 1. filter+</LI+><LI+> 2.parameter g :  the 2. filter+</LI+><LI+> 3.parameter t :  the tree+</LI+><LI+> returns : the filter, that applies f to t, if the result is not the empty list, the result is found, else g t is the result+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aiff"+></A+><B+>iff</B+> :: (a -&gt; [c]) -&gt; (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>if then else lifted to filters+</P+><UL+><LI+> 1.parameter p :  the predicate filter+</LI+><LI+> 2.parameter t :  the &quot;then&quot; filter+</LI+><LI+> 3.parameter e :  the &quot;else&quot; filter+</LI+><LI+> returns : the resulting conditional filter+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Achoice"+></A+><B+>choice</B+> :: [<A HREF="Data-Tree-NTree-Filter.html#t%3AIfThen"+>IfThen</A+> (a -&gt; [c]) (a -&gt; [b])] -&gt; a -&gt; [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>multiway branch. The list of cases <TT+>f :-&gt; g</TT+> is processed sequentially,+ in the first case for that f holds g is applied, if no case matches, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Anone"+>none</A+></TT+> is+ applied.+ This filter can be used like a case expression: <TT+>choice [ p1 :-&gt; f1, p2 :-&gt; f2, ... , this :-&gt; defaultFilter]</TT+>+</P+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Aiff"+>iff</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AchoiceM"+>choiceM</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AIfThen"+></A+><B+>IfThen</B+> a b</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>auxiliary datatype for cases within choice filter+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3A%3A-%3E"+></A+><B+>(:-&gt;)</B+> a b</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Awhen"+></A+><B+>when</B+> :: (a -&gt; [a]) -&gt; (a -&gt; [a]) -&gt; a -&gt; [a]</TD+></TR+><TR+><TD CLASS="doc"+><P+>when the predicate p holds, f is applied, else the identity filter this+</P+><UL+><LI+> 1.parameter f :  the conditinally applied filter+</LI+><LI+> 2.parameter p :  the predicate+</LI+><LI+> returns : the conditional filter+</LI+></UL+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Aiff"+>iff</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNot"+>whenNot</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Aguards"+>guards</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenM"+>whenM</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AwhenNot"+></A+><B+>whenNot</B+> :: (a -&gt; [a]) -&gt; (a -&gt; [a]) -&gt; a -&gt; [a]</TD+></TR+><TR+><TD CLASS="doc"+><P+>the complementary filter of when+</P+><P+>shortcut for f <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Awhen"+>when</A+></TT+> neg g+</P+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Aiff"+>iff</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Awhen"+>when</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNotM"+>whenNotM</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Aneg"+>neg</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aguards"+></A+><B+>guards</B+> :: (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>when the predicate p holds, f is applied, else the null filter none+</P+><UL+><LI+> 1.parameter p :  the predicate filter+</LI+><LI+> 2.parameter f :  the conditionally applied filter+</LI+><LI+> returns : the conditional filter+</LI+></UL+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Aiff"+>iff</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Awhen"+>when</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AguardsM"+>guardsM</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aneg"+></A+><B+>neg</B+> :: (a -&gt; [c]) -&gt; a -&gt; [a]</TD+></TR+><TR+><TD CLASS="doc"+><P+>negation lifted to filters+</P+><UL+><LI+> 1.parameter f :  the predicate filter+</LI+><LI+> returns : the filter, that succeeds, when f failed+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Acontaining"+></A+><B+>containing</B+> :: (a -&gt; [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>pruning: keep only those results from f for which g holds, usually written in infix notation as f <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Acontaining"+>containing</A+></TT+> g+</P+><UL+><LI+> 1.parameter f :  the processing filter+</LI+><LI+> 2.parameter g :  the predicate filter+</LI+><LI+> 3.parameter t :  the tree+</LI+><LI+> returns : all trees r from f t, for which g r holds (is not the empty list)+</LI+></UL+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AnotContaining"+>notContaining</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnotContaining"+></A+><B+>notContaining</B+> :: (a -&gt; [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>pruning: keep only those results from f for which g does not hold+</P+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Acontaining"+>containing</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%2F%3E"+></A+><B+>(/&gt;)</B+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+>pronounced &quot;slash&quot;, meaning g inside f+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%3C%2F"+></A+><B+>(&lt;/)</B+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+>pronounced &quot;outside&quot; meaning f containing g+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Adeep"+></A+><B+>deep</B+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>top down search.+</P+><P+>search terminates, when filter f succeeds+ can e.g. be used for finding all outermost tag node of a specific kind+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Adeepest"+></A+><B+>deepest</B+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>bottom up search.+</P+><P+>first the children are processed,+ if this does not succeed, the node itself is processed+ can e.g. be used for finding all innermost tag nodes of a specific kind+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Amulti"+></A+><B+>multi</B+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>process all nodes of the whole tree.+</P+><P+>can e.g. be used for finding all nodes of a specific kind+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessBottomUp"+></A+><B+>processBottomUp</B+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>bottom up transformation+</P+><UL+><LI+> 1.parameter f :  the <EM+>simple</EM+> transforming filter+</LI+><LI+> returns : the filter that applies f to all subtrees and the tree itself in a deepth first left to right manner+</LI+></UL+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDown"+>processTopDown</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUpIfNot"+>processBottomUpIfNot</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessBottomUpIfNot"+></A+><B+>processBottomUpIfNot</B+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>guarded bottom up transformation, stops at subtrees for which a predicate p holds+</P+><UL+><LI+> 1.parameter f :  the transforming filter+</LI+><LI+> 2.parameter p :  the predicate filter for the guard+</LI+><LI+> returns : the filter for processing all (sub-)trees+</LI+></UL+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUp"+>processBottomUp</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessTopDown"+></A+><B+>processTopDown</B+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>top down transformation+</P+><UL+><LI+> 1.parameter f :  the <EM+>simple</EM+> transforming filter+</LI+><LI+> returns : the filter that applies f first to the tree and then recursively to all subtrees of the result+</LI+></UL+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUp"+>processBottomUp</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessTopDownUntil"+></A+><B+>processTopDownUntil</B+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>top down transformation until a node to be transformed is found+</P+><UL+><LI+> 1.parameter f :  the <EM+>simple</EM+> transforming filter+</LI+><LI+> returns : the filter that applies f first to the tree and, if the filter does not succeed,+		  recursively to all children of the input tree.+</LI+></UL+><P+>Example:+</P+><PRE+>processTopDownUntil none</PRE+><P+>is the identity filter (maybe a bit more inefficient).+</P+><P+>Example:+</P+><PRE+>processTopDownUntil (add1Attr &quot;border&quot; &quot;2&quot; `containing` isTag &quot;table&quot;)</PRE+><P+>is a filter for adding an attribute border=&quot;2&quot; in all top level table tags.+		  The content of table tags will remain unchanged.+</P+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDown"+>processTopDown</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUp"+>processBottomUp</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AinsertChildrenAt"+></A+><B+>insertChildrenAt</B+> :: Int -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>insertion of trees into the list of children at a given position+</P+><P+>useful for inserting something into the list of children at a given position+ the list of children is split with the <TT+>splitAt</TT+> function+ the nodes are inserted between these two sublists.+</P+><P+>examples: <TT+>insertChildrenAt 0 ins t</TT+> inserts all elements computed with <TT+>ins t</TT+> in front+ of the childen of <TT+>t</TT+>, <TT+>insertChildrenAt 1 ins t</TT+> behind the first child+</P+><P+>see also: <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AinsertChildrenAfter"+>insertChildrenAfter</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AinsertChildrenAfter"+></A+><B+>insertChildrenAfter</B+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>insertion of trees into the list of children after specific elements+</P+><P+>useful for inserting something into the list of children of a node+ the list of children is split with the <TT+>span</TT+> function and the filter p as predicate+ the nodes are inserted between these two sublists+</P+><P+>examples: <TT+>insertChildrenAfter none ins t</TT+> inserts all elements computed with <TT+>ins t</TT+> in front+ of the childen of <TT+>t</TT+>, <TT+>insertChildrenAfter this ins t</TT+> appends the elements to the children+</P+><P+>see also: <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AinsertChildrenAt"+>insertChildrenAt</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+><A NAME="2"+>Monadic Filter+</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AthisM"+></A+><B+>thisM</B+> :: Monad m =&gt; a -&gt; m [a]</TD+></TR+><TR+><TD CLASS="doc"+><P+>the monadic version of the identity filter this.+</P+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Athis"+>this</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnoneM"+></A+><B+>noneM</B+> :: Monad m =&gt; a -&gt; m [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>the monadic version of the null filter none.+</P+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Anone"+>none</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A.%3E%3E"+></A+><B+>(.&gt;&gt;)</B+> :: Monad m =&gt; (a -&gt; m [b]) -&gt; (b -&gt; m [c]) -&gt; a -&gt; m [c]</TD+></TR+><TR+><TD CLASS="doc"+><P+>sequential composition of monadic filters, monadic version of &quot;.&gt;&quot;.+</P+><UL+><LI+> 1.parameter f1 :  the 1. monadic filter+</LI+><LI+> 2.parameter f2 :  the 2. monadic filter+</LI+><LI+> returns : the monadic fiter applying first f1 to n and then f2 to the result (like function composition)+</LI+></UL+><P+>see also : '(.&gt;)'+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AseqM"+></A+><B+>seqM</B+> :: Monad m =&gt; [a -&gt; m [a]] -&gt; a -&gt; m [a]</TD+></TR+><TR+><TD CLASS="doc"+>generalized sequential composition of monadic filters+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%2B%2B%2B%3E%3E"+></A+><B+>(+++&gt;&gt;)</B+> :: Monad m =&gt; (a -&gt; m [b]) -&gt; (a -&gt; m [b]) -&gt; a -&gt; m [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>binary parallel composition, the logical OR for predicate filter+</P+><UL+><LI+> 1.parameter f1 :  the 1. filter+</LI+><LI+> 2.parameter f2 :  the 2. filter+</LI+><LI+> returns : the filter for applying f1 and f2 both to an argument tree and concatenating the results+ see also: <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Acat"+>cat</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3A%2B%2B%2B"+>+++</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AcatM"+>catM</A+></TT+>+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcatM"+></A+><B+>catM</B+> :: Monad m =&gt; [a -&gt; m [b]] -&gt; a -&gt; m [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>apply a list of monadic filters+</P+><UL+><LI+> 1.parameter fs :  the list of filters+</LI+><LI+> returns : the composing filter+ see also: <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Acat"+>cat</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3A%2B%2B%2B"+>+++</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3A%2B%2B%2B%3E%3E"+>+++&gt;&gt;</A+></TT+>+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AifM"+></A+><B+>ifM</B+> :: Monad m =&gt; (a -&gt; [b]) -&gt; (a -&gt; m [c]) -&gt; (a -&gt; m [c]) -&gt; a -&gt; m [c]</TD+></TR+><TR+><TD CLASS="doc"+><P+>monadic if-then-else.+</P+><UL+><LI+> 1.parameter p :  the predicate+</LI+><LI+> 2.parameter thenP :  the then part: the monadic filter, that is applied if p holds for the input tree+</LI+><LI+> 3.parameter elseP :  the else part+</LI+><LI+> returns : the monadic filter for the conditional+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchoiceM"+></A+><B+>choiceM</B+> :: Monad m =&gt; [<A HREF="Data-Tree-NTree-Filter.html#t%3AIfThen"+>IfThen</A+> (a -&gt; [c]) (a -&gt; m [b])] -&gt; a -&gt; m [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>monadic version of multiway branch. The list of cases <TT+>f :-&gt; g</TT+> is processed sequentially,+ in the first case for that f holds g is applied, if no case matches, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AnoneM"+>noneM</A+></TT+> is+ applied.+ This filter can be used like a case expression: <TT+>choiceM [ p1 :-&gt; f1, p2 :-&gt; f2, ... , thisM :-&gt; defaultFilter]</TT+>+</P+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Achoice"+>choice</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AifM"+>ifM</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AwhenM"+></A+><B+>whenM</B+> :: Monad m =&gt; (a -&gt; m [a]) -&gt; (a -&gt; [b]) -&gt; a -&gt; m [a]</TD+></TR+><TR+><TD CLASS="doc"+><P+>when the predicate p holds, the monadic filter f is applied, else the identity filter.+</P+><UL+><LI+> 1.parameter f :  the conditinally applied monadic filter+</LI+><LI+> 2.parameter p :  the simple predicate+</LI+><LI+> returns : the conditional filter+</LI+></UL+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AifM"+>ifM</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Awhen"+>when</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AguardsM"+>guardsM</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNotM"+>whenNotM</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AwhenNotM"+></A+><B+>whenNotM</B+> :: Monad m =&gt; (a -&gt; m [a]) -&gt; (a -&gt; [b]) -&gt; a -&gt; m [a]</TD+></TR+><TR+><TD CLASS="doc"+><P+>the complementary filter of whenM.+</P+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AifM"+>ifM</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenM"+>whenM</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNot"+>whenNot</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AguardsM"+></A+><B+>guardsM</B+> :: Monad m =&gt; (a -&gt; [b]) -&gt; (a -&gt; m [c]) -&gt; a -&gt; m [c]</TD+></TR+><TR+><TD CLASS="doc"+><P+>when the predicate p holds, the monadic filter f is applied, else the null filter.+</P+><UL+><LI+> 1.parameter p :  the simple predicate filter+</LI+><LI+> 2.parameter f :  the conditionally applied monadic filter+</LI+><LI+> returns : the conditional filter+</LI+></UL+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AifM"+>ifM</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Aguards"+>guards</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenM"+>whenM</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcontainingM"+></A+><B+>containingM</B+> :: Monad m =&gt; (a -&gt; m [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; m [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>pruning: monadic version of containing, usually written in infix notation as f <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AcontainingM"+>containingM</A+></TT+> g+</P+><UL+><LI+> 1.parameter f :  the monadic processing filter+</LI+><LI+> 2.parameter g :  the predicate filter+</LI+><LI+> 3.parameter t :  the tree+</LI+><LI+> returns : all trees r from f t, for which g r holds (is not the empty list)+</LI+></UL+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AnotContaining"+>notContaining</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessChildrenM"+></A+><B+>processChildrenM</B+> :: Monad m =&gt; (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node]) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node]</TD+></TR+><TR+><TD CLASS="doc"+><P+>Filter for editing the children of a tree with a monadic filter+</P+><UL+><LI+> 1.parameter cf :  the monadic filter applied to the children+</LI+><LI+> returns : the monadic editing filter+</LI+></UL+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessChildren"+>processChildren</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessTopDownM"+></A+><B+>processTopDownM</B+> :: Monad m =&gt; (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node]) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node]</TD+></TR+><TR+><TD CLASS="doc"+>monadic variant of <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDown"+>processTopDown</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessBottomUpM"+></A+><B+>processBottomUpM</B+> :: Monad m =&gt; (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node]) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node]</TD+></TR+><TR+><TD CLASS="doc"+>monadic variant of <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUp"+>processBottomUp</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AliftMf"+></A+><B+>liftMf</B+> :: Monad m =&gt; (a -&gt; [b]) -&gt; a -&gt; m [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>lift a filter to a monadic filter+</P+><UL+><LI+> 1.parameter f :  the <EM+>simple</EM+> filter+</LI+><LI+> returns : the lifted monadic version+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%24%24"+></A+><B+>($$)</B+> :: (a -&gt; [b]) -&gt; [a] -&gt; [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>infix operator for applying a filter to a list of trees+</P+><UL+><LI+> 1.parameter f :  the filter+</LI+><LI+> 2.parameter ts :  the list of trees+</LI+><LI+> returns : the concatenated list of results+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%24%24%3C"+></A+><B+>($$&lt;)</B+> :: Monad m =&gt; (a -&gt; m [b]) -&gt; [a] -&gt; m [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>infix operator for applying a monadic filter to a list of trees,+ typically used in do-notation for processing of intermediate results.+</P+><UL+><LI+> 1.parameter f :  the monadic filter+</LI+><LI+> 2.parameter ts :  the list of trees+</LI+><LI+> returns : the concatenated list of results+</LI+></UL+><P+>see also : '($$)'+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AperformAction"+></A+><B+>performAction</B+> :: Monad m =&gt; (a -&gt; m b) -&gt; a -&gt; m [a]</TD+></TR+><TR+><TD CLASS="doc"+><P+>run an arbitray command on a tree t and return the tree,+ used for inserting arbitray commands in a filter pipeline+</P+><UL+><LI+> 1.parameter cmd :  the command+</LI+><LI+> 2.parameter t :  the argument tree+</LI+><LI+> returns : the unchanged tree as a single element list+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Data-Tree-NTree-TypeDefs.html view
@@ -0,0 +1,377 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Data.Tree.NTree.TypeDefs</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/Tree/NTree/TypeDefs.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Data.Tree.NTree.TypeDefs</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: TypeDefs.hs,v 1.6 2005<EM+>09</EM+>02 17:09:39 hxml Exp $+</P+><P+>Interface definition for trees+</P+><P+>n-ary tree structure (rose trees)+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>module <A HREF="Data-Tree-Class.html"+>Data.Tree.Class</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3ANTree"+>NTree</A+> a = <A HREF="#v%3ANTree"+>NTree</A+> a (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>NTrees</A+> a)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ANTrees"+>NTrees</A+> a = [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AformatNTreeF"+>formatNTreeF</A+> :: (node -&gt; String) -&gt; (String -&gt; String) -&gt; (String -&gt; String) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; String -&gt; String</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Data-Tree-Class.html"+>Data.Tree.Class</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3ANTree"+></A+><B+>NTree</B+> a</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+><P+>n-ary ordered tree (rose trees)+</P+><P+>a tree consists of a node and a possible empty list of children.+ If the list of children is empty, the node is a leaf, else it's+ an inner node.+</P+><P+>NTree implements Eq, Ord, Show and Read+</P+></TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ANTree"+></A+><B+>NTree</B+> a (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>NTrees</A+> a)</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:NTree')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:NTree" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Functor <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Data-Tree-Class.html#t%3ATree"+>Tree</A+> <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+>(Eq a, ??? a) =&gt; Eq (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+>(Ord a, ??? a) =&gt; Ord (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+>(Read a, ??? a) =&gt; Read (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+>(Show a, ??? a) =&gt; Show (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+>(Typeable a, ??? a) =&gt; Typeable (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>XmlNode</A+> a =&gt; <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>XmlNode</A+> (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ANTrees"+></A+><B+>NTrees</B+> a = [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a]</TD+></TR+><TR+><TD CLASS="doc"+>shortcut for a sequence of n-ary trees+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AformatNTreeF"+></A+><B+>formatNTreeF</B+> :: (node -&gt; String) -&gt; (String -&gt; String) -&gt; (String -&gt; String) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>convert a tree into a pseudo graphical string reprsentation+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/System-PipeOpen.html view
@@ -0,0 +1,166 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>System.PipeOpen</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./System/PipeOpen.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>System.PipeOpen</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>none portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: PipeOpen.hs,v 1.2 2005<EM+>09</EM+>02 17:09:39 hxml Exp $+</P+><P+>pipe open implemented with System.Process functions+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3Apopen"+>popen</A+> :: String -&gt; [String] -&gt; IO (String, String, Int)</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Apopen"+></A+><B+>popen</B+> :: String -&gt; [String] -&gt; IO (String, String, Int)</TD+></TR+><TR+><TD CLASS="doc"+>call an external program with a list of command line arguments+ and return content of stdout, content of stderr and return code+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Arrow-DOMInterface.html view
@@ -0,0 +1,156 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Arrow.DOMInterface</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/DOMInterface.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Arrow.DOMInterface</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>The interface to the DOM data types and constants+</P+><P+>Version : $Id: DOMInterface.hs,v 1.2 2006<EM+>11</EM+>09 20:27:42 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-XmlKeywords.html"+>Text.XML.HXT.DOM.XmlKeywords</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-TypeDefs.html"+>Text.XML.HXT.DOM.TypeDefs</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-NamespacePredicates.html"+>Text.XML.HXT.DOM.NamespacePredicates</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-Util.html"+>Text.XML.HXT.DOM.Util</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-XmlOptions.html"+>Text.XML.HXT.DOM.XmlOptions</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Arrow-DTDProcessing.html view
@@ -0,0 +1,192 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Arrow.DTDProcessing</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/DTDProcessing.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Arrow.DTDProcessing</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: DTDProcessing.hs,v 1.9 2006<EM+>05</EM+>11 14:47:19 hxml Exp $+</P+><P+>DTD processing function for+   including external parts of a DTD+   parameter entity substitution and general entity substitution+</P+><P+>Implemtation completely done with arrows+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessDTD"+>processDTD</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessDTD"+></A+><B+>processDTD</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>a filter for DTD processing+</P+><P+>inclusion of external parts of DTD,+ parameter entity substitution+ conditional section evaluation+</P+><P+>input tree must represent a complete document including root node+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Arrow-DocumentInput.html view
@@ -0,0 +1,321 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Arrow.DocumentInput</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/DocumentInput.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Arrow.DocumentInput</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>state arrows for document input+</P+><P+>version $Id: DocumentInput.hs,v 1.12 2006<EM+>11</EM+>24 07:41:37 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetURIContents"+>getURIContents</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXmlContents"+>getXmlContents</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXmlEntityContents"+>getXmlEntityContents</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetEncoding"+>getEncoding</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AdecodeDocument"+>decodeDocument</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetURIContents"+></A+><B+>getURIContents</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXmlContents"+></A+><B+>getXmlContents</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Read the content of a document.+</P+><P+>This routine is usually called from <TT+><A HREF="Text-XML-HXT-Arrow-ProcessDocument.html#v%3AgetDocumentContents"+>getDocumentContents</A+></TT+>.+</P+><P+>The input must be a root node (constructed with <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aroot"+>root</A+></TT+>), usually without children.+   The attribute list contains all input parameters, e.g. URI or source file name, encoding preferences, ...+   If the source name is empty, the input is read from standard input.+</P+><P+>The source is transformed into an absolute URI. If the source is a relative URI, or a file name,+   it is expanded into an absolut URI with respect to the current base URI.+   The default base URI is of protocol &quot;file&quot; and points to the current working directory.+</P+><P+>The currently supported protocols are &quot;http&quot;, &quot;file&quot;, &quot;stdin:&quot; and &quot;string&quot;.+</P+><P+>The latter two are internal protocols. An uri of the form &quot;stdin:&quot; stands for the content of+   the standard input stream.+</P+><P+>&quot;string:some text&quot; means, that &quot;some text&quot; is taken as input.+   This internal protocol is used for reading from normal String values.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXmlEntityContents"+></A+><B+>getXmlEntityContents</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetEncoding"+></A+><B+>getEncoding</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdecodeDocument"+></A+><B+>decodeDocument</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Arrow-DocumentOutput.html view
@@ -0,0 +1,292 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Arrow.DocumentOutput</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/DocumentOutput.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Arrow.DocumentOutput</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>state arrows for document output+</P+><P+>version: $Id: DocumentOutput.hs,v 1.7 2006<EM+>11</EM+>02 09:34:08 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AputXmlDocument"+>putXmlDocument</A+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AputXmlTree"+>putXmlTree</A+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AputXmlSource"+>putXmlSource</A+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetOutputEncoding"+>getOutputEncoding</A+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AencodeDocument"+>encodeDocument</A+> :: Bool -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AputXmlDocument"+></A+><B+>putXmlDocument</B+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AputXmlTree"+></A+><B+>putXmlTree</B+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>write the tree representation of a document to a file+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AputXmlSource"+></A+><B+>putXmlSource</B+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>write a document with indentaion and line numers+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetOutputEncoding"+></A+><B+>getOutputEncoding</B+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AencodeDocument"+></A+><B+>encodeDocument</B+> :: Bool -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Arrow-Edit.html view
@@ -0,0 +1,1444 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Arrow.Edit</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/Edit.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Arrow.Edit</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: Edit.hs,v 1.8 2006<EM+>11</EM+>12 14:52:59 hxml Exp $+</P+><P+>common edit arrows+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AcanonicalizeAllNodes"+>canonicalizeAllNodes</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcanonicalizeForXPath"+>canonicalizeForXPath</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcanonicalizeContents"+>canonicalizeContents</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcollapseAllXText"+>collapseAllXText</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcollapseXText"+>collapseXText</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AescapeXmlDoc"+>escapeXmlDoc</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AescapeHtmlDoc"+>escapeHtmlDoc</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhaskellRepOfXmlDoc"+>haskellRepOfXmlDoc</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtreeRepOfXmlDoc"+>treeRepOfXmlDoc</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddHeadlineToXmlDoc"+>addHeadlineToXmlDoc</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AindentDoc"+>indentDoc</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnumberLinesInXmlDoc"+>numberLinesInXmlDoc</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AremoveComment"+>removeComment</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AremoveAllComment"+>removeAllComment</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AremoveWhiteSpace"+>removeWhiteSpace</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AremoveAllWhiteSpace"+>removeAllWhiteSpace</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AremoveDocWhiteSpace"+>removeDocWhiteSpace</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransfCdata"+>transfCdata</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransfAllCdata"+>transfAllCdata</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransfCharRef"+>transfCharRef</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransfAllCharRef"+>transfAllCharRef</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasXmlPi"+>hasXmlPi</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddXmlPi"+>addXmlPi</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddXmlPiEncoding"+>addXmlPiEncoding</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddDoctypeDecl"+>addDoctypeDecl</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; String -&gt; String -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddXHtmlDoctypeStrict"+>addXHtmlDoctypeStrict</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddXHtmlDoctypeTransitional"+>addXHtmlDoctypeTransitional</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddXHtmlDoctypeFrameset"+>addXHtmlDoctypeFrameset</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcanonicalizeAllNodes"+></A+><B+>canonicalizeAllNodes</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Applies some <A HREF="Canonical XML.html"+>Canonical XML</A+> rules to a document tree.+</P+><P+>The rule differ slightly for canonical XML and XPath in handling of comments+</P+><P+>Note: This is not the whole canonicalization as it is specified by the W3C+ Recommendation. Adding attribute defaults or sorting attributes in lexicographic+ order is done by the <TT+>transform</TT+> function of module <TT+>Text.XML.HXT.Validator.Validation</TT+>.+ Replacing entities or line feed normalization is done by the parser.+</P+><P+>Rules: remove DTD parts, processing instructions, comments and substitute char refs in attribute+ values and text+</P+><P+>Not implemented yet:+</P+><UL+><LI+> Whitespace within start and end tags is normalized+</LI+><LI+> Special characters in attribute values and character content are replaced by character references+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcanonicalizeForXPath"+></A+><B+>canonicalizeForXPath</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Canonicalize a tree for XPath+ Like <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcanonicalizeAllNodes"+>canonicalizeAllNodes</A+></TT+> but comment nodes are not removed+</P+><P+>see <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcanonicalizeAllNodes"+>canonicalizeAllNodes</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcanonicalizeContents"+></A+><B+>canonicalizeContents</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Canonicalize the contents of a document+</P+><P+>substitutes all char refs in text and attribute values,+ removes CDATA section and combines all sequences of resulting text+ nodes into a single text node+</P+><P+>see <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcanonicalizeAllNodes"+>canonicalizeAllNodes</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcollapseAllXText"+></A+><B+>collapseAllXText</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Applies collapseXText recursively.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcollapseXText"+>collapseXText</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcollapseXText"+></A+><B+>collapseXText</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>Collects sequences of text nodes in the list of children of a node into one single text node.+ This is useful, e.g. after char and entity reference substitution+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AescapeXmlDoc"+></A+><B+>escapeXmlDoc</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>escape all special XML chars into XML entity references or char references+</P+><P+>convert the special XML chars &lt; and &amp; in text nodes into prefefiened XML entity references,+ in attribute values also ', &quot;, &gt;, \n, \r and \t are converted into entity or char references,+ in comments nothing is converted (see XML standard 2.4, useful e.g. for JavaScript).+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AescapeHtmlDoc"+></A+><B+>escapeHtmlDoc</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>escape all special HTML chars into XHTML entity references or char references+</P+><P+>convert the special XML chars &lt; and &amp; and all none ASCII chars in text nodes into prefefiened XML or XHTML entity references,+ in attribute values also ', &quot;, &gt;, \n, \r and \t are converted into entity or char references,+ in comments nothing is converted+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhaskellRepOfXmlDoc"+></A+><B+>haskellRepOfXmlDoc</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>convert a document into a Haskell representation (with show).+</P+><P+>Useful for debugging and trace output.+ see also : <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AtreeRepOfXmlDoc"+>treeRepOfXmlDoc</A+></TT+>, <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AnumberLinesInXmlDoc"+>numberLinesInXmlDoc</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtreeRepOfXmlDoc"+></A+><B+>treeRepOfXmlDoc</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>convert a document into a text representation in tree form.+</P+><P+>Useful for debugging and trace output.+ see also : <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AhaskellRepOfXmlDoc"+>haskellRepOfXmlDoc</A+></TT+>, <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AnumberLinesInXmlDoc"+>numberLinesInXmlDoc</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddHeadlineToXmlDoc"+></A+><B+>addHeadlineToXmlDoc</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AindentDoc"+></A+><B+>indentDoc</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>filter for indenting a document tree for pretty printing.+</P+><P+>the tree is traversed for inserting whitespace for tag indentation.+</P+><P+>whitespace is only inserted or changed at places, where it isn't significant,+ is's not inserted between tags and text containing non whitespace chars.+</P+><P+>whitespace is only inserted or changed at places, where it's not significant.+ preserving whitespace may be controlled in a document tree+ by a tag attribute <TT+>xml:space</TT+>+</P+><P+>allowed values for this attribute are <TT+>default | preserve</TT+>.+</P+><P+>input is a complete document tree.+ result the semantically equivalent formatted tree.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveDocWhiteSpace"+>removeDocWhiteSpace</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnumberLinesInXmlDoc"+></A+><B+>numberLinesInXmlDoc</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>convert a document into a text and add line numbers to the text representation.+</P+><P+>Result is a root node with a single text node as child.+ Useful for debugging and trace output.+ see also : <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AhaskellRepOfXmlDoc"+>haskellRepOfXmlDoc</A+></TT+>, <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AtreeRepOfXmlDoc"+>treeRepOfXmlDoc</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveComment"+></A+><B+>removeComment</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>remove Comments: <TT+>none <TT+><A HREF="Control-Arrow-ArrowIf.html#v%3Awhen"+>when</A+></TT+> isCmt</TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveAllComment"+></A+><B+>removeAllComment</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>remove all comments recursively+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveWhiteSpace"+></A+><B+>removeWhiteSpace</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>simple filter for removing whitespace.+</P+><P+>no check on sigificant whitespace, e.g. in HTML &lt;pre&gt;-elements, is done.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveAllWhiteSpace"+>removeAllWhiteSpace</A+></TT+>, <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveDocWhiteSpace"+>removeDocWhiteSpace</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveAllWhiteSpace"+></A+><B+>removeAllWhiteSpace</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>simple recursive filter for removing all whitespace.+</P+><P+>removes all text nodes in a tree that consist only of whitespace.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveWhiteSpace"+>removeWhiteSpace</A+></TT+>, <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveDocWhiteSpace"+>removeDocWhiteSpace</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveDocWhiteSpace"+></A+><B+>removeDocWhiteSpace</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>filter for removing all not significant whitespace.+</P+><P+>the tree traversed for removing whitespace between elements,+ that was inserted for indentation and readability.+ whitespace is only removed at places, where it's not significat+ preserving whitespace may be controlled in a document tree+ by a tag attribute <TT+>xml:space</TT+>+</P+><P+>allowed values for this attribute are <TT+>default | preserve</TT+>+</P+><P+>input is root node of the document to be cleaned up,+ output the semantically equivalent simplified tree+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AindentDoc"+>indentDoc</A+></TT+>, <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveAllWhiteSpace"+>removeAllWhiteSpace</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransfCdata"+></A+><B+>transfCdata</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>converts a CDATA section node into a normal text node+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransfAllCdata"+></A+><B+>transfAllCdata</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>converts CDATA sections in whole document tree into normal text nodes+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransfCharRef"+></A+><B+>transfCharRef</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>converts character references to normal text+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransfAllCharRef"+></A+><B+>transfAllCharRef</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>recursively converts all character references to normal text+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasXmlPi"+></A+><B+>hasXmlPi</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddXmlPi"+></A+><B+>addXmlPi</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>add an &lt;?xml version=&quot;1.0&quot;?&gt; processing instruction+ if it's not already there+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddXmlPiEncoding"+></A+><B+>addXmlPiEncoding</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>add an encoding spec to the &lt;?xml version=&quot;1.0&quot;?&gt; processing instruction+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddDoctypeDecl"+></A+><B+>addDoctypeDecl</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; String -&gt; String -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>add a doctype declaration to a document+</P+><P+>The arguments are the root element name, the PUBLIC id and the SYSTEM id+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddXHtmlDoctypeStrict"+></A+><B+>addXHtmlDoctypeStrict</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>add an XHTML strict doctype declaration to a document+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddXHtmlDoctypeTransitional"+></A+><B+>addXHtmlDoctypeTransitional</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddXHtmlDoctypeFrameset"+></A+><B+>addXHtmlDoctypeFrameset</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Arrow-GeneralEntitySubstitution.html view
@@ -0,0 +1,182 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Arrow.GeneralEntitySubstitution</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/GeneralEntitySubstitution.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Arrow.GeneralEntitySubstitution</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: GeneralEntitySubstitution.hs,v 1.13 2006<EM+>05</EM+>01 18:56:24 hxml Exp $+</P+><P+>general entity substitution+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessGeneralEntities"+>processGeneralEntities</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessGeneralEntities"+></A+><B+>processGeneralEntities</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>substitution of general entities+</P+><P+>input: a complete document tree including root node+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Arrow-Namespace.html view
@@ -0,0 +1,653 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Arrow.Namespace</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/Namespace.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Arrow.Namespace</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: Namespace.hs,v 1.13 2006<EM+>11</EM+>12 14:52:59 hxml Exp $+</P+><P+>namespace specific arrows+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AattachNsEnv"+>attachNsEnv</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcleanupNamespaces"+>cleanupNamespaces</A+> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> (String, String) -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcollectNamespaceDecl"+>collectNamespaceDecl</A+> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> (String, String)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcollectPrefixUriPairs"+>collectPrefixUriPairs</A+> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> (String, String)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisNamespaceDeclAttr"+>isNamespaceDeclAttr</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetNamespaceDecl"+>getNamespaceDecl</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> (String, String)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessWithNsEnv"+>processWithNsEnv</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessWithNsEnvWithoutAttrl"+>processWithNsEnvWithoutAttrl</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AuniqueNamespaces"+>uniqueNamespaces</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AuniqueNamespacesFromDeclAndQNames"+>uniqueNamespacesFromDeclAndQNames</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AattachNsEnv"+></A+><B+>attachNsEnv</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>attach all valid namespace declarations to the attribute list of element nodes.+</P+><P+>This arrow is useful for document processing, that requires access to all namespace+ declarations at any element node, but which cannot be done with a simple <TT+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AprocessWithNsEnv"+>processWithNsEnv</A+></TT+>.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcleanupNamespaces"+></A+><B+>cleanupNamespaces</B+> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> (String, String) -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>does the real work for namespace cleanup.+</P+><P+>The parameter is used for collecting namespace uris and prefixes from the input tree+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcollectNamespaceDecl"+></A+><B+>collectNamespaceDecl</B+> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> (String, String)</TD+></TR+><TR+><TD CLASS="doc"+><P+>collect all namespace declarations contained in a document+</P+><P+>apply <TT+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AgetNamespaceDecl"+>getNamespaceDecl</A+></TT+> to a whole XmlTree+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcollectPrefixUriPairs"+></A+><B+>collectPrefixUriPairs</B+> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> (String, String)</TD+></TR+><TR+><TD CLASS="doc"+><P+>collect all (namePrefix, namespaceUri) pairs from a tree+</P+><P+>all qualified names are inspected, whether a namespace uri is defined,+ for these uris the prefix and uri is returned. This arrow is useful for+ namespace cleanup, e.g. for documents generated with XSLT. It can be used+ together with <TT+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AcollectNamespaceDecl"+>collectNamespaceDecl</A+></TT+> to <TT+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AcleanupNamespaces"+>cleanupNamespaces</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisNamespaceDeclAttr"+></A+><B+>isNamespaceDeclAttr</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether an attribute node contains an XML Namespace declaration+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetNamespaceDecl"+></A+><B+>getNamespaceDecl</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> (String, String)</TD+></TR+><TR+><TD CLASS="doc"+>get the namespace prefix and the namespace URI out of+ an attribute tree with a namespace declaration (see <TT+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AisNamespaceDeclAttr"+>isNamespaceDeclAttr</A+></TT+>)+ for all other nodes this arrow fails+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessWithNsEnv"+></A+><B+>processWithNsEnv</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>process a document tree with an arrow, containing always the+ valid namespace environment as extra parameter.+</P+><P+>The namespace environment is implemented as a <TT+><A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessWithNsEnvWithoutAttrl"+></A+><B+>processWithNsEnvWithoutAttrl</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>process all element nodes of a document tree with an arrow, containing always the+ valid namespace environment as extra parameter. Attribute lists are not processed.+</P+><P+>See also: <TT+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AprocessWithNsEnv"+>processWithNsEnv</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AuniqueNamespaces"+></A+><B+>uniqueNamespaces</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>generate unique namespaces and add all namespace declarations to the root element+</P+><P+>Calls <TT+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AcleanupNamespaces"+>cleanupNamespaces</A+></TT+> with <TT+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AcollectNamespaceDecl"+>collectNamespaceDecl</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AuniqueNamespacesFromDeclAndQNames"+></A+><B+>uniqueNamespacesFromDeclAndQNames</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>generate unique namespaces and add all namespace declarations for all prefix-uri pairs in all qualified names+</P+><P+>useful for cleanup of namespaces in generated documents.+ Calls <TT+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AcleanupNamespaces"+>cleanupNamespaces</A+></TT+> with <TT+> collectNamespaceDecl <A HREF="+"+>+</A+> collectPrefixUriPairs </TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Arrow-ParserInterface.html view
@@ -0,0 +1,404 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Arrow.ParserInterface</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/ParserInterface.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Arrow.ParserInterface</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>interface to the HXT XML and DTD parsers+</P+><P+>version: $Id: ParserInterface.hs,v 1.1 2006<EM+>05</EM+>01 18:56:24 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlDoc"+></A+><B+>parseXmlDoc</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a (String, String) <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlDTDPart"+></A+><B+>parseXmlDTDPart</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a (String, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>) <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlContent"+></A+><B+>parseXmlContent</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlEntityEncodingSpec"+></A+><B+>parseXmlEntityEncodingSpec</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlDocEncodingSpec"+></A+><B+>parseXmlDocEncodingSpec</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveEncodingSpec"+></A+><B+>removeEncodingSpec</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsubstXmlEntityRefs"+></A+><B+>substXmlEntityRefs</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlDTDdeclPart"+></A+><B+>parseXmlDTDdeclPart</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlDTDdecl"+></A+><B+>parseXmlDTDdecl</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlDTDEntityValue"+></A+><B+>parseXmlDTDEntityValue</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlAttrValue"+></A+><B+>parseXmlAttrValue</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlGeneralEntityValue"+></A+><B+>parseXmlGeneralEntityValue</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseHtmlDoc"+></A+><B+>parseHtmlDoc</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a (String, String) <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseHtmlContent"+></A+><B+>parseHtmlContent</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsubstHtmlEntityRefs"+></A+><B+>substHtmlEntityRefs</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateDoc"+></A+><B+>validateDoc</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransformDoc"+></A+><B+>transformDoc</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Arrow-ProcessDocument.html view
@@ -0,0 +1,422 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Arrow.ProcessDocument</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/ProcessDocument.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Arrow.ProcessDocument</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: ProcessDocument.hs,v 1.3 2006<EM+>08</EM+>30 16:20:52 hxml Exp $+</P+><P+>Compound arrows for reading, parsing, validating and writing XML documents+</P+><P+>All arrows use IO and a global state for options, errorhandling, ...+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseXmlDocument"+>parseXmlDocument</A+> :: Bool -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseHtmlDocument"+>parseHtmlDocument</A+> :: Bool -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateDocument"+>validateDocument</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ApropagateAndValidateNamespaces"+>propagateAndValidateNamespaces</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetDocumentContents"+>getDocumentContents</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlDocument"+></A+><B+>parseXmlDocument</B+> :: Bool -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>XML parser+</P+><P+>Input tree must be a root tree with a text tree as child containing the document to be parsed.+The parser generates from the input string a tree of a wellformed XML document,+processes the DTD (parameter substitution, conditional DTD parts, ...) and+substitutes all general entity references. Next step is character reference substitution.+Last step is the document validation.+Validation can be controlled by an extra parameter.+</P+><P+>Example:+</P+><PRE+> parseXmlDocument True    -- parse and validate document++ parseXmlDocument False   -- only parse document, don't validate+</PRE+><P+>This parser is useful for applications processing correct XML documents.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseHtmlDocument"+></A+><B+>parseHtmlDocument</B+> :: Bool -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>HTML parser+</P+><P+>Input tree must be a root tree with a text tree as child containing the document to be parsed.+The parser tries to parse everything as HTML, if the HTML document is not wellformed XML or if+errors occur, warnings are generated. The warnings can be issued, or suppressed.+</P+><P+>Example: <TT+> parseHtmlDocument True </TT+> : parse document and issue warnings+</P+><P+>This parser is useful for applications like web crawlers, where the pages may contain+arbitray errors, but the application is only interested in parts of the document, e.g. the plain text.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateDocument"+></A+><B+>validateDocument</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Document validation+</P+><P+>Input must be a complete document tree. The document+is validated with respect to the DTD spec.+Only useful for XML documents containing a DTD.+</P+><P+>If the document is valid, it is transformed with respect to the DTD,+normalization of attribute values, adding default values, sorting attributes by name,...+</P+><P+>If no error was found, result is the normalized tree,+else the error status is set in the list of attributes+of the root node &quot;/&quot; and the document content is removed from the tree.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ApropagateAndValidateNamespaces"+></A+><B+>propagateAndValidateNamespaces</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Namespace propagation+</P+><P+>Input must be a complete document tree. The namespace declarations+are evaluated and all element and attribute names are processed by+splitting the name into prefix, local part and namespace URI.+</P+><P+>Naames are checked with respect to the XML namespace definition+</P+><P+>If no error was found, result is the unchanged input tree,+else the error status is set in the list of attributes+of the root node &quot;/&quot; and the document content is removed from the tree.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetDocumentContents"+></A+><B+>getDocumentContents</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>creates a new document root, adds all options+   as attributes to the document root and calls <TT+><A HREF="Text-XML-HXT-Arrow-DocumentInput.html#v%3AgetXmlContents"+>getXmlContents</A+></TT+>.+</P+><P+>If the document name is the empty string, the document will be read+   from standard input.+</P+><P+>For supported protocols see <TT+><A HREF="Text-XML-HXT-Arrow-DocumentInput.html#v%3AgetXmlContents"+>getXmlContents</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Arrow-ReadDocument.html view
@@ -0,0 +1,598 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Arrow.ReadDocument</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/ReadDocument.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Arrow.ReadDocument</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: ReadDocument.hs,v 1.10 2006<EM+>11</EM+>24 07:41:37 hxml Exp $+</P+><P+>Compound arrows for reading an XML/HTML document or an XML/HTML string+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AreadDocument"+>readDocument</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AreadFromDocument"+>readFromDocument</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AreadString"+>readString</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AreadFromString"+>readFromString</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ahread"+>hread</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Axread"+>xread</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AreadDocument"+></A+><B+>readDocument</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>the main document input filter+</P+><P+>this filter can be configured by an option list, a value of type <A HREF="Attributes.html"+>Attributes</A+>+</P+><P+>available options:+</P+><UL+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_html"+>a_parse_html</A+></TT+>: use HTML parser, else use XML parser (default)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate"+>a_validate</A+></TT+> : validate document againsd DTD (default), else skip validation+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_relax_schema"+>a_relax_schema</A+></TT+> : validate document with Relax NG, the options value is the schema URI+                     this implies using XML parser, no validation against DTD, and canonicalisation+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_check_namespaces"+>a_check_namespaces</A+></TT+> : check namespaces, else skip namespace processing (default)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_canonicalize"+>a_canonicalize</A+></TT+> : canonicalize document (default), else skip canonicalization+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_preserve_comment"+>a_preserve_comment</A+></TT+> : preserve comments during canonicalization, else remove comments (default)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_remove_whitespace"+>a_remove_whitespace</A+></TT+> : remove all whitespace, used for document indentation, else skip this step (default)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_indent"+>a_indent</A+></TT+> : indent document by inserting whitespace, else skip this step (default)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_warnings"+>a_issue_warnings</A+></TT+> : issue warnings, when parsing HTML (default), else ignore HTML parser warnings+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_errors"+>a_issue_errors</A+></TT+> : issue all error messages on stderr (default), or ignore all error messages (default)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_trace"+>a_trace</A+></TT+> : trace level: values: 0 - 4+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_proxy"+>a_proxy</A+></TT+> : proxy for http access, e.g. www-cache:3128+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_use_curl"+>a_use_curl</A+></TT+> : for http access via external programm curl, default is native HTTP access+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_options_curl"+>a_options_curl</A+></TT+> : more options for external program curl+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_encoding"+>a_encoding</A+></TT+> : default document encoding (<TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf8"+>utf8</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisoLatin1"+>isoLatin1</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AusAscii"+>usAscii</A+></TT+>, ...)+</LI+></UL+><P+>All attributes not evaluated by readDocument are stored in the created document root node for easy access of the various+options in e.g. the input/output modules+</P+><P+>If the document name is the empty string or an uri of the form &quot;stdin:&quot;, the document is read from standard input.+</P+><P+>examples:+</P+><PRE+> readDocument [ ] &quot;test.xml&quot;+</PRE+><P+>reads and validates a document &quot;test.xml&quot;, no namespace propagation, only canonicalization is performed +</P+><PRE+> readDocument [ (a_validate, &quot;0&quot;)+              , (a_encoding, isoLatin1)+              ] &quot;test.xml&quot;+</PRE+><P+>reads document &quot;test.xml&quot; without validation, default encoding <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisoLatin1"+>isoLatin1</A+></TT+>.+</P+><PRE+> readDocument [ (a_parse_html, &quot;1&quot;)+              , (a_encoding, isoLatin1)+              ] &quot;&quot;+</PRE+><P+>reads a HTML document from standard input, no validation is done when parsing HTML, default encoding is <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisoLatin1"+>isoLatin1</A+></TT+>+</P+><PRE+> readDocument [ (a_parse_html,     &quot;1&quot;)+              , (a_proxy,          &quot;www-cache:3128&quot;)+              , (a_curl,           &quot;1&quot;)+              , (a_issue_warnings, &quot;0&quot;)+              ] &quot;http://www.haskell.org/&quot;+</PRE+><P+>reads Haskell homepage with HTML parser ignoring any warnings, with http access via external program curl and proxy &quot;www-cache&quot; at port 3128+</P+><PRE+> readDocument [ (a_validate,          &quot;1&quot;)+              , (a_check_namespace,   &quot;1&quot;)+              , (a_remove_whitespace, &quot;1&quot;)+              , (a_trace,             &quot;2&quot;)+              ] &quot;http://www.w3c.org/&quot;+</PRE+><P+>read w3c home page (xhtml), validate and check namespaces, remove whitespace between tags, trace activities with level 2+</P+><P+>for minimal complete examples see <TT+><A HREF="Text-XML-HXT-Arrow-WriteDocument.html#v%3AwriteDocument"+>writeDocument</A+></TT+> and <TT+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3ArunX"+>runX</A+></TT+>, the main starting point for running an XML arrow.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AreadFromDocument"+></A+><B+>readFromDocument</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>the arrow version of <TT+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadDocument"+>readDocument</A+></TT+>, the arrow input is the source URI+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AreadString"+></A+><B+>readString</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>read a document that is stored in a normal Haskell String+</P+><P+>the same function as readDocument, but the parameter forms the input.+ All options available for <TT+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadDocument"+>readDocument</A+></TT+> are applicable for readString.+</P+><P+>Default encoding: No encoding is done, the String argument is taken as Unicode string+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AreadFromString"+></A+><B+>readFromString</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>the arrow version of <TT+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadString"+>readString</A+></TT+>, the arrow input is the source URI+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ahread"+></A+><B+>hread</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>parse a string as HTML content, substitute all HTML entity refs and canonicalize tree+ (substitute char refs, ...). Errors are ignored.+</P+><P+>A simpler version of <TT+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadFromString"+>readFromString</A+></TT+> but with less functionality.+ Does not run in the IO monad+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Axread"+></A+><B+>xread</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>parse a string as XML content, substitute all predefined XML entity refs and canonicalize tree+ (substitute char refs, ...)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Arrow-WriteDocument.html view
@@ -0,0 +1,367 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Arrow.WriteDocument</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/WriteDocument.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Arrow.WriteDocument</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: WriteDocument.hs,v 1.8 2006<EM+>11</EM+>09 20:27:42 hxml Exp $+</P+><P+>Compound arrow for writing XML documents+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AwriteDocument"+>writeDocument</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AwriteDocumentToString"+>writeDocumentToString</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AwriteDocument"+></A+><B+>writeDocument</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>the main filter for writing documents+</P+><P+>this filter can be configured by an option list like <TT+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadDocument"+>readDocument</A+></TT+>+</P+><P+>usage: <TT+> writeDocument optionList destination </TT+>+</P+><P+>if <TT+> destination </TT+> is the empty string or &quot;-&quot;, stdout is used as output device+</P+><P+>available options are+</P+><UL+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_indent"+>a_indent</A+></TT+> : indent document for readability, (default: no indentation)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_remove_whitespace"+>a_remove_whitespace</A+></TT+> : remove all redundant whitespace for shorten text (default: no removal)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_encoding"+>a_output_encoding</A+></TT+> : encoding of document, default is <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_encoding"+>a_encoding</A+></TT+> or <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf8"+>utf8</A+></TT+>+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_xml"+>a_output_xml</A+></TT+> : (default) issue XML: quote special XML chars &gt;,&lt;,&quot;,',&amp; where neccessary+                   add XML processing instruction+                   and encode document with respect to <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_encoding"+>a_output_encoding</A+></TT+>,+                   if explicitly switched of, the plain text is issued, this is useful+                   for non XML output, e.g. generated Haskell code, LaTex, Java, ...+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_html"+>a_output_html</A+></TT+> : issue XHTML: quote alle XML chars, use HTML entity refs or char refs for none ASCII chars+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_no_xml_pi"+>a_no_xml_pi</A+></TT+> : suppress generation of &lt;?xml ... ?&gt; processing instruction+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_show_tree"+>a_show_tree</A+></TT+> : show tree representation of document (for debugging)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_show_haskell"+>a_show_haskell</A+></TT+> : show Haskell representaion of document (for debugging)+</LI+></UL+><P+>a minimal main program for copying a document+ has the following structure:+</P+><PRE+> module Main+ where+ + import Text.XML.HXT.Arrow+ + main        :: IO ()+ main+     = do+       runX ( readDocument  [] &quot;hello.xml&quot;+              &gt;&gt;&gt;+              writeDocument [] &quot;bye.xml&quot;+            )+       return ()+</PRE+><P+>an example for copying a document to standard output with tracing and evaluation of+error code is:+</P+><PRE+> module Main+ where+ + import Text.XML.HXT.Arrow+ import System.Exit+ + main        :: IO ()+ main+     = do+       [rc] &lt;- runX ( readDocument  [ (a_trace, &quot;1&quot;)+                                    ] &quot;hello.xml&quot;+                      &gt;&gt;&gt;+                      writeDocument [ (a_output_encoding, isoLatin1)+                                    ] &quot;-&quot;        -- output to stdout+                      &gt;&gt;&gt;+                      getErrStatus+                    )+       exitWith ( if rc &gt;= c_err+                  then ExitFailure 1+                  else ExitSuccess+                )+</PRE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AwriteDocumentToString"+></A+><B+>writeDocumentToString</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>Convert a document into a string. Formatiing is done the same way+ and with the same options as in <TT+><A HREF="Text-XML-HXT-Arrow-WriteDocument.html#v%3AwriteDocument"+>writeDocument</A+></TT+>.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Arrow-XmlArrow.html view
@@ -0,0 +1,4027 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Arrow.XmlArrow</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/XmlArrow.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Arrow.XmlArrow</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: XmlArrow.hs,v 1.34 2006<EM+>11</EM+>02 16:43:39 hxml Exp $+</P+><P+>Basic arrows for processing XML documents+</P+><P+>All arrows use IO and a global state for options, errorhandling, ...+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> (Arrow a, <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a, <A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"+>ArrowTree</A+> a) =&gt; <A HREF="#t%3AArrowXml"+>ArrowXml</A+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AisText"+>isText</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisCharRef"+>isCharRef</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisEntityRef"+>isEntityRef</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisCmt"+>isCmt</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisCdata"+>isCdata</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisPi"+>isPi</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlPi"+>isXmlPi</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisElem"+>isElem</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisDTD"+>isDTD</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisAttr"+>isAttr</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisError"+>isError</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisRoot"+>isRoot</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasText"+>hasText</A+> :: (String -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasNameWith"+>hasNameWith</A+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasQName"+>hasQName</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasName"+>hasName</A+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasLocalPart"+>hasLocalPart</A+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasNamePrefix"+>hasNamePrefix</A+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasNamespaceUri"+>hasNamespaceUri</A+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasAttr"+>hasAttr</A+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasQAttr"+>hasQAttr</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasAttrValue"+>hasAttrValue</A+> :: String -&gt; (String -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasQAttrValue"+>hasQAttrValue</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; (String -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkText"+>mkText</A+> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkCharRef"+>mkCharRef</A+> :: a Int <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkEntityRef"+>mkEntityRef</A+> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkCmt"+>mkCmt</A+> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkCdata"+>mkCdata</A+> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkError"+>mkError</A+> :: Int -&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkElement"+>mkElement</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkAttr"+>mkAttr</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkPi"+>mkPi</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Amkqelem"+>mkqelem</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>] -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Amkelem"+>mkelem</A+> :: String -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>] -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aaelem"+>aelem</A+> :: String -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aselem"+>selem</A+> :: String -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aeelem"+>eelem</A+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aroot"+>root</A+> :: [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>] -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aqattr"+>qattr</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aattr"+>attr</A+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Atxt"+>txt</A+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcharRef"+>charRef</A+> :: Int -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AentityRef"+>entityRef</A+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Acmt"+>cmt</A+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Awarn"+>warn</A+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aerr"+>err</A+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Afatal"+>fatal</A+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aspi"+>spi</A+> :: String -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Asqattr"+>sqattr</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Asattr"+>sattr</A+> :: String -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetText"+>getText</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetCharRef"+>getCharRef</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> Int</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetEntityRef"+>getEntityRef</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetCmt"+>getCmt</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetCdata"+>getCdata</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetPiName"+>getPiName</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetPiContent"+>getPiContent</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetElemName"+>getElemName</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetAttrl"+>getAttrl</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetDTDPart"+>getDTDPart</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetDTDAttrl"+>getDTDAttrl</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetAttrName"+>getAttrName</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetErrorLevel"+>getErrorLevel</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> Int</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetErrorMsg"+>getErrorMsg</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetQName"+>getQName</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetName"+>getName</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetUniversalName"+>getUniversalName</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetUniversalUri"+>getUniversalUri</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetLocalPart"+>getLocalPart</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetNamePrefix"+>getNamePrefix</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetNamespaceUri"+>getNamespaceUri</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetAttrValue"+>getAttrValue</A+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetAttrValue0"+>getAttrValue0</A+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetQAttrValue"+>getQAttrValue</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetQAttrValue0"+>getQAttrValue0</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeText"+>changeText</A+> :: (String -&gt; String) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeCmt"+>changeCmt</A+> :: (String -&gt; String) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeQName"+>changeQName</A+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeElemName"+>changeElemName</A+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeAttrName"+>changeAttrName</A+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangePiName"+>changePiName</A+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeAttrValue"+>changeAttrValue</A+> :: (String -&gt; String) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeAttrl"+>changeAttrl</A+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+>) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetQName"+>setQName</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetElemName"+>setElemName</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetAttrName"+>setAttrName</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetPiName"+>setPiName</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetAttrl"+>setAttrl</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddAttrl"+>addAttrl</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddAttr"+>addAttr</A+> :: String -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AremoveAttr"+>removeAttr</A+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AremoveQAttr"+>removeQAttr</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessAttrl"+>processAttrl</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessTopDownWithAttrl"+>processTopDownWithAttrl</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%2B%3D"+>(+=)</A+> :: a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Axshow"+>xshow</A+> :: a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n String</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; <A HREF="#t%3AArrowDTD"+>ArrowDTD</A+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AisDTDDoctype"+>isDTDDoctype</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisDTDElement"+>isDTDElement</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisDTDContent"+>isDTDContent</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisDTDAttlist"+>isDTDAttlist</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisDTDEntity"+>isDTDEntity</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisDTDPEntity"+>isDTDPEntity</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisDTDNotation"+>isDTDNotation</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisDTDCondSect"+>isDTDCondSect</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisDTDName"+>isDTDName</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisDTDPERef"+>isDTDPERef</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasDTDAttr"+>hasDTDAttr</A+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetDTDAttrValue"+>getDTDAttrValue</A+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetDTDAttrValue"+>setDTDAttrValue</A+> :: String -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkDTDElem"+>mkDTDElem</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkDTDDoctype"+>mkDTDDoctype</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkDTDElement"+>mkDTDElement</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkDTDEntity"+>mkDTDEntity</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkDTDPEntity"+>mkDTDPEntity</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> (Arrow a, <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a, <A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"+>ArrowTree</A+> a) =&gt; <A NAME="t%3AArrowXml"+></A+><B+>ArrowXml</B+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+>Methods</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A NAME="v%3AisText"+></A+><B+>isText</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test for text nodes+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisCharRef"+></A+><B+>isCharRef</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test for char reference, used during parsing+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisEntityRef"+></A+><B+>isEntityRef</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test for entity reference, used during parsing+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisCmt"+></A+><B+>isCmt</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test for comment+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisCdata"+></A+><B+>isCdata</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test for CDATA section, used during parsing+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisPi"+></A+><B+>isPi</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test for processing instruction+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlPi"+></A+><B+>isXmlPi</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test for processing instruction &lt;?xml ...&gt;+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisElem"+></A+><B+>isElem</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test for element+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisDTD"+></A+><B+>isDTD</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test for DTD part, used during parsing+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisAttr"+></A+><B+>isAttr</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test for attribute tree+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisError"+></A+><B+>isError</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test for error message+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisRoot"+></A+><B+>isRoot</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test for root node (element with name &quot;/&quot;)+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasText"+></A+><B+>hasText</B+> :: (String -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>test for text nodes with text, for which a predicate holds+</P+><P+>example: <TT+>hasText (all (`elem` &quot; \t\n&quot;))</TT+> check for text nodes with only whitespace content+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasNameWith"+></A+><B+>hasNameWith</B+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether a node (element, attribute, pi) has a name with a special property+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasQName"+></A+><B+>hasQName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether a node (element, attribute, pi) has a specific qualified name+ useful only after namespace propagation+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasName"+></A+><B+>hasName</B+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether a node has a specific name (prefix:localPart ore localPart),+ generally useful, even without namespace handling+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasLocalPart"+></A+><B+>hasLocalPart</B+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether a node has a specific name as local part,+ useful only after namespace propagation+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasNamePrefix"+></A+><B+>hasNamePrefix</B+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether a node has a specific name prefix,+ useful only after namespace propagation+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasNamespaceUri"+></A+><B+>hasNamespaceUri</B+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether a node has a specific namespace URI+ useful only after namespace propagation+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasAttr"+></A+><B+>hasAttr</B+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether an element node has an attribute node with a specific name+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasQAttr"+></A+><B+>hasQAttr</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether an element node has an attribute node with a specific qualified name+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasAttrValue"+></A+><B+>hasAttrValue</B+> :: String -&gt; (String -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether an element node has an attribute with a specific value+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasQAttrValue"+></A+><B+>hasQAttrValue</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; (String -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether an element node has an attribute with a qualified name and a specific value+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkText"+></A+><B+>mkText</B+> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>text node construction arrow+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkCharRef"+></A+><B+>mkCharRef</B+> :: a Int <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>char reference construction arrow, useful for document output+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkEntityRef"+></A+><B+>mkEntityRef</B+> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>entity reference construction arrow, useful for document output+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkCmt"+></A+><B+>mkCmt</B+> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>comment node construction, useful for document output+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkCdata"+></A+><B+>mkCdata</B+> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>CDATA construction, useful for document output+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkError"+></A+><B+>mkError</B+> :: Int -&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>error node construction, useful only internally+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkElement"+></A+><B+>mkElement</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>element construction:+ | the attributes and the content of the element are computed by applying arrows+ to the input+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkAttr"+></A+><B+>mkAttr</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>attribute node construction:+ | the attribute value is computed by applying an arrow to the input+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkPi"+></A+><B+>mkPi</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>processing instruction construction:+ | the content of the processing instruction is computed by applying an arrow to the input+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Amkqelem"+></A+><B+>mkqelem</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>] -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>convenient arrow for element construction, more comfortable variant of <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"+>mkElement</A+></TT+>+</P+><P+>example for simplifying <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"+>mkElement</A+></TT+> :+</P+><PRE+> mkElement qn (a1 &lt;+&gt; ... &lt;+&gt; ai) (c1 &lt;+&gt; ... &lt;+&gt; cj)+</PRE+><P+>equals+</P+><PRE+> mkqelem qn [a1,...,ai] [c1,...,cj]+</PRE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Amkelem"+></A+><B+>mkelem</B+> :: String -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>] -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>convenient arrow for element construction with strings instead of qualified names as tagnames, see also <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"+>mkElement</A+></TT+> and <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Amkelem"+>mkelem</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aaelem"+></A+><B+>aelem</B+> :: String -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>convenient arrow for element constrution with attributes but without content, simple variant of <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Amkelem"+>mkelem</A+></TT+> and <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"+>mkElement</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aselem"+></A+><B+>selem</B+> :: String -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>convenient arrow for simple element constrution without attributes, simple variant of <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Amkelem"+>mkelem</A+></TT+> and <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"+>mkElement</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aeelem"+></A+><B+>eelem</B+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>convenient arrow for constrution of empty elements without attributes, simple variant of <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Amkelem"+>mkelem</A+></TT+> and <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"+>mkElement</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aroot"+></A+><B+>root</B+> :: [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>] -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>construction of an element node with name &quot;/&quot; for document roots+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aqattr"+></A+><B+>qattr</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>alias for <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkAttr"+>mkAttr</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aattr"+></A+><B+>attr</B+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>convenient arrow for attribute constrution, simple variant of <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkAttr"+>mkAttr</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Atxt"+></A+><B+>txt</B+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>constant arrow for text nodes+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcharRef"+></A+><B+>charRef</B+> :: Int -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>constant arrow for char reference nodes+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AentityRef"+></A+><B+>entityRef</B+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>constant arrow for entity reference nodes+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Acmt"+></A+><B+>cmt</B+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>constant arrow for comment+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Awarn"+></A+><B+>warn</B+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>constant arrow for warning+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aerr"+></A+><B+>err</B+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>constant arrow for errors+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Afatal"+></A+><B+>fatal</B+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>constant arrow for fatal errors+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aspi"+></A+><B+>spi</B+> :: String -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>constant arrow for simple processing instructions, see <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkPi"+>mkPi</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Asqattr"+></A+><B+>sqattr</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>constant arrow for attribute nodes, attribute name is a qualified name and value is a text,+ | see also <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkAttr"+>mkAttr</A+></TT+>, <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aqattr"+>qattr</A+></TT+>, <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aattr"+>attr</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Asattr"+></A+><B+>sattr</B+> :: String -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>constant arrow for attribute nodes, attribute name and value are+ | given by parameters, see <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkAttr"+>mkAttr</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetText"+></A+><B+>getText</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>select the text of a text node+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetCharRef"+></A+><B+>getCharRef</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> Int</TD+></TR+><TR+><TD CLASS="doc"+>select the value of a char reference+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetEntityRef"+></A+><B+>getEntityRef</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>select the name of a entity reference node+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetCmt"+></A+><B+>getCmt</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>select the comment of a comment node+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetCdata"+></A+><B+>getCdata</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>select the content of a CDATA node+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetPiName"+></A+><B+>getPiName</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="doc"+>select the name of a processing instruction+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetPiContent"+></A+><B+>getPiContent</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>select the content of a processing instruction+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetElemName"+></A+><B+>getElemName</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="doc"+>select the name of an element node+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetAttrl"+></A+><B+>getAttrl</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>select the attribute list of an element node+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetDTDPart"+></A+><B+>getDTDPart</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+></TD+></TR+><TR+><TD CLASS="doc"+>select the DTD type of a DTD node+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetDTDAttrl"+></A+><B+>getDTDAttrl</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+></TD+></TR+><TR+><TD CLASS="doc"+>select the DTD attributes of a DTD node+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetAttrName"+></A+><B+>getAttrName</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="doc"+>select the name of an attribute+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetErrorLevel"+></A+><B+>getErrorLevel</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> Int</TD+></TR+><TR+><TD CLASS="doc"+>select the error level (c_warn, c_err, c_fatal) from an error node+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetErrorMsg"+></A+><B+>getErrorMsg</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>select the error message from an error node+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetQName"+></A+><B+>getQName</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="doc"+>select the qualified name from an element, attribute or pi+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetName"+></A+><B+>getName</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>select the prefix:localPart or localPart from an element, attribute or pi+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetUniversalName"+></A+><B+>getUniversalName</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>select the univeral name ({namespace URI} ++ localPart)+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetUniversalUri"+></A+><B+>getUniversalUri</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>select the univeral name (namespace URI ++ localPart)+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetLocalPart"+></A+><B+>getLocalPart</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>select the local part+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetNamePrefix"+></A+><B+>getNamePrefix</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>select the name prefix+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetNamespaceUri"+></A+><B+>getNamespaceUri</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>select the namespace URI+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetAttrValue"+></A+><B+>getAttrValue</B+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>select the value of an attribute of an element node,+ always succeeds with empty string as default value &quot;&quot;+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetAttrValue0"+></A+><B+>getAttrValue0</B+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>like <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrValue"+>getAttrValue</A+></TT+>, but fails if the attribute does not exist+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetQAttrValue"+></A+><B+>getQAttrValue</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>like <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrValue"+>getAttrValue</A+></TT+>, but select the value of an attribute given by a qualified name,+ always succeeds with empty string as default value &quot;&quot;+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetQAttrValue0"+></A+><B+>getQAttrValue0</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>like <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetQAttrValue"+>getQAttrValue</A+></TT+>, but fails if attribute does not exist+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeText"+></A+><B+>changeText</B+> :: (String -&gt; String) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>edit the string of a text node+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeCmt"+></A+><B+>changeCmt</B+> :: (String -&gt; String) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>edit the comment string of a comment node+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeQName"+></A+><B+>changeQName</B+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>edit an element-, attribute- or pi- name+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeElemName"+></A+><B+>changeElemName</B+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>edit an element name+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeAttrName"+></A+><B+>changeAttrName</B+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>edit an attribute name+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangePiName"+></A+><B+>changePiName</B+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>edit a pi name+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeAttrValue"+></A+><B+>changeAttrValue</B+> :: (String -&gt; String) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>edit an attribute value+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeAttrl"+></A+><B+>changeAttrl</B+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+>) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>edit an attribute list of an element node+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetQName"+></A+><B+>setQName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>replace an element, attribute or pi name+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetElemName"+></A+><B+>setElemName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>replace an element name+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetAttrName"+></A+><B+>setAttrName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>replace an attribute name+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetPiName"+></A+><B+>setPiName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>replace an element name+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetAttrl"+></A+><B+>setAttrl</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>replace an atribute list of an element node+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddAttrl"+></A+><B+>addAttrl</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>add a list of attributes list to an element+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddAttr"+></A+><B+>addAttr</B+> :: String -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>add (or replace) an attribute+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveAttr"+></A+><B+>removeAttr</B+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>remove an attribute+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveQAttr"+></A+><B+>removeQAttr</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>remove an attribute with a qualified name+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessAttrl"+></A+><B+>processAttrl</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>process the attributes of an element node with an arrow+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessTopDownWithAttrl"+></A+><B+>processTopDownWithAttrl</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>process a whole tree inclusive attribute list of element nodes+ see also: <TT+><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessTopDown"+>processTopDown</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%2B%3D"+></A+><B+>(+=)</B+> :: a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>convenient op for adding attributes or children to a node+</P+><P+>usage: <TT+> tf += cf </TT+>+</P+><P+>the <TT+>tf</TT+> arrow computes an element node, and all trees computed by <TT+>cf</TT+> are+ added to this node, if a tree is an attribute, it is inserted in the attribute list+ else it is appended to the content list.+</P+><P+>attention: do not build long content list this way because <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3A%2B%3D"+>+=</A+></TT+> is implemented by +++</P+><P+>examples:+</P+><PRE+> eelem &quot;a&quot;+   += sattr &quot;href&quot; &quot;page.html&quot;+   += sattr &quot;name&quot; &quot;here&quot;+   += txt &quot;look here&quot;+</PRE+><P+>is the same as+</P+><PRE+> mkelem [ sattr &quot;href&quot; &quot;page.html&quot;+        , sattr &quot;name&quot; &quot;here&quot;+        ]+        [ txt &quot;look here&quot; ]+</PRE+><P+>and results in the XML fragment: &lt;a href=&quot;page.html&quot; name=&quot;here&quot;&gt;look here&lt;/a&gt;+</P+><P+>advantage of the <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3A%2B%3D"+>+=</A+></TT+> operator is, that attributes and content can be added+ any time step by step.+ if <TT+>tf</TT+> computes a whole list of trees, e.g. a list of &quot;td&quot; or &quot;tr&quot; elements,+ the attributes or content is added to all trees. useful for adding &quot;class&quot; or &quot;style&quot; attributes+ to table elements.+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Axshow"+></A+><B+>xshow</B+> :: a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n String</TD+></TR+><TR+><TD CLASS="doc"+>apply an arrow to the input and convert the resulting XML trees into a string representation+</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ArrowXml')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:ArrowXml" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; <A NAME="t%3AArrowDTD"+></A+><B+>ArrowDTD</B+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+><P+>Document Type Definition arrows+</P+><P+>These are separated, because they are not needed for document processing,+only when processing the DTD, e.g. for generating access funtions for the toolbox+from a DTD (se example DTDtoHaskell in the examples directory)+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+>Methods</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A NAME="v%3AisDTDDoctype"+></A+><B+>isDTDDoctype</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisDTDElement"+></A+><B+>isDTDElement</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisDTDContent"+></A+><B+>isDTDContent</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisDTDAttlist"+></A+><B+>isDTDAttlist</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisDTDEntity"+></A+><B+>isDTDEntity</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisDTDPEntity"+></A+><B+>isDTDPEntity</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisDTDNotation"+></A+><B+>isDTDNotation</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisDTDCondSect"+></A+><B+>isDTDCondSect</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisDTDName"+></A+><B+>isDTDName</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisDTDPERef"+></A+><B+>isDTDPERef</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasDTDAttr"+></A+><B+>hasDTDAttr</B+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetDTDAttrValue"+></A+><B+>getDTDAttrValue</B+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetDTDAttrValue"+></A+><B+>setDTDAttrValue</B+> :: String -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkDTDElem"+></A+><B+>mkDTDElem</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkDTDDoctype"+></A+><B+>mkDTDDoctype</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkDTDElement"+></A+><B+>mkDTDElement</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkDTDEntity"+></A+><B+>mkDTDEntity</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkDTDPEntity"+></A+><B+>mkDTDPEntity</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ArrowDTD')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:ArrowDTD" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"+>ArrowDTD</A+> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"+>ArrowDTD</A+> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"+>ArrowDTD</A+> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"+>ArrowDTD</A+> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Arrow-XmlIOStateArrow.html view
@@ -0,0 +1,2904 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Arrow.XmlIOStateArrow</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/XmlIOStateArrow.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Arrow.XmlIOStateArrow</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+><B+>Contents</B+></TD+></TR+><TR+><TD+><DL+><DT+><A HREF="#1"+>Data Types+</A+></DT+><DT+><A HREF="#2"+>Running Arrows+</A+></DT+><DT+><A HREF="#3"+>User State Manipulation+</A+></DT+><DT+><A HREF="#4"+>Global System State Access+</A+></DT+><DT+><A HREF="#5"+>Error Message Handling+</A+></DT+><DT+><A HREF="#6"+>Document Base+</A+></DT+><DT+><A HREF="#7"+>Tracing+</A+></DT+><DT+><A HREF="#8"+>URI Manipulation+</A+></DT+></DL+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: XmlIOStateArrow.hs,v 1.39 2006<EM+>11</EM+>09 20:27:42 hxml Exp $+</P+><P+>the basic state arrows for XML processing+</P+><P+>A state is needed for global processing options,+like encoding options, document base URI, trace levels+and error message handling+</P+><P+>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.+</P+><P+>The user defined part of the store is in the default case empty, defined as ().+It can be extended with an arbitray data type+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AXIOState"+>XIOState</A+> us = <A HREF="#v%3AXIOState"+>XIOState</A+> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="recfield"+><A HREF="#v%3Axio_sysState"+>xio_sysState</A+> :: !<A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"+>XIOSysState</A+></TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3Axio_userState"+>xio_userState</A+> :: !us</TD+></TR+></TABLE+>}</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AXIOSysState"+>XIOSysState</A+>  = <A HREF="#v%3AXIOSys"+>XIOSys</A+> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="recfield"+><A HREF="#v%3Axio_trace"+>xio_trace</A+> :: !Int</TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3Axio_errorStatus"+>xio_errorStatus</A+> :: !Int</TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3Axio_errorModule"+>xio_errorModule</A+> :: !String</TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3Axio_errorMsgHandler"+>xio_errorMsgHandler</A+> :: (String -&gt; IO ())</TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3Axio_errorMsgCollect"+>xio_errorMsgCollect</A+> :: !Bool</TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3Axio_errorMsgList"+>xio_errorMsgList</A+> :: !<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3Axio_baseURI"+>xio_baseURI</A+> :: !String</TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3Axio_defaultBaseURI"+>xio_defaultBaseURI</A+> :: !String</TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3Axio_attrList"+>xio_attrList</A+> :: !(<A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+>)</TD+></TR+></TABLE+>}</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AIOStateArrow"+>IOStateArrow</A+> s b c = <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> (<A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOState"+>XIOState</A+> s) b c</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AIOSArrow"+>IOSArrow</A+> b c = <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> () b c</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AinitialState"+>initialState</A+> :: us -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOState"+>XIOState</A+> us</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AinitialSysState"+>initialSysState</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"+>XIOSysState</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ArunX"+>runX</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> c -&gt; IO [c]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetUserState"+>getUserState</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b s</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetUserState"+>setUserState</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s s s</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeUserState"+>changeUserState</A+> :: (b -&gt; s -&gt; s) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AwithExtendedUserState"+>withExtendedUserState</A+> :: s1 -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> (s1, s0) b c -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s0 b c</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AwithOtherUserState"+>withOtherUserState</A+> :: s1 -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s1 b c -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s0 b c</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetSysParam"+>getSysParam</A+> :: (<A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"+>XIOSysState</A+> -&gt; c) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b c</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeSysParam"+>changeSysParam</A+> :: (b -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"+>XIOSysState</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"+>XIOSysState</A+>) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetParamList"+>setParamList</A+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetParam"+>setParam</A+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AunsetParam"+>unsetParam</A+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetParam"+>getParam</A+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetAllParams"+>getAllParams</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b (<A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+>)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetParamString"+>setParamString</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetParamString"+>getParamString</A+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetParamInt"+>setParamInt</A+> :: String -&gt; Int -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetParamInt"+>getParamInt</A+> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AclearErrStatus"+>clearErrStatus</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetErrStatus"+>setErrStatus</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s Int Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetErrStatus"+>getErrStatus</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetErrMsgStatus"+>setErrMsgStatus</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetErrorMsgHandler"+>setErrorMsgHandler</A+> :: Bool -&gt; (String -&gt; IO ()) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AerrorMsgStderr"+>errorMsgStderr</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AerrorMsgCollect"+>errorMsgCollect</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AerrorMsgStderrAndCollect"+>errorMsgStderrAndCollect</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AerrorMsgIgnore"+>errorMsgIgnore</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetErrorMessages"+>getErrorMessages</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AfilterErrorMsg"+>filterErrorMsg</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AissueWarn"+>issueWarn</A+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AissueErr"+>issueErr</A+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AissueFatal"+>issueFatal</A+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetDocumentStatus"+>setDocumentStatus</A+> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetDocumentStatusFromSystemState"+>setDocumentStatusFromSystemState</A+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AdocumentStatusOk"+>documentStatusOk</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetBaseURI"+>setBaseURI</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s String String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetBaseURI"+>getBaseURI</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeBaseURI"+>changeBaseURI</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s String String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetDefaultBaseURI"+>setDefaultBaseURI</A+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetDefaultBaseURI"+>getDefaultBaseURI</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ArunInLocalURIContext"+>runInLocalURIContext</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b c -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b c</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetTraceLevel"+>setTraceLevel</A+> :: Int -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetTraceLevel"+>getTraceLevel</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AwithTraceLevel"+>withTraceLevel</A+> :: Int -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b c -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b c</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Atrace"+>trace</A+> :: Int -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtraceMsg"+>traceMsg</A+> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtraceString"+>traceString</A+> :: Int -&gt; (String -&gt; String) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s String String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtraceSource"+>traceSource</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtraceTree"+>traceTree</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtraceDoc"+>traceDoc</A+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtraceState"+>traceState</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AexpandURIString"+>expandURIString</A+> :: String -&gt; String -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AexpandURI"+>expandURI</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a (String, String) String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkAbsURI"+>mkAbsURI</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s String String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetFragmentFromURI"+>getFragmentFromURI</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a String String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetPathFromURI"+>getPathFromURI</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a String String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetPortFromURI"+>getPortFromURI</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a String String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetQueryFromURI"+>getQueryFromURI</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a String String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetRegNameFromURI"+>getRegNameFromURI</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a String String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetSchemeFromURI"+>getSchemeFromURI</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a String String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetUserInfoFromURI"+>getUserInfoFromURI</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a String String</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+><A NAME="1"+>Data Types+</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AXIOState"+></A+><B+>XIOState</B+> us</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>state datatype consists of a system state and a user state+ the user state is not fixed+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AXIOState"+></A+><B+>XIOState</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="body" COLSPAN="2"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3Axio_sysState"+></A+><B+>xio_sysState</B+> :: !<A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"+>XIOSysState</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3Axio_userState"+></A+><B+>xio_userState</B+> :: !us</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XIOState')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:XIOState" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> us =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (<A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOState"+>XIOState</A+> us)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AXIOSysState"+></A+><B+>XIOSysState</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>predefined system state data type with all components for the+ system functions, like trace, error handling, ...+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AXIOSys"+></A+><B+>XIOSys</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="body" COLSPAN="2"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3Axio_trace"+></A+><B+>xio_trace</B+> :: !Int</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3Axio_errorStatus"+></A+><B+>xio_errorStatus</B+> :: !Int</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3Axio_errorModule"+></A+><B+>xio_errorModule</B+> :: !String</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3Axio_errorMsgHandler"+></A+><B+>xio_errorMsgHandler</B+> :: (String -&gt; IO ())</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3Axio_errorMsgCollect"+></A+><B+>xio_errorMsgCollect</B+> :: !Bool</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3Axio_errorMsgList"+></A+><B+>xio_errorMsgList</B+> :: !<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3Axio_baseURI"+></A+><B+>xio_baseURI</B+> :: !String</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3Axio_defaultBaseURI"+></A+><B+>xio_defaultBaseURI</B+> :: !String</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3Axio_attrList"+></A+><B+>xio_attrList</B+> :: !(<A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+>)</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XIOSysState')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:XIOSysState" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"+>XIOSysState</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AIOStateArrow"+></A+><B+>IOStateArrow</B+> s b c = <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> (<A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOState"+>XIOState</A+> s) b c</TD+></TR+><TR+><TD CLASS="doc"+>The arrow type for stateful arrows+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AIOSArrow"+></A+><B+>IOSArrow</B+> b c = <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> () b c</TD+></TR+><TR+><TD CLASS="doc"+>The arrow for stateful arrows with no user defined state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+><A NAME="2"+>Running Arrows+</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AinitialState"+></A+><B+>initialState</B+> :: us -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOState"+>XIOState</A+> us</TD+></TR+><TR+><TD CLASS="doc"+>the default global state, used as initial state when running an <TT+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+></TT+> with <TT+><A HREF="Control-Arrow-IOStateListArrow.html#v%3ArunIOSLA"+>runIOSLA</A+></TT+> or+ <TT+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3ArunX"+>runX</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AinitialSysState"+></A+><B+>initialSysState</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"+>XIOSysState</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArunX"+></A+><B+>runX</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> c -&gt; IO [c]</TD+></TR+><TR+><TD CLASS="doc"+><P+>apply an <TT+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+></TT+> to an empty root node with <TT+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AinitialState"+>initialState</A+></TT+> () as initial state+</P+><P+>the main entry point for running a state arrow with IO+</P+><P+>when running <TT+> runX f</TT+> an empty XML root node is applied to <TT+>f</TT+>.+ usually <TT+>f</TT+> will start with a constant arrow (ignoring the input), e.g. a <TT+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadDocument"+>readDocument</A+></TT+> arrow.+</P+><P+>for usage see examples with <TT+><A HREF="Text-XML-HXT-Arrow-WriteDocument.html#v%3AwriteDocument"+>writeDocument</A+></TT+>+</P+><P+>if input has to be feed into the arrow use <TT+><A HREF="Control-Arrow-IOStateListArrow.html#v%3ArunIOSLA"+>runIOSLA</A+></TT+> like in <TT+> runIOSLA f emptyX inputDoc </TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+><A NAME="3"+>User State Manipulation+</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetUserState"+></A+><B+>getUserState</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b s</TD+></TR+><TR+><TD CLASS="doc"+>read the user defined part of the state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetUserState"+></A+><B+>setUserState</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s s s</TD+></TR+><TR+><TD CLASS="doc"+>set the user defined part of the state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeUserState"+></A+><B+>changeUserState</B+> :: (b -&gt; s -&gt; s) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="doc"+>change the user defined part of the state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AwithExtendedUserState"+></A+><B+>withExtendedUserState</B+> :: s1 -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> (s1, s0) b c -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s0 b c</TD+></TR+><TR+><TD CLASS="doc"+><P+>extend user state+</P+><P+>Run an arrow with an extended user state component, The old component+ is stored together with a new one in a pair, the arrow is executed with this+ extended state, and the augmented state component is removed form the state+ when the arrow has finished its execution+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AwithOtherUserState"+></A+><B+>withOtherUserState</B+> :: s1 -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s1 b c -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s0 b c</TD+></TR+><TR+><TD CLASS="doc"+><P+>change the type of user state+</P+><P+>This conversion is useful, when running a state arrow with another+ structure of the user state, e.g. with () when executing some IO arrows+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+><A NAME="4"+>Global System State Access+</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetSysParam"+></A+><B+>getSysParam</B+> :: (<A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"+>XIOSysState</A+> -&gt; c) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b c</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeSysParam"+></A+><B+>changeSysParam</B+> :: (b -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"+>XIOSysState</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"+>XIOSysState</A+>) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetParamList"+></A+><B+>setParamList</B+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>store a list of XML trees in global system state under a given attribute name+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetParam"+></A+><B+>setParam</B+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>store a single XML tree in global state under a given attribute name+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AunsetParam"+></A+><B+>unsetParam</B+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="doc"+>remove an entry in global state, arrow input remains unchanged+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetParam"+></A+><B+>getParam</B+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>read an attribute value from global state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetAllParams"+></A+><B+>getAllParams</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b (<A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+>)</TD+></TR+><TR+><TD CLASS="doc"+>read all attributes from global state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetParamString"+></A+><B+>setParamString</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetParamString"+></A+><B+>getParamString</B+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b String</TD+></TR+><TR+><TD CLASS="doc"+>read a string value from global state,+ if parameter not set &quot;&quot; is returned+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetParamInt"+></A+><B+>setParamInt</B+> :: String -&gt; Int -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="doc"+>store an int value in global state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetParamInt"+></A+><B+>getParamInt</B+> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b Int</TD+></TR+><TR+><TD CLASS="doc"+><P+>read an int value from global state+</P+><PRE+> getParamInt 0 myIntAttr+</PRE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+><A NAME="5"+>Error Message Handling+</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AclearErrStatus"+></A+><B+>clearErrStatus</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetErrStatus"+></A+><B+>setErrStatus</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s Int Int</TD+></TR+><TR+><TD CLASS="doc"+>set global error variable+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetErrStatus"+></A+><B+>getErrStatus</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> Int</TD+></TR+><TR+><TD CLASS="doc"+>read current global error status+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetErrMsgStatus"+></A+><B+>setErrMsgStatus</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>raise the global error status level to that of the input tree+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetErrorMsgHandler"+></A+><B+>setErrorMsgHandler</B+> :: Bool -&gt; (String -&gt; IO ()) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="doc"+>set the error message handler and the flag for collecting the errors+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AerrorMsgStderr"+></A+><B+>errorMsgStderr</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="doc"+>the default error message handler: error output to stderr+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AerrorMsgCollect"+></A+><B+>errorMsgCollect</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="doc"+>error message handler for collecting errors+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AerrorMsgStderrAndCollect"+></A+><B+>errorMsgStderrAndCollect</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="doc"+>error message handler for output to stderr and collecting+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AerrorMsgIgnore"+></A+><B+>errorMsgIgnore</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="doc"+>error message handler for ignoring errors+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetErrorMessages"+></A+><B+>getErrorMessages</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>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+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfilterErrorMsg"+></A+><B+>filterErrorMsg</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>filter error messages from input trees and issue errors+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AissueWarn"+></A+><B+>issueWarn</B+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="doc"+>generate a warnig message+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AissueErr"+></A+><B+>issueErr</B+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="doc"+>generate an error message+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AissueFatal"+></A+><B+>issueFatal</B+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="doc"+>generate a fatal error message, e.g. document not found+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetDocumentStatus"+></A+><B+>setDocumentStatus</B+> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>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 <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"+>c_err</A+></TT+>.+ called by <TT+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetDocumentStatusFromSystemState"+>setDocumentStatusFromSystemState</A+></TT+> when the system state indicates an error+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetDocumentStatusFromSystemState"+></A+><B+>setDocumentStatusFromSystemState</B+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>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 <TT+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetDocumentStatus"+>setDocumentStatus</A+></TT+>+ else nothing is changed+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdocumentStatusOk"+></A+><B+>documentStatusOk</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>check whether tree is a document root and the status attribute has a value less than <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"+>c_err</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+><A NAME="6"+>Document Base+</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetBaseURI"+></A+><B+>setBaseURI</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s String String</TD+></TR+><TR+><TD CLASS="doc"+>set the base URI of a document, used e.g. for reading includes, e.g. external entities,+ the input must be an absolute URI+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetBaseURI"+></A+><B+>getBaseURI</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b String</TD+></TR+><TR+><TD CLASS="doc"+>read the base URI from the globale state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeBaseURI"+></A+><B+>changeBaseURI</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s String String</TD+></TR+><TR+><TD CLASS="doc"+><P+>change the base URI with a possibly relative URI, can be used for+ evaluating the xml:base attribute. Returns the new absolute base URI.+ Fails, if input is not parsable with parseURIReference+</P+><P+>see also: <TT+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetBaseURI"+>setBaseURI</A+></TT+>, <TT+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AmkAbsURI"+>mkAbsURI</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetDefaultBaseURI"+></A+><B+>setDefaultBaseURI</B+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b String</TD+></TR+><TR+><TD CLASS="doc"+>set the default base URI, if parameter is null, the system base (<TT+> file:///&lt;cwd&gt;/ </TT+>) is used,+ else the parameter, must be called before any document is read+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetDefaultBaseURI"+></A+><B+>getDefaultBaseURI</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b String</TD+></TR+><TR+><TD CLASS="doc"+>get the default base URI+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArunInLocalURIContext"+></A+><B+>runInLocalURIContext</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b c -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b c</TD+></TR+><TR+><TD CLASS="doc"+>remember base uri, run an arrow and restore the base URI, used with external entity substitution+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+><A NAME="7"+>Tracing+</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetTraceLevel"+></A+><B+>setTraceLevel</B+> :: Int -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="doc"+>set the global trace level+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetTraceLevel"+></A+><B+>getTraceLevel</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b Int</TD+></TR+><TR+><TD CLASS="doc"+>read the global trace level+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AwithTraceLevel"+></A+><B+>withTraceLevel</B+> :: Int -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b c -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b c</TD+></TR+><TR+><TD CLASS="doc"+>run an arrow with a given trace level, the old trace level is restored after the arrow execution+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Atrace"+></A+><B+>trace</B+> :: Int -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="doc"+>apply a trace arrow and issue message to stderr+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtraceMsg"+></A+><B+>traceMsg</B+> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="doc"+>issue a string message as trace +</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtraceString"+></A+><B+>traceString</B+> :: Int -&gt; (String -&gt; String) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s String String</TD+></TR+><TR+><TD CLASS="doc"+>issue the string input of an arrow+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtraceSource"+></A+><B+>traceSource</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>issue the source representation of a document if trace level &gt;= 3+</P+><P+>for better readability the source is formated with indentDoc+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtraceTree"+></A+><B+>traceTree</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>issue the tree representation of a document if trace level &gt;= 4+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtraceDoc"+></A+><B+>traceDoc</B+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>trace a main computation step+ issue a message when trace level &gt;= 1, issue document source if level &gt;= 3, issue tree when level is &gt;= 4+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtraceState"+></A+><B+>traceState</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="doc"+>trace the global state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+><A NAME="8"+>URI Manipulation+</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AexpandURIString"+></A+><B+>expandURIString</B+> :: String -&gt; String -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="doc"+>compute the absolut URI for a given URI and a base URI+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AexpandURI"+></A+><B+>expandURI</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a (String, String) String</TD+></TR+><TR+><TD CLASS="doc"+>arrow variant of <TT+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AexpandURIString"+>expandURIString</A+></TT+>, fails if <TT+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AexpandURIString"+>expandURIString</A+></TT+> returns Nothing+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkAbsURI"+></A+><B+>mkAbsURI</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s String String</TD+></TR+><TR+><TD CLASS="doc"+>arrow for expanding an input URI into an absolute URI using global base URI, fails if input is not a legal URI+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetFragmentFromURI"+></A+><B+>getFragmentFromURI</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a String String</TD+></TR+><TR+><TD CLASS="doc"+>arrow for computing the fragment component of an URI, fails if input is not a legal URI+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetPathFromURI"+></A+><B+>getPathFromURI</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a String String</TD+></TR+><TR+><TD CLASS="doc"+>arrow for computing the path component of an URI, fails if input is not a legal URI+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetPortFromURI"+></A+><B+>getPortFromURI</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a String String</TD+></TR+><TR+><TD CLASS="doc"+>arrow for selecting the port number of the URI without leading ':', fails if input is not a legal URI+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetQueryFromURI"+></A+><B+>getQueryFromURI</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a String String</TD+></TR+><TR+><TD CLASS="doc"+>arrow for computing the query component of an URI, fails if input is not a legal URI+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetRegNameFromURI"+></A+><B+>getRegNameFromURI</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a String String</TD+></TR+><TR+><TD CLASS="doc"+>arrow for selecting the registered name (host) of the URI, fails if input is not a legal URI+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetSchemeFromURI"+></A+><B+>getSchemeFromURI</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a String String</TD+></TR+><TR+><TD CLASS="doc"+><P+>arrow for selecting the scheme (protocol) of the URI, fails if input is not a legal URI.+</P+><P+>See Network.URI for URI components+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetUserInfoFromURI"+></A+><B+>getUserInfoFromURI</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a String String</TD+></TR+><TR+><TD CLASS="doc"+>arrow for selecting the user info of the URI without trailing '@', fails if input is not a legal URI+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Arrow-XmlNode.html view
@@ -0,0 +1,1055 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Arrow.XmlNode</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/XmlNode.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Arrow.XmlNode</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: XmlNode.hs,v 1.14 2006<EM+>08</EM+>28 19:14:15 hxml Exp $+</P+><P+>Interface for XmlArrow to basic data types NTree and XmlTree+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> <A NAME="t%3AXmlNode"+></A+><B+>XmlNode</B+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+>Methods</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A NAME="v%3AisText"+></A+><B+>isText</B+> :: a -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisCharRef"+></A+><B+>isCharRef</B+> :: a -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisEntityRef"+></A+><B+>isEntityRef</B+> :: a -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisCmt"+></A+><B+>isCmt</B+> :: a -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisCdata"+></A+><B+>isCdata</B+> :: a -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisPi"+></A+><B+>isPi</B+> :: a -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisElem"+></A+><B+>isElem</B+> :: a -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisDTD"+></A+><B+>isDTD</B+> :: a -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisAttr"+></A+><B+>isAttr</B+> :: a -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisError"+></A+><B+>isError</B+> :: a -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkText"+></A+><B+>mkText</B+> :: String -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkCharRef"+></A+><B+>mkCharRef</B+> :: Int -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkEntityRef"+></A+><B+>mkEntityRef</B+> :: String -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkCmt"+></A+><B+>mkCmt</B+> :: String -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkCdata"+></A+><B+>mkCdata</B+> :: String -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkPi"+></A+><B+>mkPi</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkError"+></A+><B+>mkError</B+> :: Int -&gt; String -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetText"+></A+><B+>getText</B+> :: a -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetCharRef"+></A+><B+>getCharRef</B+> :: a -&gt; Maybe Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetEntityRef"+></A+><B+>getEntityRef</B+> :: a -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetCmt"+></A+><B+>getCmt</B+> :: a -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetCdata"+></A+><B+>getCdata</B+> :: a -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetPiName"+></A+><B+>getPiName</B+> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetPiContent"+></A+><B+>getPiContent</B+> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetElemName"+></A+><B+>getElemName</B+> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetAttrl"+></A+><B+>getAttrl</B+> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetDTDPart"+></A+><B+>getDTDPart</B+> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetDTDAttrl"+></A+><B+>getDTDAttrl</B+> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetAttrName"+></A+><B+>getAttrName</B+> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetErrorLevel"+></A+><B+>getErrorLevel</B+> :: a -&gt; Maybe Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetErrorMsg"+></A+><B+>getErrorMsg</B+> :: a -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetName"+></A+><B+>getName</B+> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetQualifiedName"+></A+><B+>getQualifiedName</B+> :: a -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetUniversalName"+></A+><B+>getUniversalName</B+> :: a -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetUniversalUri"+></A+><B+>getUniversalUri</B+> :: a -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetLocalPart"+></A+><B+>getLocalPart</B+> :: a -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetNamePrefix"+></A+><B+>getNamePrefix</B+> :: a -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetNamespaceUri"+></A+><B+>getNamespaceUri</B+> :: a -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeText"+></A+><B+>changeText</B+> :: (String -&gt; String) -&gt; a -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeCmt"+></A+><B+>changeCmt</B+> :: (String -&gt; String) -&gt; a -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeName"+></A+><B+>changeName</B+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>) -&gt; a -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeElemName"+></A+><B+>changeElemName</B+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>) -&gt; a -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeAttrl"+></A+><B+>changeAttrl</B+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+>) -&gt; a -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeAttrName"+></A+><B+>changeAttrName</B+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>) -&gt; a -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangePiName"+></A+><B+>changePiName</B+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>) -&gt; a -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeDTDAttrl"+></A+><B+>changeDTDAttrl</B+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+>) -&gt; a -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetText"+></A+><B+>setText</B+> :: String -&gt; a -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetCmt"+></A+><B+>setCmt</B+> :: String -&gt; a -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetName"+></A+><B+>setName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetElemName"+></A+><B+>setElemName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetElemAttrl"+></A+><B+>setElemAttrl</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; a -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetAttrName"+></A+><B+>setAttrName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetPiName"+></A+><B+>setPiName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetDTDAttrl"+></A+><B+>setDTDAttrl</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; a -&gt; a</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XmlNode')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:XmlNode" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>XmlNode</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>XmlNode</A+> a =&gt; <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>XmlNode</A+> (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkElementNode"+></A+><B+>mkElementNode</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkAttrNode"+></A+><B+>mkAttrNode</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkDTDNode"+></A+><B+>mkDTDNode</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkElement"+></A+><B+>mkElement</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkAttr"+></A+><B+>mkAttr</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkDTDElem"+></A+><B+>mkDTDElem</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddAttr"+></A+><B+>addAttr</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmergeAttrl"+></A+><B+>mergeAttrl</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Data-Tree-NTree-TypeDefs.html"+>Data.Tree.NTree.TypeDefs</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Arrow-XmlNodeSet.html view
@@ -0,0 +1,760 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Arrow.XmlNodeSet</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/XmlNodeSet.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Arrow.XmlNodeSet</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: XmlNodeSet.hs,v 1.5 2006<EM+>11</EM+>12 14:52:59 hxml Exp $+</P+><P+>Arrows for working with XPath and XmlNodeSets.+</P+><P+>Most of the XPath arrows come in two versions,+   one without dealing with namespaces, element and attribute names+   in XPath expressions are taken as they ar ignoring any prefix:localname structure.+</P+><P+>The second variant uses a namespace environment for associating the right+   namespace for the appropriate prefix. an entry for the empty prefix+   defines the default namespace for the expression.+</P+><P+>The second variant should be used, when in the application namespaces+   are significant, that means when namespace propagation is done for+   the documents to be processed.+</P+><P+>NodeSets are sets of &quot;pointer&quot; into an XML tree to reference+   subnodes. These nodesets can be computed by XPath expressions or+   normal arrows. The nodesets can then be used later for selecting+   or modifying subtrees of this tree in an efficient way.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXPathTreesInDoc"+>getXPathTreesInDoc</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXPathTreesInDocWithNsEnv"+>getXPathTreesInDocWithNsEnv</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXPathTrees"+>getXPathTrees</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXPathTreesWithNsEnv"+>getXPathTreesWithNsEnv</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetElemNodeSet"+>getElemNodeSet</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetElemAndAttrNodeSet"+>getElemAndAttrNodeSet</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXPathNodeSet"+>getXPathNodeSet</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetFromNodeSet"+>getFromNodeSet</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessXPathTrees"+>processXPathTrees</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessXPathTreesWithNsEnv"+>processXPathTreesWithNsEnv</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessFromNodeSet"+>processFromNodeSet</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXPathTreesInDoc"+></A+><B+>getXPathTreesInDoc</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Select parts of a whole XML document with root node by a XPath expression.+</P+><P+>The main filter for selecting parts of a document via XPath.+</P+><P+>The string argument must be a XPath expression with an absolute location path,+ the argument tree must be a complete document tree.+</P+><P+>Before evaluating the xpath query, the document is canonicalized+ with <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcanonicalizeForXPath"+>canonicalizeForXPath</A+></TT+>+</P+><P+>Result is a possibly empty list of XmlTrees forming the set of selected XPath values.+ XPath values other than XmlTrees (numbers, attributes, tagnames, ...)+ are convertet to text nodes.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXPathTreesInDocWithNsEnv"+></A+><B+>getXPathTreesInDocWithNsEnv</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>Same as <TT+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetXPathTreesInDoc"+>getXPathTreesInDoc</A+></TT+> but with namespace environment for the XPath names+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXPathTrees"+></A+><B+>getXPathTrees</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Select parts of an arbitrary XML tree by a XPath expression.+</P+><P+>The main filter for selecting parts of an arbitrary XML tree via XPath.+ The string argument must be a XPath expression with an absolute location path,+ There are no restrictions on the argument tree.+</P+><P+>No canonicalization is performed before evaluating the query+</P+><P+>Result is a possibly empty list of XmlTrees forming the set of selected XPath values.+ XPath values other than XmlTrees (numbers, attributes, tagnames, ...)+ are convertet to text nodes.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXPathTreesWithNsEnv"+></A+><B+>getXPathTreesWithNsEnv</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>Same as <TT+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetXPathTrees"+>getXPathTrees</A+></TT+> but with namespace environment for the XPath names+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetElemNodeSet"+></A+><B+>getElemNodeSet</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>compute a node set from a tree, containing all nodes selected by the predicate arrow+</P+><P+>computation of the set of element nodes with name &quot;a&quot; is done with+</P+><PRE+> getElemNodeSet (hasName &quot;a&quot;)+</PRE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetElemAndAttrNodeSet"+></A+><B+>getElemAndAttrNodeSet</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="doc"+>compute a node set from a tree, containing all nodes including attribute nodes+ elected by the predicate arrow+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXPathNodeSet"+></A+><B+>getXPathNodeSet</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Select a set of nodes via an XPath expression from an arbitray XML tree+</P+><P+>The result is a set of &quot;pointers&quot; to nodes. This set can be used to+ access or modify the values of the subnodes in subsequent calls to <TT+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetFromNodeSet"+>getFromNodeSet</A+></TT+> or <TT+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AprocessFromNodeSet"+>processFromNodeSet</A+></TT+>.+</P+><P+>This function enables for parsing an XPath expressions and traversing the tree for node selection once+ and reuse this result possibly many times for later selection and modification operations.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetFromNodeSet"+></A+><B+>getFromNodeSet</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>select all subtrees specified by a previously computed node set+</P+><P+>the following law holds:+</P+><PRE+> getFromNodeSet $&lt; getElemNodeSet f == multi f+</PRE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessXPathTrees"+></A+><B+>processXPathTrees</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>process all subtrees selected by an XPath expression+</P+><P+>the following law holds:+</P+><PRE+> processXPathTrees p xpathExpr == processFromNodeSet p $&lt; getXPathNodeSet xpathExpr+</PRE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessXPathTreesWithNsEnv"+></A+><B+>processXPathTreesWithNsEnv</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>Same as <TT+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AprocessXPathTrees"+>processXPathTrees</A+></TT+> but with namespace environment for the XPath names+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessFromNodeSet"+></A+><B+>processFromNodeSet</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>process all subtrees specified by a previously computed node set in bottom up manner+</P+><P+>the follwoing law holds:+</P+><PRE+> processFromNodeSet g $&lt; getElemNodeSet f == processBottomUp (g `when` f)+</PRE+><P+>when attributes are contained in the node set (see <TT+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetElemAndAttrNodeSet"+>getElemAndAttrNodeSet</A+></TT+>), these are processed+ after the children and before the node itself+</P+><P+>the advantage of processFromNodeSet is the separation of the selection of set of nodes to be processed (e.g. modified)+ from the real proccessing. The selection sometimes can be done once, the processing possibly many times.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Arrow.html view
@@ -0,0 +1,273 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Arrow</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Arrow</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: Arrow.hs,v 1.12 2006<EM+>11</EM+>11 15:36:04 hxml Exp $+</P+><P+>The HXT arrow interface+</P+><P+>The application programming interface to the arrow modules of the Haskell XML Toolbox.+   This module exports all important arrows for input, output, parsing, validating and transforming XML.+   It also exports all basic datatypes and functions of the toolbox.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Control-Arrow-ListArrows.html"+>Control.Arrow.ListArrows</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Arrow-DOMInterface.html"+>Text.XML.HXT.Arrow.DOMInterface</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Arrow-XmlArrow.html"+>Text.XML.HXT.Arrow.XmlArrow</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html"+>Text.XML.HXT.Arrow.XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Arrow-DocumentInput.html"+>Text.XML.HXT.Arrow.DocumentInput</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Arrow-DocumentOutput.html"+>Text.XML.HXT.Arrow.DocumentOutput</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Arrow-Edit.html"+>Text.XML.HXT.Arrow.Edit</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Arrow-GeneralEntitySubstitution.html"+>Text.XML.HXT.Arrow.GeneralEntitySubstitution</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Arrow-Namespace.html"+>Text.XML.HXT.Arrow.Namespace</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Arrow-ProcessDocument.html"+>Text.XML.HXT.Arrow.ProcessDocument</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Arrow-ReadDocument.html"+>Text.XML.HXT.Arrow.ReadDocument</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Arrow-WriteDocument.html"+>Text.XML.HXT.Arrow.WriteDocument</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-XSLT-XsltArrows.html"+>Text.XML.HXT.XSLT.XsltArrows</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-DOM-EditFilters.html view
@@ -0,0 +1,1202 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.EditFilters</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/EditFilters.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.EditFilters</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>XML editing filters+</P+><P+>Version : $Id: EditFilters.hs,v 1.5 2006<EM+>11</EM+>12 14:52:59 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AcanonicalizeTree"+>canonicalizeTree</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcanonicalizeAllNodes"+>canonicalizeAllNodes</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcanonicalizeForXPath"+>canonicalizeForXPath</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcollapseXText"+>collapseXText</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcollapseAllXText"+>collapseAllXText</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AindentDoc"+>indentDoc</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AremoveWhiteSpace"+>removeWhiteSpace</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AremoveAllWhiteSpace"+>removeAllWhiteSpace</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AremoveDocWhiteSpace"+>removeDocWhiteSpace</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AremoveComment"+>removeComment</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AremoveAllComment"+>removeAllComment</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransfCdata"+>transfCdata</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransfAllCdata"+>transfAllCdata</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransfCdataEscaped"+>transfCdataEscaped</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransfAllCdataEscaped"+>transfAllCdataEscaped</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransfCharRef"+>transfCharRef</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransfAllCharRef"+>transfAllCharRef</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AescapeXmlDoc"+>escapeXmlDoc</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AescapeXmlText"+>escapeXmlText</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AescapeXmlAttrValue"+>escapeXmlAttrValue</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AunparseXmlDoc"+>unparseXmlDoc</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnumberLinesInXmlDoc"+>numberLinesInXmlDoc</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnumberLines"+>numberLines</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtreeRepOfXmlDoc"+>treeRepOfXmlDoc</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhaskellRepOfXmlDoc"+>haskellRepOfXmlDoc</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddHeadlineToXmlDoc"+>addHeadlineToXmlDoc</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddXmlPiToDoc"+>addXmlPiToDoc</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcanonicalizeTree"+></A+><B+>canonicalizeTree</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Applies some <A HREF="Canonical XML.html"+>Canonical XML</A+> rules to the nodes of a tree.+</P+><P+>The rule differ slightly for canonical XML and XPath in handling of comments+</P+><P+>Note: This is not the whole canonicalization as it is specified by the W3C+ Recommendation. Adding attribute defaults or sorting attributes in lexicographic+ order is done by the <TT+>transform</TT+> function of module <TT+>Text.XML.HXT.Validator.Validation</TT+>.+ Replacing entities or line feed normalization is done by the parser.+</P+><P+>Not implemented yet:+</P+><UL+><LI+> Whitespace within start and end tags is normalized+</LI+><LI+> Special characters in attribute values and character content are replaced by character references+</LI+></UL+><P+>see <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcanonicalizeAllNodes"+>canonicalizeAllNodes</A+></TT+> and <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcanonicalizeForXPath"+>canonicalizeForXPath</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcanonicalizeAllNodes"+></A+><B+>canonicalizeAllNodes</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>canonicalize tree and remove comments and &lt;?xml ... ?&gt; declarations+</P+><P+>see <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcanonicalizeTree"+>canonicalizeTree</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcanonicalizeForXPath"+></A+><B+>canonicalizeForXPath</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Canonicalize a tree for XPath+ Comment nodes are not removed+</P+><P+>see <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcanonicalizeTree"+>canonicalizeTree</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcollapseXText"+></A+><B+>collapseXText</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Collects sequences of child XText nodes into one XText node.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcollapseAllXText"+></A+><B+>collapseAllXText</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Applies collapseXText recursively.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcollapseXText"+>collapseXText</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AindentDoc"+></A+><B+>indentDoc</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>filter for indenting a document tree for pretty printing.+</P+><P+>the tree is traversed for inserting whitespace for tag indentation.+</P+><P+>whitespace is only inserted or changed at places, where it isn't significant,+ is's not inserted between tags and text containing non whitespace chars.+</P+><P+>whitespace is only inserted or changed at places, where it's not significant.+ preserving whitespace may be controlled in a document tree+ by a tag attribute <TT+>xml:space</TT+>+</P+><P+>allowed values for this attribute are <TT+>default | preserve</TT+>.+</P+><P+>input is a complete document tree.+ result the semantically equivalent formatted tree.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveDocWhiteSpace"+>removeDocWhiteSpace</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveWhiteSpace"+></A+><B+>removeWhiteSpace</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>simple filter for removing whitespace.+</P+><P+>no check on sigificant whitespace is done.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveAllWhiteSpace"+>removeAllWhiteSpace</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveDocWhiteSpace"+>removeDocWhiteSpace</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveAllWhiteSpace"+></A+><B+>removeAllWhiteSpace</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>simple recursive filter for removing all whitespace.+</P+><P+>removes all text nodes in a tree that consist only of whitespace.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveWhiteSpace"+>removeWhiteSpace</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveDocWhiteSpace"+>removeDocWhiteSpace</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveDocWhiteSpace"+></A+><B+>removeDocWhiteSpace</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>filter for removing all not significant whitespace.+</P+><P+>the tree traversed for removing whitespace between tags,+ that was inserted for indentation and readability.+ whitespace is only removed at places, where it's not significat+ preserving whitespace may be controlled in a document tree+ by a tag attribute <TT+>xml:space</TT+>+</P+><P+>allowed values for this attribute are <TT+>default | preserve</TT+>+</P+><P+>input is root node of the document to be cleaned up+ output the semantically equivalent simplified tree+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AindentDoc"+>indentDoc</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveAllWhiteSpace"+>removeAllWhiteSpace</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveComment"+></A+><B+>removeComment</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>remove Comments+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveAllComment"+></A+><B+>removeAllComment</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>remove all Comments recursively+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransfCdata"+></A+><B+>transfCdata</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>converts CDATA section in normal text sections+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransfAllCdata"+></A+><B+>transfAllCdata</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>converts CDATA sections in whole document tree+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransfCdataEscaped"+></A+><B+>transfCdataEscaped</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>converts CDATA section in normal text nodes+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransfAllCdataEscaped"+></A+><B+>transfAllCdataEscaped</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>converts CDATA sections in whole document tree into normal text nodes+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransfCharRef"+></A+><B+>transfCharRef</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>converts character references to normal text+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransfAllCharRef"+></A+><B+>transfAllCharRef</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>recursively converts all character references to normal text+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AescapeXmlDoc"+></A+><B+>escapeXmlDoc</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>convert the special XML chars &quot;, &lt;, &gt;, &amp; and ' in a document to char references,+ attribute values are converted with <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlAttrValue"+>escapeXmlAttrValue</A+></TT+>+</P+><P+>see also: <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlText"+>escapeXmlText</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlAttrValue"+>escapeXmlAttrValue</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AescapeXmlText"+></A+><B+>escapeXmlText</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>convert the special XML chars in a text or comment node+ into character references+</P+><P+>see also <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlDoc"+>escapeXmlDoc</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AescapeXmlAttrValue"+></A+><B+>escapeXmlAttrValue</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>convert the special XML chars in an attribute value into+ charachter references. Not only the XML specials but also \n, \r and \t are converted+</P+><P+>see also: <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlDoc"+>escapeXmlDoc</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlText"+>escapeXmlText</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AunparseXmlDoc"+></A+><B+>unparseXmlDoc</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>convert a document tree into an output string representation+ with respect to the output encoding.+</P+><P+>The children of the document root are stubstituted by+ a single text node for the text representation of the document.+</P+><P+>Encoding of the document is performed with respect+ to the <TT+>output-encoding</TT+> attribute in the root node, or if not present,+ of the <TT+>encoding</TT+> attribute for the original input encoding.+ If the encoding is not specified or not supported, UTF-8 is taken.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnumberLinesInXmlDoc"+></A+><B+>numberLinesInXmlDoc</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>convert a document into a text and add line numbers to the text representation.+</P+><P+>Result is a root node with a single text node as child.+ Useful for debugging and trace output.+ see also : <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AhaskellRepOfXmlDoc"+>haskellRepOfXmlDoc</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtreeRepOfXmlDoc"+>treeRepOfXmlDoc</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnumberLines"+></A+><B+>numberLines</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtreeRepOfXmlDoc"+></A+><B+>treeRepOfXmlDoc</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>convert a document into a text representation in tree form.+</P+><P+>Useful for debugging and trace output.+ see also : <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AhaskellRepOfXmlDoc"+>haskellRepOfXmlDoc</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AnumberLinesInXmlDoc"+>numberLinesInXmlDoc</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhaskellRepOfXmlDoc"+></A+><B+>haskellRepOfXmlDoc</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>convert a document into a Haskell representation (with show).+</P+><P+>Useful for debugging and trace output.+ see also : <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtreeRepOfXmlDoc"+>treeRepOfXmlDoc</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AnumberLinesInXmlDoc"+>numberLinesInXmlDoc</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddHeadlineToXmlDoc"+></A+><B+>addHeadlineToXmlDoc</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddXmlPiToDoc"+></A+><B+>addXmlPiToDoc</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-DOM-FormatXmlTree.html view
@@ -0,0 +1,134 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.FormatXmlTree</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/FormatXmlTree.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.FormatXmlTree</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>format a xml tree in tree representation+</P+><P+>Version : $Id: FormatXmlTree.hs,v 1.2 2006<EM+>05</EM+>01 18:56:24 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AformatXmlTree"+></A+><B+>formatXmlTree</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AformatXmlContents"+></A+><B+>formatXmlContents</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-DOM-Namespace.html view
@@ -0,0 +1,181 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.Namespace</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/Namespace.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.Namespace</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>main namespace filter for propagation, checking, tracing and error handling+</P+><P+>$Id: Namespace.hs,v 1.3 2005<EM+>01</EM+>06 10:48:07 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3ApropagateAndValidateNamespaces"+>propagateAndValidateNamespaces</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-NamespaceFilter.html"+>Text.XML.HXT.DOM.NamespaceFilter</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ApropagateAndValidateNamespaces"+></A+><B+>propagateAndValidateNamespaces</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>propagate all namespace declarations, check namespace constraints and issue errors.+ If no error was found, result is the unchanged input tree, else the root node &quot;/&quot; with an empty document is returned.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3ApropagateNamespaces"+>propagateNamespaces</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3AvalidateNamespaces"+>validateNamespaces</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-NamespaceFilter.html"+>Text.XML.HXT.DOM.NamespaceFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-DOM-NamespaceFilter.html view
@@ -0,0 +1,409 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.NamespaceFilter</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/NamespaceFilter.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.NamespaceFilter</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Namespace filter+</P+><P+>$Id: NamespaceFilter.hs,v 1.4 2006<EM+>11</EM+>12 14:53:00 hxml Exp $+</P+><P+>Namespaces are processed with two main filter, <TT+><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3ApropagateNamespaces"+>propagateNamespaces</A+></TT+>+ and <TT+><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3AvalidateNamespaces"+>validateNamespaces</A+></TT+>.+</P+><P+><TT+><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3ApropagateNamespaces"+>propagateNamespaces</A+></TT+> takes a XML tree and+ attaches extra namespace info at every tag name and attribute name.+ So after processing a tree with <TT+><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3ApropagateNamespaces"+>propagateNamespaces</A+></TT+>, the access functions+ <A HREF="namespaceOf.html"+>namespaceOf</A+> and <A HREF="universalNameOf.html"+>universalNameOf</A+> deliver the associated namespace (or &quot;&quot;)+ for tag names and attribute names.+</P+><P+><TT+><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3AvalidateNamespaces"+>validateNamespaces</A+></TT+> checks whether names are wellformed related to the XML namespace definition.+ whether a legal namespace is declared for all prefixes, and whether attribute names are unique+ related to universal names.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ANamespaceTable"+>NamespaceTable</A+> = <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ApropagateNamespaces"+>propagateNamespaces</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ApropagateNamespaceEnv"+>propagateNamespaceEnv</A+> :: <A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#t%3ANamespaceTable"+>NamespaceTable</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateNamespaces"+>validateNamespaces</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Avalidate1Namespaces"+>validate1Namespaces</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisNamespaceDecl"+>isNamespaceDecl</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-NamespacePredicates.html"+>Text.XML.HXT.DOM.NamespacePredicates</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ANamespaceTable"+></A+><B+>NamespaceTable</B+> = <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+></TD+></TR+><TR+><TD CLASS="doc"+>Type for the namespace association list, used when propagating namespaces by+ modifying the <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TT+> values in a tree+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ApropagateNamespaces"+></A+><B+>propagateNamespaces</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>propagate all namespace declarations &quot;xmlns:ns=...&quot; to all+ tag and attribute nodes of a document.+</P+><P+>This filter does not check for illegal use of namespaces.+ The real work is done by <TT+><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3ApropagateNamespaceEnv"+>propagateNamespaceEnv</A+></TT+>.+</P+><P+>The filter may be applied repeatedly if neccessary.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ApropagateNamespaceEnv"+></A+><B+>propagateNamespaceEnv</B+> :: <A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#t%3ANamespaceTable"+>NamespaceTable</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>attaches the namespace info given by the namespace table+ to a tag node and its attributes and children.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateNamespaces"+></A+><B+>validateNamespaces</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>validate the namespace constraints in a whole tree.+ result is the list of errors concerning namespaces.+ Work is done by applying <TT+><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3Avalidate1Namespaces"+>validate1Namespaces</A+></TT+> to all nodes.+ Predicates <TT+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedQName"+>isWellformedQName</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedQualifiedName"+>isWellformedQualifiedName</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisDeclaredNamespace"+>isDeclaredNamespace</A+></TT+>+ and <TT+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedNSDecl"+>isWellformedNSDecl</A+></TT+> are applied to the appropriate tags and attributes.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Avalidate1Namespaces"+></A+><B+>validate1Namespaces</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>a single node for namespace constrains.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisNamespaceDecl"+></A+><B+>isNamespaceDecl</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-NamespacePredicates.html"+>Text.XML.HXT.DOM.NamespacePredicates</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-DOM-NamespacePredicates.html view
@@ -0,0 +1,348 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.NamespacePredicates</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/NamespacePredicates.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.NamespacePredicates</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>basic Namespace and QName predicates and functions+</P+><P+>$Id: NamespacePredicates.hs,v 1.3 2006<EM+>11</EM+>12 14:53:00 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetNamespace"+>setNamespace</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlnsQN"+>xmlnsQN</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisNCName"+>isNCName</A+> :: String -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisWellformedQualifiedName"+>isWellformedQualifiedName</A+> :: String -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisWellformedQName"+>isWellformedQName</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisWellformedNSDecl"+>isWellformedNSDecl</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisDeclaredNamespace"+>isDeclaredNamespace</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetNamespace"+></A+><B+>setNamespace</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Compute the name prefix and the namespace uri for a qualified name.+</P+><P+>This function does not test whether the name is a wellformed qualified name.+ see Namespaces in XML Rule [6] to [8]. Error checking is done with separate functions,+ see <TT+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedQName"+>isWellformedQName</A+></TT+> and <TT+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedQualifiedName"+>isWellformedQualifiedName</A+></TT+> for error checking.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlnsQN"+></A+><B+>xmlnsQN</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisNCName"+></A+><B+>isNCName</B+> :: String -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test for wellformed NCName, rule [4] XML Namespaces+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisWellformedQualifiedName"+></A+><B+>isWellformedQualifiedName</B+> :: String -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test for wellformed QName, rule [6] XML Namespaces+ predicate is used in filter valdateNamespaces.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisWellformedQName"+></A+><B+>isWellformedQName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test for wellformed QName values.+ A QName is wellformed, if the local part is a NCName, the namePrefix, if not empty, is also a NCName.+ predicate is used in filter valdateNamespaces.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisWellformedNSDecl"+></A+><B+>isWellformedNSDecl</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test for a wellformed namespace declaration+ all namespace prefixes starting with &quot;xml&quot; are reserved for XML related definitions.+ predicate is used in filter valdateNamespaces.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisDeclaredNamespace"+></A+><B+>isDeclaredNamespace</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>predicate is used in filter valdateNamespaces.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-DOM-TypeDefs.html view
@@ -0,0 +1,1959 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.TypeDefs</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/TypeDefs.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.TypeDefs</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>The core data types of HDOM.+</P+><P+>Version : $Id: TypeDefs.hs,v 1.13 2006<EM+>11</EM+>09 20:27:42 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>module <A HREF="Data-AssocList.html"+>Data.AssocList</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AXmlTree"+>XmlTree</A+> = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AXmlTrees"+>XmlTrees</A+> = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>NTrees</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AXNode"+>XNode</A+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>= <A HREF="#v%3AXText"+>XText</A+> String</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXCharRef"+>XCharRef</A+> Int</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXEntityRef"+>XEntityRef</A+> String</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXCmt"+>XCmt</A+> String</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXCdata"+>XCdata</A+> String</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXPi"+>XPi</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXTag"+>XTag</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXDTD"+>XDTD</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXAttr"+>XAttr</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXError"+>XError</A+> Int String</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3ADTDElem"+>DTDElem</A+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>= <A HREF="#v%3ADOCTYPE"+>DOCTYPE</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AELEMENT"+>ELEMENT</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ACONTENT"+>CONTENT</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AATTLIST"+>ATTLIST</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AENTITY"+>ENTITY</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3APENTITY"+>PENTITY</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ANOTATION"+>NOTATION</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ACONDSECT"+>CONDSECT</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ANAME"+>NAME</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3APEREF"+>PEREF</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AAttributes"+>Attributes</A+> = <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> String String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AQName"+>QName</A+>  = <A HREF="#v%3AQN"+>QN</A+> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="recfield"+><A HREF="#v%3AnamePrefix"+>namePrefix</A+> :: String</TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3AlocalPart"+>localPart</A+> :: String</TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3AnamespaceUri"+>namespaceUri</A+> :: String</TD+></TR+></TABLE+>}</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AqualifiedName"+>qualifiedName</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AuniversalName"+>universalName</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AuniversalUri"+>universalUri</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AbuildUniversalName"+>buildUniversalName</A+> :: (String -&gt; String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkName"+>mkName</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkPrefixLocalPart"+>mkPrefixLocalPart</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkNsName"+>mkNsName</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkSNsName"+>mkSNsName</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnullQName"+>nullQName</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AequalQName"+>equalQName</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AequivQName"+>equivQName</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AequivUri"+>equivUri</A+> :: String -&gt; String -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AequalQNameBy"+>equalQNameBy</A+> :: (String -&gt; String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnormalizeNsUri"+>normalizeNsUri</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ANsEnv"+>NsEnv</A+> = <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> String String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ac_ok"+>c_ok</A+> :: Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ac_warn"+>c_warn</A+> :: Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ac_err"+>c_err</A+> :: Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ac_fatal"+>c_fatal</A+> :: Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AXmlNodeSet"+>XmlNodeSet</A+>  = <A HREF="#v%3AXNS"+>XNS</A+> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="recfield"+><A HREF="#v%3AthisNode"+>thisNode</A+> :: Bool</TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3AattrNodes"+>attrNodes</A+> :: [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>]</TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3AchildNodes"+>childNodes</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AChildNodes"+>ChildNodes</A+></TD+></TR+></TABLE+>}</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AChildNodes"+>ChildNodes</A+> = [(Int, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+>)]</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Data-AssocList.html"+>Data.AssocList</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AXmlTree"+></A+><B+>XmlTree</B+> = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="doc"+>Node of xml tree representation+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AXmlTrees"+></A+><B+>XmlTrees</B+> = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>NTrees</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="doc"+>List of nodes of xml tree representation+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AXNode"+></A+><B+>XNode</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>Represents elements+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AXText"+></A+><B+>XText</B+> String</TD+><TD CLASS="rdoc"+>ordinary text				(leaf)+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXCharRef"+></A+><B+>XCharRef</B+> Int</TD+><TD CLASS="rdoc"+>character reference			(leaf)+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXEntityRef"+></A+><B+>XEntityRef</B+> String</TD+><TD CLASS="rdoc"+>entity reference				(leaf)+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXCmt"+></A+><B+>XCmt</B+> String</TD+><TD CLASS="rdoc"+>comment					(leaf)+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXCdata"+></A+><B+>XCdata</B+> String</TD+><TD CLASS="rdoc"+>CDATA section				(leaf)+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXPi"+></A+><B+>XPi</B+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+><TD CLASS="rdoc"+>Processing Instr with qualified name	(leaf)+   with list of attributes.+   If tag name is xml, attributs are &quot;version&quot;, &quot;encoding&quot;, &quot;standalone&quot;,+   else attribute list is empty, content is a text child node+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXTag"+></A+><B+>XTag</B+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+><TD CLASS="rdoc"+>tag with qualified name and list of attributes (inner node or leaf)+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXDTD"+></A+><B+>XDTD</B+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+></TD+><TD CLASS="rdoc"+>DTD element with assoc list for dtd element features+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXAttr"+></A+><B+>XAttr</B+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+><TD CLASS="rdoc"+>attribute with qualified name, the attribute value is stored in children+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXError"+></A+><B+>XError</B+> Int String</TD+><TD CLASS="rdoc"+>error message with level and text+</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XNode')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:XNode" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="decl"+>Ord <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="decl"+>Read <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="decl"+>Typeable <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>XmlNode</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3ADTDElem"+></A+><B+>DTDElem</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>Represents a DTD element+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ADOCTYPE"+></A+><B+>DOCTYPE</B+></TD+><TD CLASS="rdoc"+>attr: name, system, public,	XDTD elems as children+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AELEMENT"+></A+><B+>ELEMENT</B+></TD+><TD CLASS="rdoc"+><P+>attr: name, kind+</P+><P+>name: element name+</P+><P+>kind: &quot;EMPTY&quot; | &quot;ANY&quot; | &quot;#PCDATA&quot; | children | mixed+</P+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ACONTENT"+></A+><B+>CONTENT</B+></TD+><TD CLASS="rdoc"+><P+>element content+</P+><P+>attr: kind, modifier+</P+><P+>modifier: &quot;&quot; | &quot;?&quot; | &quot;*&quot; | &quot;+&quot;+</P+><P+>kind: seq | choice+</P+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AATTLIST"+></A+><B+>ATTLIST</B+></TD+><TD CLASS="rdoc"+><P+>attributes:+  name - name of element+</P+><P+>value - name of attribute+</P+><P+>type: &quot;CDATA&quot; | &quot;ID&quot; | &quot;IDREF&quot; | &quot;IDREFS&quot; | &quot;ENTITY&quot; | &quot;ENTITIES&quot; |+</P+><P+>&quot;NMTOKEN&quot; | &quot;NMTOKENS&quot; |&quot;NOTATION&quot; | &quot;ENUMTYPE&quot;+</P+><P+>kind: &quot;<A NAME="REQUIRED%5C%22%20%7C%20%5C%22"+></A+>IMPLIED&quot; | &quot;DEFAULT&quot;+</P+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AENTITY"+></A+><B+>ENTITY</B+></TD+><TD CLASS="rdoc"+>for entity declarations+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3APENTITY"+></A+><B+>PENTITY</B+></TD+><TD CLASS="rdoc"+>for parameter entity declarations+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ANOTATION"+></A+><B+>NOTATION</B+></TD+><TD CLASS="rdoc"+>for notations+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ACONDSECT"+></A+><B+>CONDSECT</B+></TD+><TD CLASS="rdoc"+><P+>for INCLUDEs, IGNOREs and peRefs: attr: type+</P+><P+>type = INCLUDE, IGNORE or %...;+</P+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ANAME"+></A+><B+>NAME</B+></TD+><TD CLASS="rdoc"+><P+>attr: name+</P+><P+>for lists of names in notation types or nmtokens in enumeration types+</P+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3APEREF"+></A+><B+>PEREF</B+></TD+><TD CLASS="rdoc"+>for Parameter Entity References in DTDs+</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:DTDElem')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:DTDElem" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+></TD+></TR+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+></TD+></TR+><TR+><TD CLASS="decl"+>Ord <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+></TD+></TR+><TR+><TD CLASS="decl"+>Read <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+></TD+></TR+><TR+><TD CLASS="decl"+>Typeable <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AAttributes"+></A+><B+>Attributes</B+> = <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> String String</TD+></TR+><TR+><TD CLASS="doc"+><P+>Attribute list+</P+><P+>used for storing option lists and features of DTD parts+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AQName"+></A+><B+>QName</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+><P+>Namespace support for element and attribute names.+</P+><P+>A qualified name consists of a name prefix, a local name+ and a namespace uri.+ All modules, which are not namespace aware, use only the <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AlocalPart"+>localPart</A+></TT+> component.+ When dealing with namespaces, the document tree must be processed by <A HREF="propagateNamespaces.html"+>propagateNamespaces</A+>+ to split names of structure &quot;prefix:localPart&quot; and label the name with the apropriate namespace uri+</P+></TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AQN"+></A+><B+>QN</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="body" COLSPAN="2"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AnamePrefix"+></A+><B+>namePrefix</B+> :: String</TD+><TD CLASS="rdoc"+>the name prefix part of a qualified name &quot;namePrefix:localPart&quot;+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AlocalPart"+></A+><B+>localPart</B+> :: String</TD+><TD CLASS="rdoc"+>the local part of a qualified name &quot;namePrefix:localPart&quot;+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AnamespaceUri"+></A+><B+>namespaceUri</B+> :: String</TD+><TD CLASS="rdoc"+>the associated namespace uri+</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:QName')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:QName" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="decl"+>Ord <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="decl"+>Read <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="decl"+>Typeable <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AqualifiedName"+></A+><B+>qualifiedName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>builds the full name &quot;prefix:localPart&quot;, if prefix is not null, else the local part is the result+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AuniversalName"+></A+><B+>universalName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>builds the &quot;universal&quot; name, that is the namespace uri surrounded with &quot;{&quot; and &quot;}&quot; followed by the local part+ (specialisation of <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AbuildUniversalName"+>buildUniversalName</A+></TT+>)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AuniversalUri"+></A+><B+>universalUri</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>builds an &quot;universal&quot; uri, that is the namespace uri followed by the local part. This is usefull for RDF applications,+ where the subject, predicate and object often are concatenated from namespace uri and local part+ (specialisation of <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AbuildUniversalName"+>buildUniversalName</A+></TT+>)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AbuildUniversalName"+></A+><B+>buildUniversalName</B+> :: (String -&gt; String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>builds a string from the namespace uri and the local part. If the namespace uri is empty, the local part is returned, else+ namespace uri and local part are combined with the combining function given by the first parameter+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkName"+></A+><B+>mkName</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="doc"+>constructs a simple, namespace unaware name, <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnamePrefix"+>namePrefix</A+></TT+> and <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnamespaceUri"+>namespaceUri</A+></TT+> are set to the empty string.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkPrefixLocalPart"+></A+><B+>mkPrefixLocalPart</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>constructs a simple name, with prefix and localPart but without a namespace uri.+</P+><P+>see also <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkName"+>mkName</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkNsName"+>mkNsName</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkSNsName"+>mkSNsName</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkNsName"+></A+><B+>mkNsName</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>constructs a simple, namespace aware name, with prefix:localPart as first parameter, namspace uri as second.+</P+><P+>see also <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkName"+>mkName</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkPrefixLocalPart"+>mkPrefixLocalPart</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkSNsName"+></A+><B+>mkSNsName</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>constructs a simple name, with prefix:localPart as 1 parameter, with empty namspace uri, same as 'mkPrefixLocalPart, but with a single parameter+</P+><P+>see also <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkNsName"+>mkNsName</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkPrefixLocalPart"+>mkPrefixLocalPart</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnullQName"+></A+><B+>nullQName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="doc"+>Empty QName+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AequalQName"+></A+><B+>equalQName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>Equality of QNames: Two QNames are equal, if the local parts are equal+ and the namespace URIs are equal.+ The comparison works with and without namespace propagation.+ If namespaces have been propagated, the name is split into prefix and local part+ and the namespace uri is set. In this case the prefix is not significant for equality test.+ If namespaces have not been propagated, the local part contains the full name, prefix+ and namespace URI are empty. The full name (prefix and local part) is used for comparison.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AequivQName"+></A+><B+>equivQName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>Equivalent QNames are defined as follows: The URIs are normalized before comparison.+ Comparison is done with <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequalQNameBy"+>equalQNameBy</A+></TT+> and <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequivUri"+>equivUri</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AequivUri"+></A+><B+>equivUri</B+> :: String -&gt; String -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>Comparison of normalized namespace URIs using <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnormalizeNsUri"+>normalizeNsUri</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AequalQNameBy"+></A+><B+>equalQNameBy</B+> :: (String -&gt; String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>Sometimes a weaker equality relation than <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequalQName"+>equalQName</A+></TT+> is appropriate, e.g no case significance in names, ...+ a name normalization function can be applied to the strings before comparing. Called by <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequalQName"+>equalQName</A+></TT+> and+ <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequivQName"+>equivQName</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnormalizeNsUri"+></A+><B+>normalizeNsUri</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>Normalization of URIs: Normalization is done by conversion into lowercase letters. A trailing &quot;/&quot; is ignored+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ANsEnv"+></A+><B+>NsEnv</B+> = <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> String String</TD+></TR+><TR+><TD CLASS="doc"+>Type for the namespace association list, used when propagating namespaces by+ modifying the <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TT+> values in a tree+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ac_ok"+></A+><B+>c_ok</B+> :: Int</TD+></TR+><TR+><TD CLASS="doc"+>no error, everything is ok+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ac_warn"+></A+><B+>c_warn</B+> :: Int</TD+></TR+><TR+><TD CLASS="doc"+>Error level for XError, type warning+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ac_err"+></A+><B+>c_err</B+> :: Int</TD+></TR+><TR+><TD CLASS="doc"+>Error level for XError, type error+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ac_fatal"+></A+><B+>c_fatal</B+> :: Int</TD+></TR+><TR+><TD CLASS="doc"+>Error level for XError, type fatal error+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AXmlNodeSet"+></A+><B+>XmlNodeSet</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+><P+>data type for representing a set of nodes as a tree structure+</P+><P+>this structure is e.g. used to repesent the result of an XPath query+ such that the selected nodes can be processed or selected later in+ processing a document tree+</P+></TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AXNS"+></A+><B+>XNS</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="body" COLSPAN="2"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AthisNode"+></A+><B+>thisNode</B+> :: Bool</TD+><TD CLASS="rdoc"+>is this node part of the set ?+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AattrNodes"+></A+><B+>attrNodes</B+> :: [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>]</TD+><TD CLASS="rdoc"+>the set of attribute nodes+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AchildNodes"+></A+><B+>childNodes</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AChildNodes"+>ChildNodes</A+></TD+><TD CLASS="rdoc"+>the set of child nodes, a list of pairs of index and node set +</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XmlNodeSet')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:XmlNodeSet" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="decl"+>Typeable <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AChildNodes"+></A+><B+>ChildNodes</B+> = [(Int, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+>)]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-DOM-Unicode.html view
@@ -0,0 +1,1752 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.Unicode</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/Unicode.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.Unicode</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+><B+>Contents</B+></TD+></TR+><TR+><TD+><DL+><DT+><A HREF="#1"+>Unicode Type declarations+</A+></DT+><DT+><A HREF="#2"+>Unicode and UTF-8 predicates+</A+></DT+><DT+><A HREF="#3"+>UTF-8 and Unicode conversion functions+</A+></DT+></DL+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>Unicode (UCS-2) and UTF-8 Conversion Funtions+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AUnicode"+>Unicode</A+> = Char</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AUString"+>UString</A+> = [<A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+>]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AUTF8Char"+>UTF8Char</A+> = Char</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AUTF8String"+>UTF8String</A+> = String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisLeadingMultiByteChar"+>isLeadingMultiByteChar</A+> :: Char -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisFollowingMultiByteChar"+>isFollowingMultiByteChar</A+> :: Char -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisMultiByteChar"+>isMultiByteChar</A+> :: Char -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisNByteChar"+>isNByteChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; (Int, Int, Int)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ais1ByteXmlChar"+>is1ByteXmlChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisMultiByteXmlChar"+>isMultiByteXmlChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlChar"+>isXmlChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlLatin1Char"+>isXmlLatin1Char</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlSpaceChar"+>isXmlSpaceChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXml11SpaceChar"+>isXml11SpaceChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlNameChar"+>isXmlNameChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlNameStartChar"+>isXmlNameStartChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlNCNameChar"+>isXmlNCNameChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlNCNameStartChar"+>isXmlNCNameStartChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlPubidChar"+>isXmlPubidChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlLetter"+>isXmlLetter</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlBaseChar"+>isXmlBaseChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlIdeographicChar"+>isXmlIdeographicChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlCombiningChar"+>isXmlCombiningChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlDigit"+>isXmlDigit</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlExtender"+>isXmlExtender</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlControlOrPermanentlyUndefined"+>isXmlControlOrPermanentlyUndefined</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Autf8ToUnicodeChar"+>utf8ToUnicodeChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"+>UTF8String</A+> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Autf8ToUnicode"+>utf8ToUnicode</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"+>UTF8String</A+> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Autf8WithByteMarkToUnicode"+>utf8WithByteMarkToUnicode</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"+>UTF8String</A+> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Alatin1ToUnicode"+>latin1ToUnicode</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aucs2ToUnicode"+>ucs2ToUnicode</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aucs2BigEndianToUnicode"+>ucs2BigEndianToUnicode</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aucs2LittleEndianToUnicode"+>ucs2LittleEndianToUnicode</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Autf16beToUnicode"+>utf16beToUnicode</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Autf16leToUnicode"+>utf16leToUnicode</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AunicodeCharToUtf8"+>unicodeCharToUtf8</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"+>UTF8String</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AunicodeToUtf8"+>unicodeToUtf8</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"+>UTF8String</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AunicodeToXmlEntity"+>unicodeToXmlEntity</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AunicodeToLatin1"+>unicodeToLatin1</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AunicodeRemoveNoneAscii"+>unicodeRemoveNoneAscii</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AunicodeRemoveNoneLatin1"+>unicodeRemoveNoneLatin1</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AintToCharRef"+>intToCharRef</A+> :: Int -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AintToCharRefHex"+>intToCharRefHex</A+> :: Int -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetEncodingFct"+>getEncodingFct</A+> :: String -&gt; Maybe (<A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; String)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetOutputEncodingFct"+>getOutputEncodingFct</A+> :: String -&gt; Maybe (String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+>)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnormalizeNL"+>normalizeNL</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AguessEncoding"+>guessEncoding</A+> :: String -&gt; String</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+><A NAME="1"+>Unicode Type declarations+</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AUnicode"+></A+><B+>Unicode</B+> = Char</TD+></TR+><TR+><TD CLASS="doc"+>Unicode is represented as the Char type+   Precondition for this is the support of Unicode character range+   in the compiler (e.g. ghc but not hugs)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AUString"+></A+><B+>UString</B+> = [<A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+>]</TD+></TR+><TR+><TD CLASS="doc"+>the type for Unicode strings+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AUTF8Char"+></A+><B+>UTF8Char</B+> = Char</TD+></TR+><TR+><TD CLASS="doc"+>UTF-8 charachters are represented by the Char type+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AUTF8String"+></A+><B+>UTF8String</B+> = String</TD+></TR+><TR+><TD CLASS="doc"+>UTF-8 strings are implemented as Haskell strings+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+><A NAME="2"+>Unicode and UTF-8 predicates+</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisLeadingMultiByteChar"+></A+><B+>isLeadingMultiByteChar</B+> :: Char -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test for leading multibyte UTF-8 character+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisFollowingMultiByteChar"+></A+><B+>isFollowingMultiByteChar</B+> :: Char -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test for following multibyte UTF-8 character+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisMultiByteChar"+></A+><B+>isMultiByteChar</B+> :: Char -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test for following multibyte UTF-8 character+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisNByteChar"+></A+><B+>isNByteChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; (Int, Int, Int)</TD+></TR+><TR+><TD CLASS="doc"+>compute the number of following bytes and the mask bits of a leading UTF-8 multibyte char+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ais1ByteXmlChar"+></A+><B+>is1ByteXmlChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test for a legal 1 byte XML char+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisMultiByteXmlChar"+></A+><B+>isMultiByteXmlChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test for a legal multi byte XML char+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlChar"+></A+><B+>isXmlChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>checking for valid XML characters+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlLatin1Char"+></A+><B+>isXmlLatin1Char</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test for a legal latin1 XML char+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlSpaceChar"+></A+><B+>isXmlSpaceChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>checking for XML space character: \n, \r, \t and &quot; &quot;+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXml11SpaceChar"+></A+><B+>isXml11SpaceChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+><P+>checking for XML1.1 space character: additional space 0x85 and 0x2028+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlSpaceChar"+>isXmlSpaceChar</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlNameChar"+></A+><B+>isXmlNameChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>checking for XML name character+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlNameStartChar"+></A+><B+>isXmlNameStartChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+><P+>checking for XML name start character+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNameChar"+>isXmlNameChar</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlNCNameChar"+></A+><B+>isXmlNCNameChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+><P+>checking for XML NCName character: no &quot;:&quot; allowed+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNameChar"+>isXmlNameChar</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlNCNameStartChar"+></A+><B+>isXmlNCNameStartChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+><P+>checking for XML NCName start character: no &quot;:&quot; allowed+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNameChar"+>isXmlNameChar</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNCNameChar"+>isXmlNCNameChar</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlPubidChar"+></A+><B+>isXmlPubidChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>checking for XML public id character+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlLetter"+></A+><B+>isXmlLetter</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>checking for XML letter+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlBaseChar"+></A+><B+>isXmlBaseChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>checking for XML base charater+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlIdeographicChar"+></A+><B+>isXmlIdeographicChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>checking for XML ideographic charater+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlCombiningChar"+></A+><B+>isXmlCombiningChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>checking for XML combining charater+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlDigit"+></A+><B+>isXmlDigit</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>checking for XML digit+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlExtender"+></A+><B+>isXmlExtender</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>checking for XML extender+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlControlOrPermanentlyUndefined"+></A+><B+>isXmlControlOrPermanentlyUndefined</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+><P+>checking for XML control or permanently discouraged char+</P+><P+>see Errata to XML1.0 (http://www.w3.org/XML/xml-V10-2e-errata) No 46+</P+><P+>Document authors are encouraged to avoid <A HREF="compatibility characters.html"+>compatibility characters</A+>,+ as defined in section 6.8 of [Unicode] (see also D21 in section 3.6 of [Unicode3]).+ The characters defined in the following ranges are also discouraged.+ They are either control characters or permanently undefined Unicode characters:+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+><A NAME="3"+>UTF-8 and Unicode conversion functions+</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Autf8ToUnicodeChar"+></A+><B+>utf8ToUnicodeChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"+>UTF8String</A+> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+></TD+></TR+><TR+><TD CLASS="doc"+>conversion of a UTF-8 encoded single Unicode character into the corresponding Unicode value.+ precondition: the character is a valid UTF-8 encoded character+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Autf8ToUnicode"+></A+><B+>utf8ToUnicode</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"+>UTF8String</A+> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="doc"+>conversion of a UTF-8 encoded string into a sequence of unicode values.+ precondition: the string is a valid UTF-8 encoded string+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Autf8WithByteMarkToUnicode"+></A+><B+>utf8WithByteMarkToUnicode</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"+>UTF8String</A+> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="doc"+>UTF-8 to Unicode conversion with deletion of leading byte order mark, as described in XML standard F.1+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Alatin1ToUnicode"+></A+><B+>latin1ToUnicode</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="doc"+>code conversion from latin1 to Unicode+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aucs2ToUnicode"+></A+><B+>ucs2ToUnicode</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="doc"+>UCS-2 to UTF-8 conversion with byte order mark analysis+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aucs2BigEndianToUnicode"+></A+><B+>ucs2BigEndianToUnicode</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="doc"+>UCS-2 big endian to Unicode conversion+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aucs2LittleEndianToUnicode"+></A+><B+>ucs2LittleEndianToUnicode</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="doc"+>UCS-2 little endian to Unicode conversion+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Autf16beToUnicode"+></A+><B+>utf16beToUnicode</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="doc"+>UTF-16 big endian to UTF-8 conversion with removal of byte order mark+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Autf16leToUnicode"+></A+><B+>utf16leToUnicode</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="doc"+>UTF-16 little endian to UTF-8 conversion with removal of byte order mark+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AunicodeCharToUtf8"+></A+><B+>unicodeCharToUtf8</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"+>UTF8String</A+></TD+></TR+><TR+><TD CLASS="doc"+>conversion from Unicode (Char) to a UTF8 encoded string.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AunicodeToUtf8"+></A+><B+>unicodeToUtf8</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"+>UTF8String</A+></TD+></TR+><TR+><TD CLASS="doc"+>conversion from Unicode strings (UString) to UTF8 encoded strings.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AunicodeToXmlEntity"+></A+><B+>unicodeToXmlEntity</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>substitute all Unicode characters, that are not legal 1-byte+ UTF-8 XML characters by a character reference.+</P+><P+>This function can be used to translate all text nodes and+ attribute values into pure ascii.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToLatin1"+>unicodeToLatin1</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AunicodeToLatin1"+></A+><B+>unicodeToLatin1</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>substitute all Unicode characters, that are not legal latin1+ UTF-8 XML characters by a character reference.+</P+><P+>This function can be used to translate all text nodes and+ attribute values into ISO latin1.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToXmlEntity"+>unicodeToXmlEntity</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AunicodeRemoveNoneAscii"+></A+><B+>unicodeRemoveNoneAscii</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>removes all non ascii chars, may be used to transform+ a document into a pure ascii representation by removing+ all non ascii chars from tag and attibute names+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeRemoveNoneLatin1"+>unicodeRemoveNoneLatin1</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToXmlEntity"+>unicodeToXmlEntity</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AunicodeRemoveNoneLatin1"+></A+><B+>unicodeRemoveNoneLatin1</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>removes all non latin1 chars, may be used to transform+ a document into a pure ascii representation by removing+ all non ascii chars from tag and attibute names+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeRemoveNoneAscii"+>unicodeRemoveNoneAscii</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToLatin1"+>unicodeToLatin1</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AintToCharRef"+></A+><B+>intToCharRef</B+> :: Int -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>convert an Unicode into a XML character reference.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AintToCharRefHex"+>intToCharRefHex</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AintToCharRefHex"+></A+><B+>intToCharRefHex</B+> :: Int -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>convert an Unicode into a XML hexadecimal character reference.+</P+><P+>see also: <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AintToCharRef"+>intToCharRef</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetEncodingFct"+></A+><B+>getEncodingFct</B+> :: String -&gt; Maybe (<A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; String)</TD+></TR+><TR+><TD CLASS="doc"+>the lookup function for selecting the encoding function+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetOutputEncodingFct"+></A+><B+>getOutputEncodingFct</B+> :: String -&gt; Maybe (String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+>)</TD+></TR+><TR+><TD CLASS="doc"+>the lookup function for selecting the encoding function+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnormalizeNL"+></A+><B+>normalizeNL</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>White Space (XML Standard 2.3) and + end of line handling (2.11)+</P+><P+>#x0D and #x0D#x0A are mapped to #x0A+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AguessEncoding"+></A+><B+>guessEncoding</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-DOM-Util.html view
@@ -0,0 +1,633 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.Util</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/Util.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.Util</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>utility functions+</P+><P+>Version : $Id: Util.hs,v 1.3 2006<EM+>05</EM+>01 18:56:24 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AstringTrim"+>stringTrim</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AstringToUpper"+>stringToUpper</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnormalizeNumber"+>normalizeNumber</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnormalizeWhitespace"+>normalizeWhitespace</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AescapeURI"+>escapeURI</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtextEscapeXml"+>textEscapeXml</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AstringEscapeXml"+>stringEscapeXml</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AattrEscapeXml"+>attrEscapeXml</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AstringToInt"+>stringToInt</A+> :: Int -&gt; String -&gt; Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AstringToHexString"+>stringToHexString</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcharToHexString"+>charToHexString</A+> :: Char -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AintToHexString"+>intToHexString</A+> :: Int -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhexStringToInt"+>hexStringToInt</A+> :: String -&gt; Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AdecimalStringToInt"+>decimalStringToInt</A+> :: String -&gt; Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Adoubles"+>doubles</A+> :: Eq a =&gt; [a] -&gt; [a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Asingles"+>singles</A+> :: Eq a =&gt; [a] -&gt; [a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnoDoubles"+>noDoubles</A+> :: Eq a =&gt; [a] -&gt; [a]</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AstringTrim"+></A+><B+>stringTrim</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>remove leading and trailing whitespace with standard Haskell predicate isSpace+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AstringToUpper"+></A+><B+>stringToUpper</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>convert string to upercase with standard Haskell toUpper function+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnormalizeNumber"+></A+><B+>normalizeNumber</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>Removes leading / trailing whitespaces and leading zeros+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnormalizeWhitespace"+></A+><B+>normalizeWhitespace</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>Reduce whitespace sequences to a single whitespace+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AescapeURI"+></A+><B+>escapeURI</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>Escape all disallowed characters in URI + references (see <A HREF="http://www.w3.org/TR/xlink/#link-locators"+>http://www.w3.org/TR/xlink/#link-locators</A+>)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtextEscapeXml"+></A+><B+>textEscapeXml</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>escape XML chars &amp;lt;  and ampercent by transforming them into character references, used for escaping text nodes+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AattrEscapeXml"+>attrEscapeXml</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AstringEscapeXml"+></A+><B+>stringEscapeXml</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>escape XML chars &amp;lt;, &amp;gt;, &amp;quot;,  and ampercent by transforming them into character references+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AattrEscapeXml"+>attrEscapeXml</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AattrEscapeXml"+></A+><B+>attrEscapeXml</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>escape XML chars in attribute values, same as stringEscapeXml, but none blank whitespace+ is also escaped+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringEscapeXml"+>stringEscapeXml</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AstringToInt"+></A+><B+>stringToInt</B+> :: Int -&gt; String -&gt; Int</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AstringToHexString"+></A+><B+>stringToHexString</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>convert a string into a hexadecimal string applying charToHexString+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AcharToHexString"+>charToHexString</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcharToHexString"+></A+><B+>charToHexString</B+> :: Char -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>convert a char (byte) into a 2-digit hexadecimal string+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringToHexString"+>stringToHexString</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AintToHexString"+>intToHexString</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AintToHexString"+></A+><B+>intToHexString</B+> :: Int -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>convert a none negative Int into a hexadecimal string+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AcharToHexString"+>charToHexString</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhexStringToInt"+></A+><B+>hexStringToInt</B+> :: String -&gt; Int</TD+></TR+><TR+><TD CLASS="doc"+>convert a string of hexadecimal digits into an Int+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdecimalStringToInt"+></A+><B+>decimalStringToInt</B+> :: String -&gt; Int</TD+></TR+><TR+><TD CLASS="doc"+>convert a string of digits into an Int+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Adoubles"+></A+><B+>doubles</B+> :: Eq a =&gt; [a] -&gt; [a]</TD+></TR+><TR+><TD CLASS="doc"+>take all elements of a list which occur more than once. The result does not contain doubles.+ (doubles . doubles == doubles)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Asingles"+></A+><B+>singles</B+> :: Eq a =&gt; [a] -&gt; [a]</TD+></TR+><TR+><TD CLASS="doc"+>drop all elements from a list which occur more than once.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnoDoubles"+></A+><B+>noDoubles</B+> :: Eq a =&gt; [a] -&gt; [a]</TD+></TR+><TR+><TD CLASS="doc"+>remove duplicates from list+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-DOM-XmlKeywords.html view
@@ -0,0 +1,2926 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.XmlKeywords</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlKeywords.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.XmlKeywords</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: XmlKeywords.hs,v 1.10 2006<EM+>11</EM+>02 09:34:09 hxml Exp $+</P+><P+>Constants for XML keywords, for special attribute names+   and special attribute values+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3At_xml"+>t_xml</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3At_root"+>t_root</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_canonicalize"+>a_canonicalize</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_default"+>a_default</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_check_namespaces"+>a_check_namespaces</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_contentLength"+>a_contentLength</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_collect_errors"+>a_collect_errors</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_column"+>a_column</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_default_baseuri"+>a_default_baseuri</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_canonicalize"+>a_do_not_canonicalize</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_check_namespaces"+>a_do_not_check_namespaces</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_issue_errors"+>a_do_not_issue_errors</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_issue_warnings"+>a_do_not_issue_warnings</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_preserve_comment"+>a_do_not_preserve_comment</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_remove_whitespace"+>a_do_not_remove_whitespace</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_use_curl"+>a_do_not_use_curl</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_validate"+>a_do_not_validate</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_encoding"+>a_encoding</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_error"+>a_error</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_error_log"+>a_error_log</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_help"+>a_help</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_indent"+>a_indent</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_issue_errors"+>a_issue_errors</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_issue_warnings"+>a_issue_warnings</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_kind"+>a_kind</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_line"+>a_line</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_module"+>a_module</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_modifier"+>a_modifier</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_name"+>a_name</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_no_xml_pi"+>a_no_xml_pi</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_options_curl"+>a_options_curl</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_output_encoding"+>a_output_encoding</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_output_file"+>a_output_file</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_output_xml"+>a_output_xml</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_output_html"+>a_output_html</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_parse_html"+>a_parse_html</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_parse_xml"+>a_parse_xml</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_peref"+>a_peref</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_preserve_comment"+>a_preserve_comment</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_propagate_errors"+>a_propagate_errors</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_proxy"+>a_proxy</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_remove_whitespace"+>a_remove_whitespace</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_show_haskell"+>a_show_haskell</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_show_tree"+>a_show_tree</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_source"+>a_source</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_status"+>a_status</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_standalone"+>a_standalone</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_trace"+>a_trace</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_type"+>a_type</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_use_curl"+>a_use_curl</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_url"+>a_url</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_validate"+>a_validate</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_value"+>a_value</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_verbose"+>a_verbose</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_version"+>a_version</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_xml"+>a_xml</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_xmlns"+>a_xmlns</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_0"+>v_0</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_1"+>v_1</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_yes"+>v_yes</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_no"+>v_no</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_any"+>v_any</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_children"+>v_children</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_choice"+>v_choice</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_empty"+>v_empty</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_mixed"+>v_mixed</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_seq"+>v_seq</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_null"+>v_null</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_option"+>v_option</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_pcdata"+>v_pcdata</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_star"+>v_star</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_plus"+>v_plus</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_any"+>k_any</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_cdata"+>k_cdata</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_empty"+>k_empty</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_enitity"+>k_enitity</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_entities"+>k_entities</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_id"+>k_id</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_idref"+>k_idref</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_idrefs"+>k_idrefs</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_include"+>k_include</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_ignore"+>k_ignore</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_nmtoken"+>k_nmtoken</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_nmtokens"+>k_nmtokens</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_peref"+>k_peref</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_public"+>k_public</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_system"+>k_system</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_enumeration"+>k_enumeration</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_fixed"+>k_fixed</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_implied"+>k_implied</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_ndata"+>k_ndata</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_notation"+>k_notation</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_pcdata"+>k_pcdata</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_required"+>k_required</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_default"+>k_default</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransferPrefix"+>transferPrefix</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransferProtocol"+>transferProtocol</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransferMimeType"+>transferMimeType</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransferEncoding"+>transferEncoding</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransferURI"+>transferURI</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransferDefaultURI"+>transferDefaultURI</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransferStatus"+>transferStatus</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransferMessage"+>transferMessage</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransferVersion"+>transferVersion</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhttpPrefix"+>httpPrefix</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AstringProtocol"+>stringProtocol</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisoLatin1"+>isoLatin1</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AusAscii"+>usAscii</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aucs2"+>ucs2</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Autf8"+>utf8</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Autf16"+>utf16</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Autf16be"+>utf16be</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Autf16le"+>utf16le</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AunicodeString"+>unicodeString</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlNamespace"+>xmlNamespace</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlnsNamespace"+>xmlnsNamespace</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ArelaxNamespace"+>relaxNamespace</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_relax_schema"+>a_relax_schema</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_check_restrictions"+>a_do_not_check_restrictions</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_check_restrictions"+>a_check_restrictions</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_validate_externalRef"+>a_do_not_validate_externalRef</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_validate_externalRef"+>a_validate_externalRef</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_validate_include"+>a_do_not_validate_include</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_validate_include"+>a_validate_include</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_output_changes"+>a_output_changes</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_collect_errors"+>a_do_not_collect_errors</A+> :: String</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3At_xml"+></A+><B+>t_xml</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3At_root"+></A+><B+>t_root</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_canonicalize"+></A+><B+>a_canonicalize</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_default"+></A+><B+>a_default</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_check_namespaces"+></A+><B+>a_check_namespaces</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_contentLength"+></A+><B+>a_contentLength</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_collect_errors"+></A+><B+>a_collect_errors</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_column"+></A+><B+>a_column</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_default_baseuri"+></A+><B+>a_default_baseuri</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_canonicalize"+></A+><B+>a_do_not_canonicalize</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_check_namespaces"+></A+><B+>a_do_not_check_namespaces</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_issue_errors"+></A+><B+>a_do_not_issue_errors</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_issue_warnings"+></A+><B+>a_do_not_issue_warnings</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_preserve_comment"+></A+><B+>a_do_not_preserve_comment</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_remove_whitespace"+></A+><B+>a_do_not_remove_whitespace</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_use_curl"+></A+><B+>a_do_not_use_curl</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_validate"+></A+><B+>a_do_not_validate</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_encoding"+></A+><B+>a_encoding</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_error"+></A+><B+>a_error</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_error_log"+></A+><B+>a_error_log</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_help"+></A+><B+>a_help</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_indent"+></A+><B+>a_indent</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_issue_errors"+></A+><B+>a_issue_errors</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_issue_warnings"+></A+><B+>a_issue_warnings</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_kind"+></A+><B+>a_kind</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_line"+></A+><B+>a_line</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_module"+></A+><B+>a_module</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_modifier"+></A+><B+>a_modifier</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_name"+></A+><B+>a_name</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_no_xml_pi"+></A+><B+>a_no_xml_pi</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_options_curl"+></A+><B+>a_options_curl</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_output_encoding"+></A+><B+>a_output_encoding</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_output_file"+></A+><B+>a_output_file</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_output_xml"+></A+><B+>a_output_xml</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_output_html"+></A+><B+>a_output_html</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_parse_html"+></A+><B+>a_parse_html</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_parse_xml"+></A+><B+>a_parse_xml</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_peref"+></A+><B+>a_peref</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_preserve_comment"+></A+><B+>a_preserve_comment</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_propagate_errors"+></A+><B+>a_propagate_errors</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_proxy"+></A+><B+>a_proxy</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_remove_whitespace"+></A+><B+>a_remove_whitespace</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_show_haskell"+></A+><B+>a_show_haskell</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_show_tree"+></A+><B+>a_show_tree</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_source"+></A+><B+>a_source</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_status"+></A+><B+>a_status</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_standalone"+></A+><B+>a_standalone</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_trace"+></A+><B+>a_trace</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_type"+></A+><B+>a_type</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_use_curl"+></A+><B+>a_use_curl</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_url"+></A+><B+>a_url</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_validate"+></A+><B+>a_validate</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_value"+></A+><B+>a_value</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_verbose"+></A+><B+>a_verbose</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_version"+></A+><B+>a_version</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_xml"+></A+><B+>a_xml</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_xmlns"+></A+><B+>a_xmlns</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_0"+></A+><B+>v_0</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_1"+></A+><B+>v_1</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_yes"+></A+><B+>v_yes</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_no"+></A+><B+>v_no</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_any"+></A+><B+>v_any</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_children"+></A+><B+>v_children</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_choice"+></A+><B+>v_choice</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_empty"+></A+><B+>v_empty</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_mixed"+></A+><B+>v_mixed</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_seq"+></A+><B+>v_seq</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_null"+></A+><B+>v_null</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_option"+></A+><B+>v_option</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_pcdata"+></A+><B+>v_pcdata</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_star"+></A+><B+>v_star</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_plus"+></A+><B+>v_plus</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_any"+></A+><B+>k_any</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_cdata"+></A+><B+>k_cdata</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_empty"+></A+><B+>k_empty</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_enitity"+></A+><B+>k_enitity</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_entities"+></A+><B+>k_entities</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_id"+></A+><B+>k_id</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_idref"+></A+><B+>k_idref</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_idrefs"+></A+><B+>k_idrefs</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_include"+></A+><B+>k_include</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_ignore"+></A+><B+>k_ignore</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_nmtoken"+></A+><B+>k_nmtoken</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_nmtokens"+></A+><B+>k_nmtokens</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_peref"+></A+><B+>k_peref</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_public"+></A+><B+>k_public</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_system"+></A+><B+>k_system</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_enumeration"+></A+><B+>k_enumeration</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_fixed"+></A+><B+>k_fixed</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_implied"+></A+><B+>k_implied</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_ndata"+></A+><B+>k_ndata</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_notation"+></A+><B+>k_notation</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_pcdata"+></A+><B+>k_pcdata</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_required"+></A+><B+>k_required</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_default"+></A+><B+>k_default</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransferPrefix"+></A+><B+>transferPrefix</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransferProtocol"+></A+><B+>transferProtocol</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransferMimeType"+></A+><B+>transferMimeType</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransferEncoding"+></A+><B+>transferEncoding</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransferURI"+></A+><B+>transferURI</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransferDefaultURI"+></A+><B+>transferDefaultURI</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransferStatus"+></A+><B+>transferStatus</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransferMessage"+></A+><B+>transferMessage</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransferVersion"+></A+><B+>transferVersion</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhttpPrefix"+></A+><B+>httpPrefix</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AstringProtocol"+></A+><B+>stringProtocol</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisoLatin1"+></A+><B+>isoLatin1</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AusAscii"+></A+><B+>usAscii</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aucs2"+></A+><B+>ucs2</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Autf8"+></A+><B+>utf8</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Autf16"+></A+><B+>utf16</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Autf16be"+></A+><B+>utf16be</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Autf16le"+></A+><B+>utf16le</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AunicodeString"+></A+><B+>unicodeString</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlNamespace"+></A+><B+>xmlNamespace</B+> :: String</TD+></TR+><TR+><TD CLASS="doc"+>the predefined namespace uri for xml: &quot;http://www.w3.org/XML/1998/namespaces&quot;+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlnsNamespace"+></A+><B+>xmlnsNamespace</B+> :: String</TD+></TR+><TR+><TD CLASS="doc"+>the predefined namespace uri for xmlns: &quot;http://www.w3.org/2000/xmlns/&quot;+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArelaxNamespace"+></A+><B+>relaxNamespace</B+> :: String</TD+></TR+><TR+><TD CLASS="doc"+>Relax NG namespace+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_relax_schema"+></A+><B+>a_relax_schema</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_check_restrictions"+></A+><B+>a_do_not_check_restrictions</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_check_restrictions"+></A+><B+>a_check_restrictions</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_validate_externalRef"+></A+><B+>a_do_not_validate_externalRef</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_validate_externalRef"+></A+><B+>a_validate_externalRef</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_validate_include"+></A+><B+>a_do_not_validate_include</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_validate_include"+></A+><B+>a_validate_include</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_output_changes"+></A+><B+>a_output_changes</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_collect_errors"+></A+><B+>a_do_not_collect_errors</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-DOM-XmlOptions.html view
@@ -0,0 +1,508 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.XmlOptions</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlOptions.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.XmlOptions</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Common useful options+</P+><P+>Version : $Id: XmlOptions.hs,v 1.1 2006<EM+>11</EM+>09 20:27:42 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AinputOptions"+>inputOptions</A+> :: [OptDescr (String, String)]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ArelaxOptions"+>relaxOptions</A+> :: [OptDescr (String, String)]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AoutputOptions"+>outputOptions</A+> :: [OptDescr (String, String)]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgeneralOptions"+>generalOptions</A+> :: [OptDescr (String, String)]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AversionOptions"+>versionOptions</A+> :: [OptDescr (String, String)]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowOptions"+>showOptions</A+> :: [OptDescr (String, String)]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AselectOptions"+>selectOptions</A+> :: [String] -&gt; [OptDescr (String, String)] -&gt; [OptDescr (String, String)]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AremoveOptions"+>removeOptions</A+> :: [String] -&gt; [OptDescr (String, String)] -&gt; [OptDescr (String, String)]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AoptionIsSet"+>optionIsSet</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; Bool</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AinputOptions"+></A+><B+>inputOptions</B+> :: [OptDescr (String, String)]</TD+></TR+><TR+><TD CLASS="doc"+><P+>commonly useful options for XML input+</P+><P+>can be used for option definition with haskell getopt+</P+><P+>defines options: <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_trace"+>a_trace</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_proxy"+>a_proxy</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_use_curl"+>a_use_curl</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_use_curl"+>a_do_not_use_curl</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_options_curl"+>a_options_curl</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_encoding"+>a_encoding</A+></TT+>,+ <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_errors"+>a_issue_errors</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_issue_errors"+>a_do_not_issue_errors</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_html"+>a_parse_html</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_warnings"+>a_issue_warnings</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_issue_warnings"+>a_do_not_issue_warnings</A+></TT+>,+ <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_xml"+>a_parse_xml</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate"+>a_validate</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_validate"+>a_do_not_validate</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_canonicalize"+>a_canonicalize</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_canonicalize"+>a_do_not_canonicalize</A+></TT+>,+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArelaxOptions"+></A+><B+>relaxOptions</B+> :: [OptDescr (String, String)]</TD+></TR+><TR+><TD CLASS="doc"+><P+>available Relax NG validation options+</P+><P+>defines options+ <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_check_restrictions"+>a_check_restrictions</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate_externalRef"+>a_validate_externalRef</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate_include"+>a_validate_include</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_check_restrictions"+>a_do_not_check_restrictions</A+></TT+>,  + <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_validate_externalRef"+>a_do_not_validate_externalRef</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_validate_include"+>a_do_not_validate_include</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AoutputOptions"+></A+><B+>outputOptions</B+> :: [OptDescr (String, String)]</TD+></TR+><TR+><TD CLASS="doc"+><P+>commonly useful options for XML output+</P+><P+>defines options: <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_indent"+>a_indent</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_encoding"+>a_output_encoding</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_file"+>a_output_file</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_html"+>a_output_html</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgeneralOptions"+></A+><B+>generalOptions</B+> :: [OptDescr (String, String)]</TD+></TR+><TR+><TD CLASS="doc"+><P+>commonly useful options+</P+><P+>defines options: <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_verbose"+>a_verbose</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_help"+>a_help</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AversionOptions"+></A+><B+>versionOptions</B+> :: [OptDescr (String, String)]</TD+></TR+><TR+><TD CLASS="doc"+>defines <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_version"+>a_version</A+></TT+> option+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowOptions"+></A+><B+>showOptions</B+> :: [OptDescr (String, String)]</TD+></TR+><TR+><TD CLASS="doc"+>debug output options+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AselectOptions"+></A+><B+>selectOptions</B+> :: [String] -&gt; [OptDescr (String, String)] -&gt; [OptDescr (String, String)]</TD+></TR+><TR+><TD CLASS="doc"+>select options from a predefined list of option desciptions+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveOptions"+></A+><B+>removeOptions</B+> :: [String] -&gt; [OptDescr (String, String)] -&gt; [OptDescr (String, String)]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AoptionIsSet"+></A+><B+>optionIsSet</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+><P+>check whether an option is set+</P+><P+>reads the value of an attribute, usually applied to a document root node,+ and checks if the value represents True. The following strings are interpreted+ as true: &quot;1&quot;, &quot;True&quot;, &quot;true&quot;, &quot;yes&quot;, &quot;Yes&quot;.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-DOM-XmlState.html view
@@ -0,0 +1,2479 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.XmlState</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlState.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.XmlState</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>This module provides a Monad for an internal state and IO commands.+ The state consists of two parts, the user state and the system state+ user state ist a type parameter, the system state is a list+ name-value pair. If the user state is not needed, the type parameter+ can be instantiated with <TT+>()</TT+>.+</P+><P+>Furthermore there are types for Xml filter working on this monad+ and functions for manipulating the state components+ and for lifting i/o commands and XmlFilter to monad filters.+</P+><P+>Error reporting functions are also located in this module.+</P+><P+>Version : $Id: XmlState.hs,v 1.3 2005<EM+>05</EM+>27 13:15:23 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3ASysState"+>SysState</A+>  = <A HREF="#v%3ASysState"+>SysState</A+> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="recfield"+><A HREF="#v%3AsysStateAttrs"+>sysStateAttrs</A+> :: !<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysStateAttrs"+>SysStateAttrs</A+></TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3AsysStateErrorHandler"+>sysStateErrorHandler</A+> :: !(<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> ())</TD+></TR+></TABLE+>}</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ASysStateAttrs"+>SysStateAttrs</A+> = <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AXmlState"+>XmlState</A+> state = <A HREF="#v%3AXmlState"+>XmlState</A+> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="recfield"+><A HREF="#v%3AsysState"+>sysState</A+> :: !<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+></TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3AuserState"+>userState</A+> :: !state</TD+></TR+></TABLE+>}</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AXState"+>XState</A+> state res = <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> (<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlState"+>XmlState</A+> state) res</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AXmlStateFilter"+>XmlStateFilter</A+> state = <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeState"+>changeState</A+> :: (state -&gt; state) -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetState"+>setState</A+> :: state -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetState"+>getState</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeSysState"+>changeSysState</A+> :: (<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+>) -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetSysState"+>setSysState</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetSysState"+>getSysState</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AinitialSysState"+>initialSysState</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeSysStateAttrs"+>changeSysStateAttrs</A+> :: (<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysStateAttrs"+>SysStateAttrs</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysStateAttrs"+>SysStateAttrs</A+>) -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetSysErrorHandler"+>setSysErrorHandler</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> () -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetSysErrorHandler"+>getSysErrorHandler</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state (<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> ())</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetSysParamTree"+>setSysParamTree</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetSysParam"+>setSysParam</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetSysParamInt"+>setSysParamInt</A+> :: String -&gt; Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetSystemParams"+>setSystemParams</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetSysParamTree"+>getSysParamTree</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetSysParam"+>getSysParam</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetSysParamWithDefault"+>getSysParamWithDefault</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetSysParamInt"+>getSysParamInt</A+> :: String -&gt; Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Arun0"+>run0</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlState"+>XmlState</A+> state -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state res -&gt; IO (res, <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlState"+>XmlState</A+> state)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Arun"+>run</A+> :: state -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state res -&gt; IO res</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Arun%27"+>run'</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> () res -&gt; IO res</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Achain%27"+>chain'</A+> :: state1 -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state1 res -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state0 (res, state1)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Achain"+>chain</A+> :: state1 -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state1 res -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state0 res</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AliftF"+>liftF</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aio"+>io</A+> :: IO a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetTraceLevel"+>setTraceLevel</A+> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetTraceLevel"+>getTraceLevel</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtraceCmd"+>traceCmd</A+> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Atrace"+>trace</A+> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtraceState"+>traceState</A+> :: Int -&gt; (state -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AclearStatus"+>clearStatus</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AissueError"+>issueError</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AerrorMsgHandler"+>errorMsgHandler</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetErrorMsgLevel"+>setErrorMsgLevel</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AerrorMsgToStderr"+>errorMsgToStderr</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AerrorMsgLogging"+>errorMsgLogging</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AerrorMsgLoggingAndToStderr"+>errorMsgLoggingAndToStderr</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetErrorMsg"+>getErrorMsg</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AerrClass"+>errClass</A+> :: Int -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AissueWarn"+>issueWarn</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AissueErr"+>issueErr</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AissueFatal"+>issueFatal</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddFatal"+>addFatal</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcheckStatus"+>checkStatus</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetStatus"+>setStatus</A+> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AstatusOk"+>statusOk</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcheckResult"+>checkResult</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessAttrM"+>processAttrM</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3ASysState"+></A+><B+>SysState</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>The internal system state consists of a list of name-value pairs+ of type <TT+>(String, XmlTrees)</TT+>, so arbitrary lists of trees can be stored.+ For options, often only strings are used as values, so a set of access+ functions with string values is available+ The error handling method can be controlled by an error handler filter,+ the default filter issues the errors on stderr+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ASysState"+></A+><B+>SysState</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="body" COLSPAN="2"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AsysStateAttrs"+></A+><B+>sysStateAttrs</B+> :: !<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysStateAttrs"+>SysStateAttrs</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AsysStateErrorHandler"+></A+><B+>sysStateErrorHandler</B+> :: !(<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> ())</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ASysStateAttrs"+></A+><B+>SysStateAttrs</B+> = <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AXmlState"+></A+><B+>XmlState</B+> state</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>The State has a system and a user part+ the user state is a type parameter+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AXmlState"+></A+><B+>XmlState</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="body" COLSPAN="2"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AsysState"+></A+><B+>sysState</B+> :: !<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AuserState"+></A+><B+>userState</B+> :: !state</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AXState"+></A+><B+>XState</B+> state res = <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> (<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlState"+>XmlState</A+> state) res</TD+></TR+><TR+><TD CLASS="doc"+>The monad type for commands. It is an instance of <A HREF="StateIO.html"+>StateIO</A+> from the+ general module <A HREF="Control-Monad-MonadStateIO.html"+>Control.Monad.MonadStateIO</A+>.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AXmlStateFilter"+></A+><B+>XmlStateFilter</B+> state = <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="doc"+>The <A HREF="XmlFilter.html"+>XmlFilter</A+> type for filters working on a state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeState"+></A+><B+>changeState</B+> :: (state -&gt; state) -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state state</TD+></TR+><TR+><TD CLASS="doc"+><P+>change the user state+</P+><UL+><LI+> 1.parameter fct :  the user state change function+</LI+><LI+> returns : the new state+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetState"+></A+><B+>setState</B+> :: state -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state state</TD+></TR+><TR+><TD CLASS="doc"+><P+>set the user state.+</P+><UL+><LI+> 1.parameter s :  the new state+</LI+><LI+> returns : the new state+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetState"+></A+><B+>getState</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state state</TD+></TR+><TR+><TD CLASS="doc"+><P+>read the user state+</P+><UL+><LI+> returns : the current state+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeSysState"+></A+><B+>changeSysState</B+> :: (<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+>) -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>change the system part of the state.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AchangeState"+>changeState</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetSysState"+></A+><B+>setSysState</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>set the system part of the state.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetState"+>setState</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetSysState"+></A+><B+>getSysState</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>read the system part of the state.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetState"+>getState</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AinitialSysState"+></A+><B+>initialSysState</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>the initial system state+</P+><P+>an empty list of attribute value pairs+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeSysStateAttrs"+></A+><B+>changeSysStateAttrs</B+> :: (<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysStateAttrs"+>SysStateAttrs</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysStateAttrs"+>SysStateAttrs</A+>) -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+></TD+></TR+><TR+><TD CLASS="doc"+>change the attributes in the system state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetSysErrorHandler"+></A+><B+>setSysErrorHandler</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> () -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="doc"+>set the error message handler+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetSysErrorHandler"+></A+><B+>getSysErrorHandler</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state (<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> ())</TD+></TR+><TR+><TD CLASS="doc"+>get the error handler+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetSysParamTree"+></A+><B+>setSysParamTree</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="doc"+><P+>set or change a single system parameter.+</P+><UL+><LI+> 1.parameter name :  the name of the parameter+</LI+><LI+> 2.parameter value :  the list of associated trees+</LI+><LI+> returns : nothing+</LI+></UL+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSysParam"+>setSysParam</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSysParamInt"+>setSysParamInt</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetSysParam"+></A+><B+>setSysParam</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="doc"+><P+>set or change a single system parameter of type string.+</P+><UL+><LI+> 1.parameter name :  the name of the parameter+</LI+><LI+> 2.parameter value :  the (new) string value+</LI+><LI+> returns : nothing+</LI+></UL+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSysParamTree"+>setSysParamTree</A+></TT+>, setSysParamInt+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetSysParamInt"+></A+><B+>setSysParamInt</B+> :: String -&gt; Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="doc"+><P+>set or change a single integer type system parameter+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSysParam"+>setSysParam</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetSystemParams"+></A+><B+>setSystemParams</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+>add (or change) all attributes of the document root to the system state+     - returns : this+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetSysParamTree"+></A+><B+>getSysParamTree</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>read a system parameter+</P+><UL+><LI+> 1.parameter name :  the name of the parameter+</LI+><LI+> returns : the list of tres associated with the key, or the empty list for unknown parameters+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetSysParam"+></A+><B+>getSysParam</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state String</TD+></TR+><TR+><TD CLASS="doc"+><P+>read a system string parameter+</P+><UL+><LI+> 1.parameter name :  the name of the parameter+</LI+><LI+> returns : the value, or the empty string for unknown parameters+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetSysParamWithDefault"+></A+><B+>getSysParamWithDefault</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state String</TD+></TR+><TR+><TD CLASS="doc"+><P+>read a system parameter or return a default value+</P+><UL+><LI+> 1.parameter name :  the name of the parameter+</LI+><LI+> 2.parameter default :  the default value+</LI+><LI+> returns : the value if found, else the default+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetSysParamInt"+></A+><B+>getSysParamInt</B+> :: String -&gt; Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state Int</TD+></TR+><TR+><TD CLASS="doc"+><P+>read an integer system parameter+</P+><UL+><LI+> 1.parameter name : +</LI+><LI+> 2.parameter default : +</LI+></UL+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetSysParamWithDefault"+>getSysParamWithDefault</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Arun0"+></A+><B+>run0</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlState"+>XmlState</A+> state -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state res -&gt; IO (res, <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlState"+>XmlState</A+> state)</TD+></TR+><TR+><TD CLASS="doc"+><P+>exec a XState command with initial state.+</P+><UL+><LI+> 1.parameter initalState :  the inital user state+</LI+><LI+> 2.parameter cmd :  the command+</LI+><LI+> returns : the i/o command with result and user state+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Arun"+></A+><B+>run</B+> :: state -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state res -&gt; IO res</TD+></TR+><TR+><TD CLASS="doc"+>exec a XState command with initial user state.+ ignore final user state.+ like run0, but ignore the resulting user state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Arun%27"+></A+><B+>run'</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> () res -&gt; IO res</TD+></TR+><TR+><TD CLASS="doc"+>exec a XState command in th IO monad.+ like run with the empty state ().+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Achain%27"+></A+><B+>chain'</B+> :: state1 -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state1 res -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state0 (res, state1)</TD+></TR+><TR+><TD CLASS="doc"+><P+>run a command in a new user state.+ chain the system state part,+ init new system state with the current one, run the command and+ update the old system state with the resulting new system state+</P+><UL+><LI+> 1.parameter initialUserState :  the initial user state+</LI+><LI+> 2.parameter cmd :  the command+</LI+><LI+> returns : the result of executing cmd and the final state+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Achain"+></A+><B+>chain</B+> :: state1 -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state1 res -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state0 res</TD+></TR+><TR+><TD CLASS="doc"+><P+>like chain' but forget the final user state+</P+><UL+><LI+> 1.parameter initialUserState :  the initial user state+</LI+><LI+> 2.parameter cmd :  the command+</LI+><LI+> returns : only the result of executing cmd+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AliftF"+></A+><B+>liftF</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+><P+>lift a XmlFilter to a XmlStateFilter filter+ issue all error nodes as error messages+ and remove the error nodes from the result+</P+><UL+><LI+> 1.parameter f :  the filter+</LI+><LI+> returns : the filter running in the state monad+</LI+></UL+><P+>all errors are filtered from the result and issued on stderr+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aio"+></A+><B+>io</B+> :: IO a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state a</TD+></TR+><TR+><TD CLASS="doc"+><P+>lift an I/O command+</P+><UL+><LI+> 1.parameter cmd :  the i/o command+</LI+><LI+> returns : the i/o command lifted to the XML state monad+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetTraceLevel"+></A+><B+>setTraceLevel</B+> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="doc"+><P+>set the trace level.+</P+><P+>convention:+</P+><P+>0: no trace output (default)+</P+><P+>1: trace important computation steps, e.g. accessing a document+</P+><P+>2: trace small computation steps+</P+><P+>3: output an intermediate result XmlTree in XML source format+</P+><P+>4: output an intermediate result XmlTree in tree representation+</P+><UL+><LI+> 1.parameter level :  the trace level+</LI+><LI+> returns : nothing+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetTraceLevel"+></A+><B+>getTraceLevel</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state Int</TD+></TR+><TR+><TD CLASS="doc"+><P+>get the current trace level.+</P+><UL+><LI+> returns : the current trace level+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtraceCmd"+></A+><B+>traceCmd</B+> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="doc"+><P+>trace output for arbitray commands.+</P+><UL+><LI+> 1.parameter level :  the trace level,+			  for which the command will be execuded+			  if level &lt;= current trace level+</LI+><LI+> 2.parameter cmd :  the command to be executed+</LI+><LI+> returns : nothing+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Atrace"+></A+><B+>trace</B+> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="doc"+><P+>trace output function for simple text.+</P+><UL+><LI+> 1.parameter level :  like in traceCmd+</LI+><LI+> 2.parameter str :  the test+</LI+><LI+> returns : nothing+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtraceState"+></A+><B+>traceState</B+> :: Int -&gt; (state -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="doc"+><P+>trace output of the user part of the program state.+</P+><UL+><LI+> 1.parameter level :  like in traceCmd+</LI+><LI+> 2.parameter showFct :  the toString function+</LI+><LI+> returns : nothing+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AclearStatus"+></A+><B+>clearStatus</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+>filter to reset the state attribute <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_status"+>a_status</A+></TT+>+    - returns : this+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AissueError"+></A+><B+>issueError</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+><P+>report an error message.+</P+><UL+><LI+> returns : if the input tree n represents an error, <TT+>res = []</TT+>+		  and the error is processed by the errror handler filter (default: error is issued on stderr)+		  else <TT+>res = [n]</TT+>+</LI+></UL+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueErr"+>issueErr</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AerrorMsgHandler"+></A+><B+>errorMsgHandler</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetErrorMsgLevel"+></A+><B+>setErrorMsgLevel</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+>set the error level in system state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AerrorMsgToStderr"+></A+><B+>errorMsgToStderr</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+>default error handler for writing errors to stderr+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AerrorMsgLogging"+></A+><B+>errorMsgLogging</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+>error message handler for collecting all error messages+ all messages are stored under attribute <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_error_log"+>a_error_log</A+></TT+>+ they can be read with <TT+>getSysParamTree a_error_log</TT+> or by+ applying the filter <TT+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetErrorMsg"+>getErrorMsg</A+></TT+> to the root node+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AerrorMsgLoggingAndToStderr"+></A+><B+>errorMsgLoggingAndToStderr</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetErrorMsg"+></A+><B+>getErrorMsg</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+><P+>the filter for reading all collected error mesages+</P+><P+>result is the list of error messages, the input tree is ignored+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AerrClass"+></A+><B+>errClass</B+> :: Int -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>error level translation+ <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_warn"+>c_warn</A+></TT+> (1) : warning,+ <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"+>c_err</A+></TT+> (2): error (e.g. parse error, validation error, ...),+ <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_fatal"+>c_fatal</A+></TT+> (3) : fatal error (document access error, internal error, ...)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AissueWarn"+></A+><B+>issueWarn</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+><P+>short cut for issuing a warning+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueError"+>issueError</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueErr"+>issueErr</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AissueErr"+></A+><B+>issueErr</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+><P+>short cut for issuing an error+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueError"+>issueError</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AissueFatal"+></A+><B+>issueFatal</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+><P+>short cut for issuing a fatal error+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueError"+>issueError</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueErr"+>issueErr</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddFatal"+></A+><B+>addFatal</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcheckStatus"+></A+><B+>checkStatus</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+>checks the value of the attribute <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_status"+>a_status</A+></TT+> in a document root.+ if it contains a value greater or equal to <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"+>c_err</A+></TT+>, an error with error message+ stored in attribute <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_module"+>a_module</A+></TT+> is issued and the filter acts as the <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AnoneM"+>noneM</A+></TT+> filter+ else its the <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AthisM"+>thisM</A+></TT+> filter+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetStatus"+></A+><B+>setStatus</B+> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>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 <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"+>c_err</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AstatusOk"+></A+><B+>statusOk</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>check whether tree is a document root and the status attribute has a value less than <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"+>c_err</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcheckResult"+></A+><B+>checkResult</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+>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 error info is added as attributes with <TT+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetStatus"+>setStatus</A+></TT+>+ else nothing is changed+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessAttrM"+></A+><B+>processAttrM</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>monadic filter for processing the attribute list of a tag.+ for other trees this filter acts like <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AnoneM"+>noneM</A+></TT+>+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AprocessAttr"+>processAttr</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AprocessAttrl"+>processAttrl</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-DOM-XmlTree.html view
@@ -0,0 +1,147 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.XmlTree</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlTree.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.XmlTree</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>This helper module exports elements from the basic libraries:+ XmlTreeTypes, XmlKeywords, XNodeFunctions, XmlTreeFunctions and XmlTreeFilter+</P+><P+>Version : $Id: XmlTree.hs,v 1.1 2004<EM+>09</EM+>02 19:11:58 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html"+>Text.XML.HXT.DOM.XmlTreeTypes</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-XmlKeywords.html"+>Text.XML.HXT.DOM.XmlKeywords</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html"+>Text.XML.HXT.DOM.XmlTreeFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-DOM-XmlTreeFilter.html view
@@ -0,0 +1,4347 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.XmlTreeFilter</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlTreeFilter.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.XmlTreeFilter</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>basic XmlTree filter+</P+><P+>Version : $Id: XmlTreeFilter.hs,v 1.4 2006<EM+>11</EM+>12 14:53:00 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AisRoot"+>isRoot</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisTag"+>isTag</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisNsTag"+>isNsTag</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasLocalPart"+>hasLocalPart</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasPrefix"+>hasPrefix</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasNamespace"+>hasNamespace</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisOfTag"+>isOfTag</A+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"+>TagName</A+> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasAttr"+>hasAttr</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasNsAttr"+>hasNsAttr</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasValue"+>hasValue</A+> :: String -&gt; (String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisPi"+>isPi</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlPi"+>isXmlPi</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisOfPi"+>isOfPi</A+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"+>TagName</A+> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXCdata"+>isXCdata</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXCharRef"+>isXCharRef</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXCmt"+>isXCmt</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXDTD"+>isXDTD</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXEntityRef"+>isXEntityRef</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXError"+>isXError</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXPi"+>isXPi</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXTag"+>isXTag</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXAttr"+>isXAttr</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisAttr"+>isAttr</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisNsAttr"+>isNsAttr</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisOfAttr"+>isOfAttr</A+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AAttrName"+>AttrName</A+> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXText"+>isXText</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisText"+>isText</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisOfText"+>isOfText</A+> :: (String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisWhiteSpace"+>isWhiteSpace</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisDoctype"+>isDoctype</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisAttlist"+>isAttlist</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisElement"+>isElement</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisEntity"+>isEntity</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisPeRef"+>isPeRef</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisDTDName"+>isDTDName</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisCondSect"+>isCondSect</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisParameterEntity"+>isParameterEntity</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisNotation"+>isNotation</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisDefaultAttrKind"+>isDefaultAttrKind</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisEnumAttrType"+>isEnumAttrType</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisFixedAttrKind"+>isFixedAttrKind</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisIdAttrType"+>isIdAttrType</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisIdRefAttrType"+>isIdRefAttrType</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisNotationAttrType"+>isNotationAttrType</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisRequiredAttrKind"+>isRequiredAttrKind</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisAttlistParameterEntity"+>isAttlistParameterEntity</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisEmptyElement"+>isEmptyElement</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisMixedContentElement"+>isMixedContentElement</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisElemWithContent"+>isElemWithContent</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisAttlistOfElement"+>isAttlistOfElement</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisElemContentParamEntity"+>isElemContentParamEntity</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisUnparsedEntity"+>isUnparsedEntity</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisExternalParameterEntity"+>isExternalParameterEntity</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisInternalParameterEntity"+>isInternalParameterEntity</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisWarning"+>isWarning</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisError"+>isError</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisFatalError"+>isFatalError</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXTag"+>mkXTag</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkQTag"+>mkQTag</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXNsTag"+>mkXNsTag</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXAttr"+>mkXAttr</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkQAttr"+>mkQAttr</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXNsAttr"+>mkXNsAttr</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXText"+>mkXText</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXCharRef"+>mkXCharRef</A+> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXEntityRef"+>mkXEntityRef</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXCmt"+>mkXCmt</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXDTD"+>mkXDTD</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXCdata"+>mkXCdata</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXPi"+>mkXPi</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXError"+>mkXError</A+> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetName"+>getName</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetAttrl"+>getAttrl</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetValue"+>getValue</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetNsValue"+>getNsValue</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetDTDValue"+>getDTDValue</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXCmt"+>getXCmt</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXCdata"+>getXCdata</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AreplaceQName"+>replaceQName</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmodifyText"+>modifyText</A+> :: (String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmodifyQName"+>modifyQName</A+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"+>TagName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"+>TagName</A+>) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessAttrl"+>processAttrl</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlSFilter"+>XmlSFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessAttr"+>processAttr</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AreplaceAttrl"+>replaceAttrl</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Adel1Attr"+>del1Attr</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aadd1Attr"+>add1Attr</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddAttrl"+>addAttrl</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddAttr"+>addAttr</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddAttrInt"+>addAttrInt</A+> :: String -&gt; Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmodifyAttr"+>modifyAttr</A+> :: String -&gt; (String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddDTDAttr"+>addDTDAttr</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%2B%3D"+>(+=)</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%2B%2B%3D"+>(++=)</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalueOf"+>valueOf</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AintValueOf"+>intValueOf</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Atag"+>tag</A+> :: String -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Astag"+>stag</A+> :: String -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aatag"+>atag</A+> :: String -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aetag"+>etag</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aqetag"+>qetag</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aqtag"+>qtag</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ArootTag"+>rootTag</A+> :: [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aattr"+>attr</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aqattr"+>qattr</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Asattr"+>sattr</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Atxt"+>txt</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Acmt"+>cmt</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aspi"+>spi</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Acdata"+>cdata</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Adtd"+>dtd</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Awarn"+>warn</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aerr"+>err</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Afatal"+>fatal</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasOption"+>hasOption</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisRoot"+></A+><B+>isRoot</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a document root node.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisTag"+></A+><B+>isTag</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>test whether the root of a tree contains a tag node.+</P+><P+>see also: <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisNsTag"+>isNsTag</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisNsTag"+></A+><B+>isNsTag</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>namespace aware test whether the root of a tree contains a tag node. Parameters are the local part and namespace.+ Only usable after namespace propagation.+</P+><P+>see also: <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisTag"+>isTag</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasLocalPart"+></A+><B+>hasLocalPart</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree has a given local name+ see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasNamespace"+>hasNamespace</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasPrefix"+>hasPrefix</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisTag"+>isTag</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttr"+>isAttr</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasPrefix"+></A+><B+>hasPrefix</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree has a given prefix name+ see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasNamespace"+>hasNamespace</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasLocalPart"+>hasLocalPart</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisTag"+>isTag</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttr"+>isAttr</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasNamespace"+></A+><B+>hasNamespace</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree belongs to a given namespace+ see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisTag"+>isTag</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttr"+>isAttr</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasLocalPart"+>hasLocalPart</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasPrefix"+>hasPrefix</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisOfTag"+></A+><B+>isOfTag</B+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"+>TagName</A+> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a tag node with a special name.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasAttr"+></A+><B+>hasAttr</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>test whether the node of a tree is a XTag node or a XPi node with an attibute of a specific name+</P+><P+>see also: <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttr"+>isAttr</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasNsAttr"+>hasNsAttr</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasNsAttr"+></A+><B+>hasNsAttr</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>test whether the tree is a XTag node with an attibute of a specific local name and namespace uri+</P+><P+>see also: <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasAttr"+>hasAttr</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisNsAttr"+>isNsAttr</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasValue"+></A+><B+>hasValue</B+> :: String -&gt; (String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>test whether the given node is a XTag node or a XPI node with an attribute with a value with a specific property.+ In case of a match, the attribute value represented by a text node is returned as single element list,+ else the empty list is the result.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetValue"+>getValue</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisPi"+></A+><B+>isPi</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the tree is a processing instruction with a given name.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlPi"+></A+><B+>isXmlPi</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the tree is a &lt;?xml ... ?&gt; declaration+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisOfPi"+></A+><B+>isOfPi</B+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"+>TagName</A+> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a processing instruction of a special name.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXCdata"+></A+><B+>isXCdata</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a CDATA node.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXCharRef"+></A+><B+>isXCharRef</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a character reference node.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXCmt"+></A+><B+>isXCmt</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a comment node.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXDTD"+></A+><B+>isXDTD</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a DTD part.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXEntityRef"+></A+><B+>isXEntityRef</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains an entity reference node.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXError"+></A+><B+>isXError</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains an error node.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXPi"+></A+><B+>isXPi</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a processing instruction node.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXTag"+></A+><B+>isXTag</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a tag node.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXAttr"+></A+><B+>isXAttr</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains an attribute node.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisAttr"+></A+><B+>isAttr</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree is an attribute node for a given attribute name+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisNsAttr"+></A+><B+>isNsAttr</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>namespace aware test whether the tree contains an attribute node. Parameters are the local part of the atribute name and the namespace.+ Only usable after namespace propagation.+</P+><P+>see also: <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisNsTag"+>isNsTag</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttr"+>isAttr</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasNsAttr"+>hasNsAttr</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisOfAttr"+></A+><B+>isOfAttr</B+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AAttrName"+>AttrName</A+> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>general test for an attribute name+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXText"+></A+><B+>isXText</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a text node.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisText"+></A+><B+>isText</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a special text.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisOfText"+></A+><B+>isOfText</B+> :: (String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a text node with a special property+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisWhiteSpace"+></A+><B+>isWhiteSpace</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a text node only with whitespace.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisDoctype"+></A+><B+>isDoctype</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a DOCTYPE DTD part.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisAttlist"+></A+><B+>isAttlist</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains an ATTLIST DTD part.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisElement"+></A+><B+>isElement</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains an ELEMENT DTD part.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisEntity"+></A+><B+>isEntity</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains an ENTITY DTD part.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisPeRef"+></A+><B+>isPeRef</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a parameter ENTITY reference.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisDTDName"+></A+><B+>isDTDName</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a DTD name part.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisCondSect"+></A+><B+>isCondSect</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a conditional section DTD part.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisParameterEntity"+></A+><B+>isParameterEntity</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a parameter entity declaration.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisNotation"+></A+><B+>isNotation</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a NOTATION DTD part.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisDefaultAttrKind"+></A+><B+>isDefaultAttrKind</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisEnumAttrType"+></A+><B+>isEnumAttrType</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisFixedAttrKind"+></A+><B+>isFixedAttrKind</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisIdAttrType"+></A+><B+>isIdAttrType</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisIdRefAttrType"+></A+><B+>isIdRefAttrType</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisNotationAttrType"+></A+><B+>isNotationAttrType</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisRequiredAttrKind"+></A+><B+>isRequiredAttrKind</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisAttlistParameterEntity"+></A+><B+>isAttlistParameterEntity</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisEmptyElement"+></A+><B+>isEmptyElement</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisMixedContentElement"+></A+><B+>isMixedContentElement</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisElemWithContent"+></A+><B+>isElemWithContent</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisAttlistOfElement"+></A+><B+>isAttlistOfElement</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisElemContentParamEntity"+></A+><B+>isElemContentParamEntity</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisUnparsedEntity"+></A+><B+>isUnparsedEntity</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisExternalParameterEntity"+></A+><B+>isExternalParameterEntity</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisInternalParameterEntity"+></A+><B+>isInternalParameterEntity</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisWarning"+></A+><B+>isWarning</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains an error node for a warning.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisError"+></A+><B+>isError</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains an error node for an error.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisFatalError"+></A+><B+>isFatalError</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains an error node for a fatal error.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXTag"+></A+><B+>mkXTag</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>constructor filter for a tag node.+ a new tree is constructed.+ the attributes and the children are computed by applying the aproprate filter to the input tree+</P+><UL+><LI+> 1.parameter n :  the tag name+</LI+><LI+> 2.parameter af :  the filter for the attribute list+</LI+><LI+> 3.parameter cf :  the filter for the children+</LI+><LI+> returns : the constructor filter+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkQTag"+></A+><B+>mkQTag</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Version with qualified names of <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXTag"+>mkXTag</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXNsTag"+></A+><B+>mkXNsTag</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>constructor filter for a tag node.+ a new tree is constructed.+ the attributes and the children are computed by applying the aproprate filter to the input tree+</P+><UL+><LI+> 1.parameter n :  the tag name in form of prefix:localpart+</LI+><LI+> 2.parameter ns:   the namespace uri+</LI+><LI+> 3.parameter af :  the filter for the attribute list+</LI+><LI+> 4.parameter cf :  the filter for the children+</LI+><LI+> returns : the constructor filter+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXAttr"+></A+><B+>mkXAttr</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>filter for attribute construction.+ a new tree with attribute name and a value computed by a filter+ is build.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkQAttr"+></A+><B+>mkQAttr</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Qualified version <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXAttr"+>mkXAttr</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXNsAttr"+></A+><B+>mkXNsAttr</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>filter for attribute construction.+ a new tree with attribute name and namespace and a value computed by a filter+ is build.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXText"+></A+><B+>mkXText</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>constructor filter for a text node.+ a new tree is constructed.+ the input tree is ignored.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXCharRef"+></A+><B+>mkXCharRef</B+> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>constructor filter for a character reference node.+ a new tree is constructed.+ the input tree is ignored.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXEntityRef"+></A+><B+>mkXEntityRef</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>constructor filter for an entity reference node.+ a new tree is constructed.+ the input tree is ignored.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXCmt"+></A+><B+>mkXCmt</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>constructor filter for a comment node.+ a new tree is constructed.+ the xml string representation of the filter result+ forms the comment+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXDTD"+></A+><B+>mkXDTD</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>constructor filter for a DTD part.+ a new tree is constructed.+ the input tree is ignored.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXCdata"+></A+><B+>mkXCdata</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>constructor filter for a CDATA section node.+ a new tree is constructed.+ the input tree is ignored.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXPi"+></A+><B+>mkXPi</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>constructor filter for a processing instruction+ a new tree is constructed from the text representation+ of the input tree+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXError"+></A+><B+>mkXError</B+> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>constructor filter for an error message node.+ a new tree is constructed.+ the input tree is ignored.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetName"+></A+><B+>getName</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>filter for selecting the name of a tag node, an attribute node or a pi node.+ Result of the filter is a single element list with a text node or the empty list+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetAttrl"+></A+><B+>getAttrl</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>filter for selecting the attibute list+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetValue"+></A+><B+>getValue</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>filter for selecting the value of an attribute in a tag node.+ Result of the filter is a single element list with a text node or the empty list+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasValue"+>hasValue</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetNsValue"+>getNsValue</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetNsValue"+></A+><B+>getNsValue</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>filter for selecting the value of an attribute with namespace in a tag node.+ Result of the filter is a single element list with a text node or the empty list+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetValue"+>getValue</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisNsAttr"+>isNsAttr</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetDTDValue"+></A+><B+>getDTDValue</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>filter for selecting an attribute of a DTD node.+ Result of the filter is a single element list with a text node or the empty list+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXCmt"+></A+><B+>getXCmt</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>filter for selecting content of a comment.+ Result of the filter is a single element list with a text node or the empty list+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXCdata"+></A+><B+>getXCdata</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>filter for selecting the CDATA content.+ Result of the filter is a single element list with a text node or the empty list+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AreplaceQName"+></A+><B+>replaceQName</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>edit filter for changing the name of a tag node, an attribute or a pi.+ result of the filter is a single element list with a tag node or the empty list+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmodifyText"+></A+><B+>modifyText</B+> :: (String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>edit filter for changing the text of a text node.+ result of the filter is a single element list with a text node or the empty list+</P+><P+>example for editing all text nodes of a tree with an edit function <TT+>f</TT+>:+</P+><PRE+>processBottomUp (modifyText f `when` isXText)</PRE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmodifyQName"+></A+><B+>modifyQName</B+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"+>TagName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"+>TagName</A+>) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>edit filter for changing the name of a tag node.+ result of the filter is a single element list with a text node or the empty list+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessAttrl"+></A+><B+>processAttrl</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlSFilter"+>XmlSFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>process the attribute list of a tag node with a tree list filter.+ for other trees this filter acts like <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Anone"+>none</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessAttr"+></A+><B+>processAttr</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>elementwise processing of the attributes of a tag.+ for other trees this filter acts like <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Anone"+>none</A+></TT+>+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AprocessAttrl"+>processAttrl</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AreplaceAttrl"+></A+><B+>replaceAttrl</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>replace an attribute list+ to be renamed when replaceAttrl is eliminated+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Adel1Attr"+></A+><B+>del1Attr</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>delete an attribute from the attribute list of a tag tree+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aadd1Attr"+></A+><B+>add1Attr</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>add an attribute to the attribute list of a tag.+ If the attribute already exists, it's substituted,+</P+><P+>see also: <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Asattr"+>sattr</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%3D"+>+=</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddAttrl"+></A+><B+>addAttrl</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>adds an attribute list computed by a filter, uses <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aadd1Attr"+>add1Attr</A+></TT+>.+</P+><P+>see also: <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%3D"+>+=</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddAttr"+></A+><B+>addAttr</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>add or change an attribute with a given string as value for a XTag or XPi tree,+ uses <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aadd1Attr"+>add1Attr</A+></TT+>.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddAttrInt"+></A+><B+>addAttrInt</B+> :: String -&gt; Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>add or change an attribute with an Int value.+ uses <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AaddAttr"+>addAttr</A+></TT+>.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmodifyAttr"+></A+><B+>modifyAttr</B+> :: String -&gt; (String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>edit filter for changing the value of an attribute in a tag node.+ result of the filter is a single element list with the tag node or the empty list.+</P+><UL+><LI+> 1.parameter n :  the name of the attribute+</LI+><LI+> 2.parameter f :  the edit function for the attribute value+</LI+><LI+> returns : the edit filter+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddDTDAttr"+></A+><B+>addDTDAttr</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>add or change an attribute of a DTD tree+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%2B%3D"+></A+><B+>(+=)</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>convenient function for tag node tree construction+</P+><P+>infixl 7+</P+><P+>filter combinator for tag tree constrcution+ take a 1. filter for computing a tag node tree (or a whole list of tag node trees)+ then add all trees computed by the 2. filter to the attribute list when they represent attributes+ else append them to the list of children.+</P+><P+>if the 1. filter computes a list of tag nodes, the results of the 2. filter are added to all trees+</P+><P+>example: <TT+> etag &quot;a&quot; += sattr &quot;href&quot; &quot;#42&quot; += txt &quot;the answer&quot; </TT+>+ gives the tree <TT+> &lt;a href=&quot;#42&quot;&gt;the answer&lt;/a&gt; </TT+>+</P+><P+>example: <TT+> ( etag &quot;a&quot; +++ etag &quot;b&quot; ) += sattr &quot;x&quot; &quot;42&quot; </TT+>+ gives the tree <TT+> &lt;a x=&quot;42&quot;/&gt;&lt;b x=&quot;42&quot;/&gt; </TT+>+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aetag"+>etag</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Atag"+>tag</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aadd1Attr"+>add1Attr</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyChildren"+>modifyChildren</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%2B%3D"+>++=</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%2B%2B%3D"+></A+><B+>(++=)</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>convenient filter function adding a whole list of trees, just for not writing to many ( ... ).+</P+><P+>infixl 7+</P+><PRE+> f ++= gl  == f += cat gl </PRE+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%3D"+>+=</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalueOf"+></A+><B+>valueOf</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>combination of <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetValue"+>getValue</A+></TT+> and conversion into a String+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AintValueOf"+></A+><B+>intValueOf</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; Int</TD+></TR+><TR+><TD CLASS="doc"+>combination of <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetValue"+>getValue</A+></TT+> and conversion to a Int+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Atag"+></A+><B+>tag</B+> :: String -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>variant of mkXTag with a list of filters for the attributes and a list of filters for the children.+ this variant leads to a more readable source for a complicated construction filter+ than the simple solution with a combination of <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXTag"+>mkXTag</A+></TT+> and <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Acat"+>cat</A+></TT+>.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXTag"+>mkXTag</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Astag"+>stag</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aetag"+>etag</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Acat"+>cat</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%3D"+>+=</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Astag"+></A+><B+>stag</B+> :: String -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>variant of tag, useful for tags without attributes and with a list of filters for+ constructing the children+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXTag"+>mkXTag</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Atag"+>tag</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aetag"+>etag</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Acat"+>cat</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%3D"+>+=</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aatag"+></A+><B+>atag</B+> :: String -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>variant of tag, useful for tags with attributes but without children+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXTag"+>mkXTag</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Atag"+>tag</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Astag"+>stag</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aetag"+>etag</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Acat"+>cat</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aetag"+></A+><B+>etag</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Short cut for empty tags without attributes+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Atag"+>tag</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aatag"+>atag</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Astag"+>stag</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXTag"+>mkXTag</A+></TT+> and <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%3D"+>+=</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aqetag"+></A+><B+>qetag</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Qualified version of etag+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aqtag"+></A+><B+>qtag</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Alias for mkQTag+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArootTag"+></A+><B+>rootTag</B+> :: [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>filter for creating a document root node with a list of filters for the attributes and a list of filters for the document.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Atag"+>tag</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aattr"+></A+><B+>attr</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Alias for <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXAttr"+>mkXAttr</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aqattr"+></A+><B+>qattr</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Alias for mkQAttr+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Asattr"+></A+><B+>sattr</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>short cut for attribute construction with string constants+</P+><P+>set also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aattr"+>attr</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXAttr"+>mkXAttr</A+></TT+> and <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXText"+>mkXText</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Atxt"+></A+><B+>txt</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>short cut for <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXText"+>mkXText</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Acmt"+></A+><B+>cmt</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>short cut for simple comment+ the input tree is ignored+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXCmt"+>mkXCmt</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aspi"+></A+><B+>spi</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>short cut for generating simple processing instructions (spi)+ the input tree is ignored+</P+><P+><TT+>spi &quot;xyz&quot; &quot;abc&quot;</TT+> is equal to <TT+>mkXPi &quot;xyz&quot; (txt &quot;abc&quot;)</TT+>+ (the name pi is already used in prelude)+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Acdata"+></A+><B+>cdata</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>short cut for generating simple cdata sections,+ the input tree is ignored+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Adtd"+></A+><B+>dtd</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>DTD part generation with filter for attributes and children+ see also: <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXDTDTree"+>mkXDTDTree</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Awarn"+></A+><B+>warn</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>short cut for mkXError c_warn.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXError"+>mkXError</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aerr"+></A+><B+>err</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>short cut for mkXError c_fatal.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXError"+>mkXError</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Afatal"+></A+><B+>fatal</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>short cut for mkXError c_fatal.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXError"+>mkXError</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasOption"+></A+><B+>hasOption</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>check whether an option is set+</P+><P+>reads the value of an attribute, usually applied to a document root node,+ and checks if the value represents True. The following strings are interpreted+ as true: &quot;1&quot;, &quot;True&quot;, &quot;true&quot;, &quot;yes&quot;, &quot;Yes&quot;.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-DOM-XmlTreeFunctions.html view
@@ -0,0 +1,3085 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.XmlTreeFunctions</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlTreeFunctions.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.XmlTreeFunctions</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>basic XmlTree functions+</P+><P+>Version : $Id: XmlTreeFunctions.hs,v 1.4 2006<EM+>11</EM+>12 14:53:00 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXCdataNode"+>isXCdataNode</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXCharRefNode"+>isXCharRefNode</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXCmtNode"+>isXCmtNode</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXDTDNode"+>isXDTDNode</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXAttrNode"+>isXAttrNode</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXEntityRefNode"+>isXEntityRefNode</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXErrorNode"+>isXErrorNode</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXPiNode"+>isXPiNode</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXTagNode"+>isXTagNode</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXTextNode"+>isXTextNode</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisRootNode"+>isRootNode</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisTagNode"+>isTagNode</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisOfTagNode"+>isOfTagNode</A+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"+>TagName</A+> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisAttrNode"+>isAttrNode</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisOfAttrNode"+>isOfAttrNode</A+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AAttrName"+>AttrName</A+> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisTextNode"+>isTextNode</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisOfTextNode"+>isOfTextNode</A+> :: (String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisPiNode"+>isPiNode</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisOfPiNode"+>isOfPiNode</A+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"+>TagName</A+> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisDTDElemNode"+>isDTDElemNode</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisErrorNode"+>isErrorNode</A+> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXTagTree"+>mkXTagTree</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkQTagTree"+>mkQTagTree</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXNsTagTree"+>mkXNsTagTree</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnewRoot"+>newRoot</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AemptyRoot"+>emptyRoot</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnewDocument"+>newDocument</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnewDocument%27"+>newDocument'</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkRootTree"+>mkRootTree</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXTextTree"+>mkXTextTree</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXCharRefTree"+>mkXCharRefTree</A+> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXEntityRefTree"+>mkXEntityRefTree</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXCmtTree"+>mkXCmtTree</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXDTDTree"+>mkXDTDTree</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXAttrTree"+>mkXAttrTree</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkQAttrTree"+>mkQAttrTree</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXNsAttrTree"+>mkXNsAttrTree</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXPERefTree"+>mkXPERefTree</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXPiTree"+>mkXPiTree</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXmlDeclTree"+>mkXmlDeclTree</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXCdataTree"+>mkXCdataTree</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXErrorTree"+>mkXErrorTree</A+> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmaybeString2XText"+>maybeString2XText</A+> :: Maybe String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowXText"+>showXText</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowXCharRef"+>showXCharRef</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowXEntityRef"+>showXEntityRef</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowXErrors"+>showXErrors</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Axshow"+>xshow</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlTreesToString"+>xmlTreesToString</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlTreesToText"+>xmlTreesToText</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlSFilter"+>XmlSFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlContentModelToString"+>xmlContentModelToString</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowXmlTree"+>showXmlTree</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowXmlTrees"+>showXmlTrees</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowXmlTrees%27"+>showXmlTrees'</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowQName"+>showQName</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowQuoteString"+>showQuoteString</A+> :: String -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowAttr"+>showAttr</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowPEAttr"+>showPEAttr</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowExternalId"+>showExternalId</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowNData"+>showNData</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowXmlDTD"+>showXmlDTD</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowElemType"+>showElemType</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowContent"+>showContent</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowEntity"+>showEntity</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowEntityValue"+>showEntityValue</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowBlank"+>showBlank</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowEq"+>showEq</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowLt"+>showLt</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowGt"+>showGt</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowSlash"+>showSlash</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowApos"+>showApos</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowQuot"+>showQuot</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowLpar"+>showLpar</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowRpar"+>showRpar</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowNL"+>showNL</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnameOf"+>nameOf</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AlocalPartOf"+>localPartOf</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnamespaceOf"+>namespaceOf</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprefixOf"+>prefixOf</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AuniversalNameOf"+>universalNameOf</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AattrlOfDTD"+>attrlOfDTD</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalueOfDTD"+>valueOfDTD</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AofDTDequals"+>ofDTDequals</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Axcmt"+>xcmt</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Axerr"+>xerr</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Axwarn"+>xwarn</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Axtext"+>xtext</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Axtag"+>xtag</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Axattr"+>xattr</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtoTreel"+>toTreel</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtoAttrl"+>toAttrl</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AfromTreel"+>fromTreel</A+> :: <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AfromAttrl"+>fromAttrl</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXCdataNode"+></A+><B+>isXCdataNode</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXCharRefNode"+></A+><B+>isXCharRefNode</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXCmtNode"+></A+><B+>isXCmtNode</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXDTDNode"+></A+><B+>isXDTDNode</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXAttrNode"+></A+><B+>isXAttrNode</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXEntityRefNode"+></A+><B+>isXEntityRefNode</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXErrorNode"+></A+><B+>isXErrorNode</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXPiNode"+></A+><B+>isXPiNode</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXTagNode"+></A+><B+>isXTagNode</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXTextNode"+></A+><B+>isXTextNode</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisRootNode"+></A+><B+>isRootNode</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisTagNode"+></A+><B+>isTagNode</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisOfTagNode"+></A+><B+>isOfTagNode</B+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"+>TagName</A+> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisAttrNode"+></A+><B+>isAttrNode</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisOfAttrNode"+></A+><B+>isOfAttrNode</B+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AAttrName"+>AttrName</A+> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisTextNode"+></A+><B+>isTextNode</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisOfTextNode"+></A+><B+>isOfTextNode</B+> :: (String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisPiNode"+></A+><B+>isPiNode</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisOfPiNode"+></A+><B+>isOfPiNode</B+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"+>TagName</A+> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisDTDElemNode"+></A+><B+>isDTDElemNode</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisErrorNode"+></A+><B+>isErrorNode</B+> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXTagTree"+></A+><B+>mkXTagTree</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Create a tree with a tag node.+</P+><UL+><LI+> 1.parameter n :  the name of the tag+</LI+><LI+> 2.parameter al :  the tag attribte list+</LI+><LI+> 3.parameter cs :  the list of children+</LI+><LI+> returns : the new tree+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkQTagTree"+></A+><B+>mkQTagTree</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>Version with qualified name of <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXTagTree"+>mkXTagTree</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXNsTagTree"+></A+><B+>mkXNsTagTree</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>create a tree with a namespace aware tag node.+</P+><UL+><LI+> 1.parameter n :  the prefix:localpart of the tag+</LI+><LI+> 2.parameter ns:  the namespace uri+</LI+><LI+> 3.parameter al :  the tag attribte list+</LI+><LI+> 4.parameter cs :  the list of children+</LI+><LI+> returns : the new tree+</LI+></UL+><P+>see also: <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXTagTree"+>mkXTagTree</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnewRoot"+></A+><B+>newRoot</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>creates a new document tree with empty contents.+</P+><UL+><LI+> 1.parameter al : the attribute list for the root node+</LI+></UL+><P+>returns a single node tree with tag name &quot;/&quot; indicating a root and+ with empty list of children+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AemptyRoot"+>emptyRoot</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AemptyRoot"+></A+><B+>emptyRoot</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>the empty document tree+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnewRoot"+>newRoot</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnewDocument"+></A+><B+>newDocument</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>create a new empty document with source name as parameter+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnewDocument%27"+></A+><B+>newDocument'</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>create a new empty document with a list of attributes for source location and options+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnewDocument"+>newDocument</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkRootTree"+></A+><B+>mkRootTree</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>create a document root tree.+</P+><UL+><LI+> 1.parameter al :  the attribute list for the root. This list must contain at+		  least an attribute &quot;source&quot; that contains the URI of the document to be processed+</LI+><LI+> 2.parameter cs :  the list for the document content+</LI+><LI+> returns : the document root+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXTextTree"+></A+><B+>mkXTextTree</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>create a leaf for a text element.+</P+><UL+><LI+> 1.parameter txt :  the text+</LI+><LI+> returns : the tree with the single node containing the text+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXCharRefTree"+></A+><B+>mkXCharRefTree</B+> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>create a leaf for a char reference.+</P+><UL+><LI+> 1.parameter i :  the integer representing the Unicode char+</LI+><LI+> returns : the tree with the single node containing the char reference+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXEntityRefTree"+></A+><B+>mkXEntityRefTree</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>create a leaf for an entity reference.+</P+><UL+><LI+> 1.parameter n :  the name of the entity reference+</LI+><LI+> returns : the tree with the single node containing the entity reference+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXCmtTree"+></A+><B+>mkXCmtTree</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>create a leaf for a comment,+</P+><UL+><LI+> 1.parameter c :  the comment text+</LI+><LI+> returns : the tree with the single node containing the comment+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXDTDTree"+></A+><B+>mkXDTDTree</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>create a tree for a part of a DTD+</P+><UL+><LI+> 1.parameter d :  the type of the DTD part+</LI+><LI+> 2.parameter al :  the attribute list for the DTD part+</LI+><LI+> 3.parameter ds :  the possibly empty list of components for the DTD part+</LI+><LI+> returns : the tree with the composed DTD part+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXAttrTree"+></A+><B+>mkXAttrTree</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>create an attribute tree as part of a tag attribute list of tag nodes+</P+><UL+><LI+> 1.parameter al : the attribute name+</LI+><LI+> 2.parameter av : the attribute value as tree list, usually containing a single text node+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkQAttrTree"+></A+><B+>mkQAttrTree</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>Qualified version of <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXAttrTree"+>mkXAttrTree</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXNsAttrTree"+></A+><B+>mkXNsAttrTree</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>create an attribute tree with a namespace+</P+><UL+><LI+> 1.parameter al : the attribute name+</LI+><LI+> 2.parameter ns : namespace uri+</LI+><LI+> 3.parameter av : the attribute value as tree list, usually containing a single text node+</LI+></UL+><P+>see also: <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXAttrTree"+>mkXAttrTree</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXNsTagTree"+>mkXNsTagTree</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXPERefTree"+></A+><B+>mkXPERefTree</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>create a parameter entity reference DTD part.+</P+><UL+><LI+> 1.parameter ref :  the name of the reference+</LI+><LI+> returns : the DTD part for a PERef+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXPiTree"+></A+><B+>mkXPiTree</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>create a processing instruction tree.+</P+><UL+><LI+> 1.parameter n :  the name of the PI+</LI+><LI+> 2.parameter str :  the content of a PI+</LI+><LI+> returns : the processing instruction tree with a single attribute &quot;value&quot;+      with the str parameter as attribute value, with <TT+>valueOf a_value</TT+> applied to the result tree+      the content of the PI can be selected+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXmlDeclTree"+></A+><B+>mkXmlDeclTree</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>create xml declaration+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXCdataTree"+></A+><B+>mkXCdataTree</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>create a CDATA section tree.+</P+><UL+><LI+> 1.parameter s :  the content of the CDATA section+</LI+><LI+> returns : the tree for the CDATA section+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXErrorTree"+></A+><B+>mkXErrorTree</B+> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>create an error tree.+</P+><UL+><LI+> 1.parameter l :  the level of the error (warning, error fatal)+</LI+><LI+> 2.parameter msg :  the error message+</LI+><LI+> 3.parameter cs :  the context, where the error was detected+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmaybeString2XText"+></A+><B+>maybeString2XText</B+> :: Maybe String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowXText"+></A+><B+>showXText</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowXCharRef"+></A+><B+>showXCharRef</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowXEntityRef"+></A+><B+>showXEntityRef</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowXErrors"+></A+><B+>showXErrors</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Axshow"+></A+><B+>xshow</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>convert the result of a filter into a string+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AxmlTreesToText"+>xmlTreesToText</A+></TT+> for filter version, <TT+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Axread"+>xread</A+></TT+> for the inverse operation +</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlTreesToString"+></A+><B+>xmlTreesToString</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>old name for <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axshow"+>xshow</A+></TT+> (deprecated)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlTreesToText"+></A+><B+>xmlTreesToText</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlSFilter"+>XmlSFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>conversion of a filter result into a text node+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axshow"+>xshow</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlContentModelToString"+></A+><B+>xmlContentModelToString</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowXmlTree"+></A+><B+>showXmlTree</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowXmlTrees"+></A+><B+>showXmlTrees</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowXmlTrees%27"+></A+><B+>showXmlTrees'</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowQName"+></A+><B+>showQName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowQuoteString"+></A+><B+>showQuoteString</B+> :: String -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowAttr"+></A+><B+>showAttr</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowPEAttr"+></A+><B+>showPEAttr</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowExternalId"+></A+><B+>showExternalId</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowNData"+></A+><B+>showNData</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowXmlDTD"+></A+><B+>showXmlDTD</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowElemType"+></A+><B+>showElemType</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowContent"+></A+><B+>showContent</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowEntity"+></A+><B+>showEntity</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowEntityValue"+></A+><B+>showEntityValue</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowBlank"+></A+><B+>showBlank</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowEq"+></A+><B+>showEq</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowLt"+></A+><B+>showLt</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowGt"+></A+><B+>showGt</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowSlash"+></A+><B+>showSlash</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowApos"+></A+><B+>showApos</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowQuot"+></A+><B+>showQuot</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowLpar"+></A+><B+>showLpar</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowRpar"+></A+><B+>showRpar</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowNL"+></A+><B+>showNL</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnameOf"+></A+><B+>nameOf</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>select the name of a node. For tags, attributes and pi's the name string+ is returned, else the empty string.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AlocalPartOf"+></A+><B+>localPartOf</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>select the local part of a name of a node. For tags, attributes the name string+ is returned, for pi's the whole name, else the empty string.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnamespaceOf"+></A+><B+>namespaceOf</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>select the namespace URI of a tag or an attribute tree, else the empty string is returned+ see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnameOf"+>nameOf</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprefixOf"+></A+><B+>prefixOf</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>select the namespace prefix of a tag or an attribute tree, else the empty string is returned+ see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnameOf"+>nameOf</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AlocalPartOf"+>localPartOf</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AuniversalNameOf"+></A+><B+>universalNameOf</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>select the universal name (namespace uri ++ localPart) of a tag or an attribute tree, else the empty string is returned+ see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnameOf"+>nameOf</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnamespaceOf"+>namespaceOf</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AattrlOfDTD"+></A+><B+>attrlOfDTD</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+></TD+></TR+><TR+><TD CLASS="doc"+>select the attributes of a dtd tree+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalueOfDTD"+></A+><B+>valueOfDTD</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>select a special attribute of a DTD part+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AofDTDequals"+></A+><B+>ofDTDequals</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test an attribute of a DTD part+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Axcmt"+></A+><B+>xcmt</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Axerr"+></A+><B+>xerr</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Axwarn"+></A+><B+>xwarn</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Axtext"+></A+><B+>xtext</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Axtag"+></A+><B+>xtag</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Axattr"+></A+><B+>xattr</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtoTreel"+></A+><B+>toTreel</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtoAttrl"+></A+><B+>toAttrl</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfromTreel"+></A+><B+>fromTreel</B+> :: <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfromAttrl"+></A+><B+>fromAttrl</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-DOM-XmlTreeTypes.html view
@@ -0,0 +1,566 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.XmlTreeTypes</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlTreeTypes.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.XmlTreeTypes</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>exports the core data types+ and some additional types and functions+ for compatibility with none arrow modules+</P+><P+>Version : $Id: XmlTreeTypes.hs,v 1.6 2006<EM+>05</EM+>09 15:30:43 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>module <A HREF="Data-Tree-NTree-Filter.html"+>Data.Tree.NTree.Filter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-TypeDefs.html"+>Text.XML.HXT.DOM.TypeDefs</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkNode"+>mkNode</A+> :: node -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>NTrees</A+> node -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AformatNTree"+>formatNTree</A+> :: (node -&gt; String) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AfoldNTree"+>foldNTree</A+> :: (a -&gt; [b] -&gt; b) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a -&gt; b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmapNTree"+>mapNTree</A+> :: (a -&gt; b) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnTreeToList"+>nTreeToList</A+> :: <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a -&gt; [a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AdepthNTree"+>depthNTree</A+> :: <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a -&gt; Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcardNTree"+>cardNTree</A+> :: <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a -&gt; Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AXmlFilter"+>XmlFilter</A+> = <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AXmlSFilter"+>XmlSFilter</A+> = <A HREF="Data-Tree-NTree-Filter.html#t%3ATSFilter"+>TSFilter</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ATagName"+>TagName</A+> = <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AAttrName"+>AttrName</A+> = <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtName"+>tName</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaName"+>aName</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Data-Tree-NTree-Filter.html"+>Data.Tree.NTree.Filter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-TypeDefs.html"+>Text.XML.HXT.DOM.TypeDefs</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkNode"+></A+><B+>mkNode</B+> :: node -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>NTrees</A+> node -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AformatNTree"+></A+><B+>formatNTree</B+> :: (node -&gt; String) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfoldNTree"+></A+><B+>foldNTree</B+> :: (a -&gt; [b] -&gt; b) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a -&gt; b</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmapNTree"+></A+><B+>mapNTree</B+> :: (a -&gt; b) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> b</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnTreeToList"+></A+><B+>nTreeToList</B+> :: <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a -&gt; [a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdepthNTree"+></A+><B+>depthNTree</B+> :: <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a -&gt; Int</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcardNTree"+></A+><B+>cardNTree</B+> :: <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a -&gt; Int</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AXmlFilter"+></A+><B+>XmlFilter</B+> = <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="doc"+>A functions that takes a node and returns a list of nodes+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AXmlSFilter"+></A+><B+>XmlSFilter</B+> = <A HREF="Data-Tree-NTree-Filter.html#t%3ATSFilter"+>TSFilter</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="doc"+>A function that takes a list of nodes and returns a list of nodes+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ATagName"+></A+><B+>TagName</B+> = <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="doc"+>Tag name+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AAttrName"+></A+><B+>AttrName</B+> = <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="doc"+>Attribute name+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtName"+></A+><B+>tName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>shortcut for <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AqualifiedName"+>qualifiedName</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaName"+></A+><B+>aName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>shortcut for <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AqualifiedName"+>qualifiedName</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-DOM.html view
@@ -0,0 +1,169 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>DOM data types and functions+</P+><P+>Version : $Id: DOM.hs,v 1.2 2006<EM+>11</EM+>12 14:52:59 hxml Exp $+</P+><P+>export of all basic datatypes and functions of the toolbox DOM.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-XmlTree.html"+>Text.XML.HXT.DOM.XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-XmlState.html"+>Text.XML.HXT.DOM.XmlState</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-EditFilters.html"+>Text.XML.HXT.DOM.EditFilters</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-FormatXmlTree.html"+>Text.XML.HXT.DOM.FormatXmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-Namespace.html"+>Text.XML.HXT.DOM.Namespace</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-XmlOptions.html"+>Text.XML.HXT.DOM.XmlOptions</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-IO-GetFILE.html view
@@ -0,0 +1,114 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.IO.GetFILE</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/IO/GetFILE.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.IO.GetFILE</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetStdinCont"+></A+><B+>getStdinCont</B+> :: IO (Either String String)</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetCont"+></A+><B+>getCont</B+> :: String -&gt; IO (Either String String)</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-IO-GetHTTPCurl.html view
@@ -0,0 +1,102 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.IO.GetHTTPCurl</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/IO/GetHTTPCurl.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.IO.GetHTTPCurl</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetCont"+></A+><B+>getCont</B+> :: String -&gt; String -&gt; String -&gt; IO (Either String ([(String, String)], String))</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-IO-GetHTTPNative.html view
@@ -0,0 +1,102 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.IO.GetHTTPNative</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/IO/GetHTTPNative.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.IO.GetHTTPNative</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetCont"+></A+><B+>getCont</B+> :: String -&gt; String -&gt; IO (Either String ([(String, String)], String))</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Parser-DTDProcessing.html view
@@ -0,0 +1,328 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.DTDProcessing</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/DTDProcessing.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.DTDProcessing</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: DTDProcessing.hs,v 1.15 2006<EM+>11</EM+>12 14:53:00 hxml Exp $+</P+><P+>DTD processing function for+   including external parts of a DTD+   parameter entity substitution and general entity substitution+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetWellformedDoc"+>getWellformedDoc</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcheckWellformedDoc"+>checkWellformedDoc</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessDTD"+>processDTD</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessGeneralEntities"+>processGeneralEntities</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetWellformedDoc"+></A+><B+>getWellformedDoc</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+><P+>monadic filter for reading, parsing and checking a wellformed document.+ the input tree must consist of a root node with a source attribute+ in its attribute list.+</P+><P+>All attributes from the document root are copied into the system state,+ and may be queried by the monadic filters, e.g. trace options.+</P+><P+>Result is the single element list containing the well-formed document tree+ or, in case of errors, the document root with an empty list as children+ and attributes <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_status"+>a_status</A+></TT+> and <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_module"+>a_module</A+></TT+> for error level and the module,+ where the error occured.+</P+><P+>this is a shortcut for <TT+><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetXmlContents"+>getXmlContents</A+></TT+> .&gt;&gt; <TT+><A HREF="Text-XML-HXT-Parser-DTDProcessing.html#v%3AcheckWellformedDoc"+>checkWellformedDoc</A+></TT+>+</P+><P+>example for a main program:+</P+><PRE+>+ main =+   run' $+   do+   res  &lt;- getWellformedDoc $ newDocument &quot;myfile.xml&quot;+   ...+ </PRE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcheckWellformedDoc"+></A+><B+>checkWellformedDoc</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+>parses a text node with <TT+><A HREF="Text-XML-HXT-Parser-XmlParser.html#v%3AparseXmlDoc"+>parseXmlDoc</A+></TT+>, processes the DTD and general entities+ and transforms all char references into characters+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessDTD"+></A+><B+>processDTD</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>a filter for DTD processing+</P+><P+>inclusion of external parts of DTD,+ parameter entity substitution+ conditional section evaluation+</P+><P+>input tree must represent a complete document including root node+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessGeneralEntities"+></A+><B+>processGeneralEntities</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>substitution of general entities+</P+><P+>input: a complete document tree including root node+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Parser-DefaultURI.html view
@@ -0,0 +1,104 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.DefaultURI</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/DefaultURI.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.DefaultURI</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetDefaultURI"+></A+><B+>setDefaultURI</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Parser-HtmlParsec.html view
@@ -0,0 +1,188 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.HtmlParsec</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/HtmlParsec.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.HtmlParsec</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>HTML Parsec Parser+</P+><P+>Version : $Id: HtmlParsec.hs,v 1.11 2006<EM+>12</EM+>08 11:48:20 hxml Exp $+</P+><P+>This parser tries to interprete everything as HTML+ no errors are emitted during parsing. If something looks+ weired, warning messages are inserted in the document tree+</P+><P+>all filter are pure XmlFilter,+ errror handling and IO is done in <TT+><A HREF="Text-XML-HXT-Parser.html#t%3AHtmlParser"+>HtmlParser</A+></TT+>+ or other modules+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsubstHtmlEntities"+></A+><B+>substHtmlEntities</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseHtmlText"+></A+><B+>parseHtmlText</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseHtmlDocument"+></A+><B+>parseHtmlDocument</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseHtmlContent"+></A+><B+>parseHtmlContent</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxhtmlEntities"+></A+><B+>xhtmlEntities</B+> :: [(String, Int)]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Parser-HtmlParser.html view
@@ -0,0 +1,292 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.HtmlParser</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/HtmlParser.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.HtmlParser</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>HTML Parser+</P+><P+>Version : $Id: HtmlParser.hs,v 1.4 2006<EM+>11</EM+>12 14:53:00 hxml Exp $+</P+><P+>This parser tries to interprete everything as HTML+ no errors are emitted during parsing. If something looks+ weired, warning messages are inserted in the document tree+</P+><P+>module contains state filter for easy parsing and error handling+ real work is done in <TT+><A HREF="Text-XML-HXT-Parser.html#t%3AHtmlParsec"+>HtmlParsec</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetHtmlDoc"+>getHtmlDoc</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseHtmlDoc"+>parseHtmlDoc</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ArunHtmlParser"+>runHtmlParser</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Parser-HtmlParsec.html"+>Text.XML.HXT.Parser.HtmlParsec</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetHtmlDoc"+></A+><B+>getHtmlDoc</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+><P+>read a document and parse it with <TT+><A HREF="Text-XML-HXT-Parser-HtmlParser.html#v%3AparseHtmlDoc"+>parseHtmlDoc</A+></TT+>. The main entry point of this module+</P+><P+>The input tree must be a root tree like in '	Text.XML.HXT.Parser.MainFunctions.getXmlDoc'. The content is read with <TT+><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetXmlContents"+>getXmlContents</A+></TT+>,+ is parsed with <TT+><A HREF="Text-XML-HXT-Parser-HtmlParser.html#v%3AparseHtmlDoc"+>parseHtmlDoc</A+></TT+> and canonicalized (char refs are substituted in content and attributes,+ but comment is preserved)+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-Parser-DTDProcessing.html#v%3AgetWellformedDoc"+>getWellformedDoc</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseHtmlDoc"+></A+><B+>parseHtmlDoc</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>The HTML parsing filter+</P+><P+>The input is parsed with <TT+><A HREF="Text-XML-HXT-Parser-HtmlParser.html#v%3ArunHtmlParser"+>runHtmlParser</A+></TT+>, everything is interpreted as HTML,+ if errors ocuur, the parser will try to do some meaningfull action and continues+ parsing. Afterwards the entitiy references for defined for XHTML are resovled,+ any unresolved reference is transformed into plain text.+</P+><P+>Error messages+ during parsing and entity resolving are added as warning nodes into the resulting tree.+</P+><P+>The warnings are issued, if the 1. parameter noWarnings is set to True,+ afterwards all are removed from the resulting tree.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArunHtmlParser"+></A+><B+>runHtmlParser</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+>The pure HTML parser, usually called via <TT+><A HREF="Text-XML-HXT-Parser-HtmlParser.html#v%3AparseHtmlDoc"+>parseHtmlDoc</A+></TT+>.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Parser-HtmlParsec.html"+>Text.XML.HXT.Parser.HtmlParsec</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Parser-MainFunctions.html view
@@ -0,0 +1,711 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.MainFunctions</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/MainFunctions.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.MainFunctions</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Simple parse functions.+</P+><P+>Version : $Id: MainFunctions.hs,v 1.2 2004<EM+>11</EM+>20 16:53:15 hxml Exp $+</P+><P+>the main building blocks for an application.+ this module exports complex filters and functions for+ common tasks for input and parsing, output and option handling.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXmlDocument"+>getXmlDocument</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; IO (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+>, Int)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AputXmlDocument"+>putXmlDocument</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; IO (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+>, Int)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseDocument"+>parseDocument</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AwriteDocument"+>writeDocument</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXmlDocument"+></A+><B+>getXmlDocument</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; IO (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+>, Int)</TD+></TR+><TR+><TD CLASS="doc"+><P+>convenient function for reading a XML document without+ dealing with state monads, error messages collection and other details+</P+><P+>getXmlDocument calls <TT+><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AparseDocument"+>parseDocument</A+></TT+> with the list of parsing options+ and an url or filename as document source.+</P+><P+>result is a triple+</P+><UL+><LI+> the resulting document tree with a root node containing all+   meta info about the document (options, status info, http header, ...)+</LI+><LI+> the list of errors and warnings+</LI+><LI+> the error level: one of <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_ok"+>c_ok</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_warn"+>c_warn</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"+>c_err</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_fatal"+>c_fatal</A+></TT+>+</LI+></UL+><P+>example for input (see also example in <TT+><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AputXmlDocument"+>putXmlDocument</A+></TT+> and example in <TT+><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AwriteDocument"+>writeDocument</A+></TT+>)+</P+><PRE+> main :: IO ()+ main+   = do+     (res, errs, rc) &lt;- getXmlDocument [] &quot;test.xml&quot;+     if rc &gt;= c_err+       then issueErrors errs+       else processTree res++ issueErrors :: XmlTrees -&gt; IO ()++ processTree :: XmlTree  -&gt; IO ()+</PRE+><P+>for options see <TT+><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AparseDocument"+>parseDocument</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_collect_errors"+>a_collect_errors</A+></TT+> is set implicitly+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AputXmlDocument"+></A+><B+>putXmlDocument</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; IO (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+>, Int)</TD+></TR+><TR+><TD CLASS="doc"+><P+>the inverse operation to <TT+><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AgetXmlDocument"+>getXmlDocument</A+></TT+>+</P+><P+>writes a complete document tree to a file, writing can be+ controlled by options, the real work is done with filter <TT+><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AwriteDocument"+>writeDocument</A+></TT+>.+ useful options are the options of <TT+><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AwriteDocument"+>writeDocument</A+></TT+>.+</P+><P+>result is a pair: 1.part is a list of error messages, 2. part is the return code,+ the status info of the write filter+</P+><P+>this filter is useful, when processing XML in an arbitray context in the IO monad+</P+><P+>an example main program for such an application is:+</P+><PRE+> main :: IO ()+ main+   = do+     (input, readErrs, rc) &lt;- getXmlDocument [...] &quot;test.xml&quot;+     if rc &gt;= c_err+       then issueErrors readErrs+       else processTree input++ processTree :: XmlTree -&gt; IO ()+ processTree t+   = let res = computeNewTree input+     in do+        (writeErrs, rc2) &lt;- putXmlDocument [...] &quot;out.xml&quot; res+        if rc2 &gt;= c_err+          then issueErrors writeErrs+          else return ()++ issueErrors :: XmlTrees -&gt; IO ()++ computeNewTree :: XmlTree -&gt; XmlTree+</PRE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseDocument"+></A+><B+>parseDocument</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+><P+>the main parsing filter+</P+><P+>this filter can be configured by an option list, a list of+ option name, option value pairs.+ the input tree must be a possibly empty document root tree.+ all the options are stored as attributes in this root node to control processing.+</P+><P+>available options:+</P+><UL+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_html"+>a_parse_html</A+></TT+>: use HTML parser, else use XML parser (default)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate"+>a_validate</A+></TT+> : validate document (default), else skip validation+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_check_namespaces"+>a_check_namespaces</A+></TT+> : check namespaces, else skip namespace processing (default)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_canonicalize"+>a_canonicalize</A+></TT+> : canonicalize document (default), else skip canonicalization+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_preserve_comment"+>a_preserve_comment</A+></TT+> : preserve comments during canonicalization, else remove comments (default)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_remove_whitespace"+>a_remove_whitespace</A+></TT+> : remove all whitespace, used for document indentation, else skip this step (default)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_indent"+>a_indent</A+></TT+> : indent document by inserting whitespace, else skip this step (default)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_warnings"+>a_issue_warnings</A+></TT+> : issue warnings, when parsing HTML (default), else ignore HTML parser warnings+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_errors"+>a_issue_errors</A+></TT+> : issue all error messages on stderr (default), or ignore all error messages+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_collect_errors"+>a_collect_errors</A+></TT+> : all error messages are collected during processing and appended to the result document+ 			  for further processing within the calling modules+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_trace"+>a_trace</A+></TT+> : trace level: values: 0 -4+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_proxy"+>a_proxy</A+></TT+> : proxy for http access, e.g. www-cache:3128+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_use_curl"+>a_use_curl</A+></TT+> : for http access via external programm curl, default is native HTTP access+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_options_curl"+>a_options_curl</A+></TT+> : more options for external program curl+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_source"+>a_source</A+></TT+> : the document source url+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_encoding"+>a_encoding</A+></TT+> : default document encoding (<TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf8"+>utf8</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisoLatin1"+>isoLatin1</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AusAscii"+>usAscii</A+></TT+>, ...)+</LI+></UL+><P+>examples:+</P+><PRE+> parseDocument [ (a_source,   &quot;test.xml&quot;)+               , (a_validate, &quot;0&quot;)+               , (a_encoding, isoLatin1)+               ] emptyRoot+</PRE+><P+>reads document &quot;test.xml&quot; without validation and default encoding <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisoLatin1"+>isoLatin1</A+></TT+>+</P+><PRE+> parseDocument [ (a_source,         &quot;http://www.haskell.org/&quot;)+               , (a_parse_html,     &quot;1&quot;)+               , (a_proxy,          &quot;www-cache:3128&quot;)+               , (a_curl,           &quot;1&quot;)+               , (a_issue_warnings, &quot;0&quot;)+               ] emptyRoot+</PRE+><P+>reads Haskell homepage with HTML parser ignoring any warnings and with http access via external program curl and proxy &quot;www-cache&quot; at port 3128+</P+><PRE+> parseDocument [ (a_source,            &quot;http://www.w3c.org/&quot;)+               , (a_parse_html,        &quot;0&quot;)                       -- default+               , (a_validate,          &quot;1&quot;)                       -- default+               , (a_check_namespace,   &quot;1&quot;)+               , (a_remove_whitespace, &quot;1&quot;)+               , (a_trace,             &quot;2&quot;)+               ] emptyRoot+</PRE+><P+>read w3c home page, validate and chech namespaces, remove whitespace between tags, trace activities with level 2+</P+><PRE+> parseDocument [ (a_source,   &quot;test.xml&quot;)+               , (a_validate,        &quot;1&quot;)+               , (a_check_namespace, &quot;1&quot;)+               , (a_collect_errors,  &quot;1&quot;)+               , (a_issue_errors,    &quot;0&quot;)+               ] emptyRoot+</PRE+><P+>reads file &quot;test.xml&quot;, validates it, checks namespaces, does not issue any erros+ but collects errors and appends the list of errors to the single element list for the document.+ this enables the calling application to define own error handlers.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AwriteDocument"+></A+><B+>writeDocument</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+><P+>the main filter for writing documents+</P+><P+>this filter can be configured by an option list like <TT+><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AgetXmlDocument"+>getXmlDocument</A+></TT+>+</P+><P+>available options are+</P+><UL+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_indent"+>a_indent</A+></TT+> : indent document for readability, (default: no indentation)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_remove_whitespace"+>a_remove_whitespace</A+></TT+> : remove all redundant whitespace for shorten text (default: no removal)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_file"+>a_output_file</A+></TT+> : destination file for document, default is &quot;-&quot; for stdout+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_encoding"+>a_output_encoding</A+></TT+> : encoding of document, default is <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_encoding"+>a_encoding</A+></TT+> or <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf8"+>utf8</A+></TT+>+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_xml"+>a_output_xml</A+></TT+> : (default) issue XML: quote special XML chars &gt;,&lt;,&quot;,',&amp;+                    add XML processing instruction+                    and encode document with respect to <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_encoding"+>a_output_encoding</A+></TT+>,+                    if explizitly switched of, the plain text is issued, this is useful+                    for non XML output, e.g. generated Haskell code, LaTex, Java, ...+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_show_tree"+>a_show_tree</A+></TT+> : show tree representation of document (for debugging)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_show_haskell"+>a_show_haskell</A+></TT+> : show Haskell representaion of document (for debugging)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_errors"+>a_issue_errors</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_collect_errors"+>a_collect_errors</A+></TT+> : see <TT+><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AparseDocument"+>parseDocument</A+></TT+>+</LI+></UL+><P+>a typical main program running in the XmlState monad+  has the following structure:+</P+><PRE+>+ main :: IO ()+ main+     = do+       argv &lt;- getArgs                                              -- get the commandline arguments+       (inp, outp, options) &lt;- cmdlineOpts argv                     -- and evaluate them, return a key-value list+                                                                    -- and input and output+       res  &lt;- run' $ application inp outp options $ emptyRoot      -- run the application+ +       exitWith (if null res+                 then ExitFailure (-1)+                 else exitSuccess+                )++ application :: String -&gt; String -&gt; Attributes -&gt; XmlStateFilter ()+ application inp outp al+   = parseDocument (al ++ [(a_source, inp)])                        -- set options and source+     .&gt;&gt;                                                            -- and parse document+     processDocument                                                -- the hard work+     .&gt;&gt;+     writeDocument [(a_output_file, outp)]                          -- issue results+     .&gt;&gt;+     checkStatus                                                    -- check errors++</PRE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Parser-ProtocolHandler.html view
@@ -0,0 +1,104 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.ProtocolHandler</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandler.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.ProtocolHandler</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetProtocolHandler"+></A+><B+>getProtocolHandler</B+> :: String -&gt; URI -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerFile.html view
@@ -0,0 +1,104 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.ProtocolHandlerFile</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandlerFile.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.ProtocolHandlerFile</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetFileContents"+></A+><B+>getFileContents</B+> :: URI -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html view
@@ -0,0 +1,104 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.ProtocolHandlerHttpCurl</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandlerHttpCurl.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.ProtocolHandlerHttpCurl</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetHttpContentsWithCurl"+></A+><B+>getHttpContentsWithCurl</B+> :: URI -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html view
@@ -0,0 +1,104 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.ProtocolHandlerHttpNative</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandlerHttpNative.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.ProtocolHandlerHttpNative</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetHttpContentsWithHttp"+></A+><B+>getHttpContentsWithHttp</B+> :: URI -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html view
@@ -0,0 +1,104 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.ProtocolHandlerHttpNativeOrCurl</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandlerHttpNativeOrCurl.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.ProtocolHandlerHttpNativeOrCurl</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetHttpContentsNativeOrWithCurl"+></A+><B+>getHttpContentsNativeOrWithCurl</B+> :: URI -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerUtil.html view
@@ -0,0 +1,102 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.ProtocolHandlerUtil</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandlerUtil.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.ProtocolHandlerUtil</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseContentType"+></A+><B+>parseContentType</B+> :: Parser [(String, String)]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Parser-XmlCharParser.html view
@@ -0,0 +1,338 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.XmlCharParser</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlCharParser.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.XmlCharParser</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>UTF-8 character parser and simple XML token parsers+</P+><P+>Version : $Id: XmlCharParser.hs,v 1.2 2005<EM+>05</EM+>31 16:01:12 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlChar"+>xmlChar</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlNameChar"+>xmlNameChar</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlNameStartChar"+>xmlNameStartChar</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlNCNameChar"+>xmlNCNameChar</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlNCNameStartChar"+>xmlNCNameStartChar</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlLetter"+>xmlLetter</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlSpaceChar"+>xmlSpaceChar</A+> :: GenParser Char state Char</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlChar"+></A+><B+>xmlChar</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+></TD+></TR+><TR+><TD CLASS="doc"+>parse a single Unicode character+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlNameChar"+></A+><B+>xmlNameChar</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+></TD+></TR+><TR+><TD CLASS="doc"+>parse a XML name character+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlNameStartChar"+></A+><B+>xmlNameStartChar</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+></TD+></TR+><TR+><TD CLASS="doc"+>parse a XML name start character+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlNCNameChar"+></A+><B+>xmlNCNameChar</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+></TD+></TR+><TR+><TD CLASS="doc"+>parse a XML NCName character+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlNCNameStartChar"+></A+><B+>xmlNCNameStartChar</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+></TD+></TR+><TR+><TD CLASS="doc"+>parse a XML NCName start character+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlLetter"+></A+><B+>xmlLetter</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+></TD+></TR+><TR+><TD CLASS="doc"+>parse a XML letter character+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlSpaceChar"+></A+><B+>xmlSpaceChar</B+> :: GenParser Char state Char</TD+></TR+><TR+><TD CLASS="doc"+><P+>White Space (2.3)+</P+><P+>end of line handling (2.11)+ #x0D and #x0D#x0A are mapped to #x0A+ is done in XmlInput before parsing+ otherwise #x0D in internal parsing, e.g. for entities would normalize,+ would be transformed+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Parser-XmlDTDParser.html view
@@ -0,0 +1,330 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.XmlDTDParser</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlDTDParser.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.XmlDTDParser</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: XmlDTDParser.hs,v 1.6 2005<EM+>09</EM+>02 17:09:39 hxml Exp $+</P+><P+>Parsec parser for DTD declarations for ELEMENT, ATTLIST, ENTITY and NOTATION declarations+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseXmlDTDdecl"+>parseXmlDTDdecl</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseXmlDTDdeclPart"+>parseXmlDTDdeclPart</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseXmlDTDEntityValue"+>parseXmlDTDEntityValue</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AelementDecl"+>elementDecl</A+> :: SParser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AattlistDecl"+>attlistDecl</A+> :: SParser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AentityDecl"+>entityDecl</A+> :: SParser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnotationDecl"+>notationDecl</A+> :: SParser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlDTDdecl"+></A+><B+>parseXmlDTDdecl</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>parse a tokenized DTD declaration represented by a DTD tree.+ The content is represented by the children containing text and parameter entity reference nodes.+ The parameter entity reference nodes contain their value in the children list, consisting of text+ and possibly again parameter entity reference nodes. This structure is build by the parameter entity+ substitution.+ Output is again a DTD declaration node, but this time completely parsed and ready for further DTD processing+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlDTDdeclPart"+></A+><B+>parseXmlDTDdeclPart</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlDTDEntityValue"+></A+><B+>parseXmlDTDEntityValue</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AelementDecl"+></A+><B+>elementDecl</B+> :: SParser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AattlistDecl"+></A+><B+>attlistDecl</B+> :: SParser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AentityDecl"+></A+><B+>entityDecl</B+> :: SParser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnotationDecl"+></A+><B+>notationDecl</B+> :: SParser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Parser-XmlDTDTokenParser.html view
@@ -0,0 +1,240 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.XmlDTDTokenParser</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlDTDTokenParser.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.XmlDTDTokenParser</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: XmlDTDTokenParser.hs,v 1.4 2005<EM+>09</EM+>02 17:09:39 hxml Exp $+</P+><P+>Parsec parser for tokenizing DTD declarations for ELEMENT, ATTLIST, ENTITY and NOTATION+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdtdDeclTokenizer"+></A+><B+>dtdDeclTokenizer</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdtdDeclStart"+></A+><B+>dtdDeclStart</B+> :: GenParser Char state (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+>, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+>)</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdtdDeclEnd"+></A+><B+>dtdDeclEnd</B+> :: GenParser Char state ()</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdtdToken"+></A+><B+>dtdToken</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ApeReference"+></A+><B+>peReference</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AattrValue"+></A+><B+>attrValue</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdtdChars"+></A+><B+>dtdChars</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Apercent"+></A+><B+>percent</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Parser-XmlInput.html view
@@ -0,0 +1,536 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.XmlInput</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlInput.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.XmlInput</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXmlContents"+>getXmlContents</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXmlEntityContents"+>getXmlEntityContents</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetUrlContents"+>getUrlContents</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetContentLength"+>getContentLength</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AguessDocEncoding"+>guessDocEncoding</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ArunInLocalURIContext"+>runInLocalURIContext</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ArunInNewURIContext"+>runInNewURIContext</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetBaseURI"+>getBaseURI</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetBaseURI"+>setBaseURI</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetAbsolutURI"+>getAbsolutURI</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisStandaloneDocument"+>isStandaloneDocument</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state Bool</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXmlContents"+></A+><B+>getXmlContents</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>filter for reading the content of a XML document+</P+><P+>input is a root node with the source as an attibute+ the text is read, the encoding scheme is parsed and selected+ and the input is translated into the internal UTF-8 string representation+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXmlEntityContents"+></A+><B+>getXmlEntityContents</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>filter for reading the content of an external XML entity+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetXmlContents"+>getXmlContents</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetUrlContents"+></A+><B+>getUrlContents</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>the hard io operations+</P+><P+>for reading a file or accessing a document via http+ input must be a root node with a <TT+>source</TT+> attribute specifying the URI+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetContentLength"+></A+><B+>getContentLength</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>compute the length of the data for a document read previously+ by a call of 'getUrlContents. The result is stored as an attribute+ value in the document root node. the attribute name is <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_contentLength"+>a_contentLength</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AguessDocEncoding"+></A+><B+>guessDocEncoding</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>guessEncoding uses encoding attribute and content+ to determine the encoding scheme.+</P+><P+>it's assumed that an encoding spec has been tried to parse before guessing the encoding.+</P+><P+>UTF-8 is the default encoding+</P+><P+>other supported encodings are ISO-8859-1 (also known as ISO-Latin-1),+ US-ASCII, UTF-16 or ISO-10646-UCS-2, UTF-16BE, UTF-16LE+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArunInLocalURIContext"+></A+><B+>runInLocalURIContext</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>filter command for saving and restoring+ the base URI+</P+><UL+><LI+> 1.parameter f :  the filter that possible changes the base URI+</LI+><LI+> returns : a filter with the same effect as f, that restores the base URI after application of f+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArunInNewURIContext"+></A+><B+>runInNewURIContext</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+>filter command for running an action in a new URI context+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetBaseURI"+></A+><B+>getBaseURI</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state String</TD+></TR+><TR+><TD CLASS="doc"+><P+>read the current base URI+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AsetBaseURI"+>setBaseURI</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetBaseURI"+></A+><B+>setBaseURI</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="doc"+><P+>set the base URI, all other URIs are handled relative to this base URI+</P+><P+>the default base URI is <TT+>file:///&lt;current-working-dir&gt;/</TT+>+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetBaseURI"+>getBaseURI</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetAbsolutURI"+></A+><B+>getAbsolutURI</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state String</TD+></TR+><TR+><TD CLASS="doc"+><P+>transform an URI into an absolut URI using the current base URI+</P+><UL+><LI+> 1.parameter uri :  the URI as string+</LI+><LI+> returns : the absolut URI as string or &quot;&quot; in case of an error+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisStandaloneDocument"+></A+><B+>isStandaloneDocument</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state Bool</TD+></TR+><TR+><TD CLASS="doc"+>predicate for testing the standalone document attribute+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Parser-XmlOutput.html view
@@ -0,0 +1,462 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.XmlOutput</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlOutput.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.XmlOutput</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>output functions+ implemented as filer+</P+><P+>Version : $Id: XmlOutput.hs,v 1.3 2005<EM+>04</EM+>14 12:52:53 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AputXmlDoc"+>putXmlDoc</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AputXmlDocToFile"+>putXmlDocToFile</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AputXmlTree"+>putXmlTree</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AputXmlSource"+>putXmlSource</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhPutXmlDoc"+>hPutXmlDoc</A+> :: Handle -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhPutXmlTree"+>hPutXmlTree</A+> :: Handle -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhPutXmlSource"+>hPutXmlSource</A+> :: Handle -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtraceF"+>traceF</A+> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtraceMsg"+>traceMsg</A+> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtraceTree"+>traceTree</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtraceSource"+>traceSource</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AputXmlDoc"+></A+><B+>putXmlDoc</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>document output for standard output+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AhPutXmlDoc"+>hPutXmlDoc</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AputXmlDocToFile"+></A+><B+>putXmlDocToFile</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>document output on a given file name+</P+><P+>Result is the input document+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AhPutXmlDoc"+>hPutXmlDoc</A+></TT+>, <TT+><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AputXmlDoc"+>putXmlDoc</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AputXmlTree"+></A+><B+>putXmlTree</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AputXmlSource"+></A+><B+>putXmlSource</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhPutXmlDoc"+></A+><B+>hPutXmlDoc</B+> :: Handle -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>document output for arbitrary files.+</P+><P+>Result is the input document+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhPutXmlTree"+></A+><B+>hPutXmlTree</B+> :: Handle -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+>output of tree representation for trace+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhPutXmlSource"+></A+><B+>hPutXmlSource</B+> :: Handle -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+>output of text representation for trace+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtraceF"+></A+><B+>traceF</B+> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtraceMsg"+></A+><B+>traceMsg</B+> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtraceTree"+></A+><B+>traceTree</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtraceSource"+></A+><B+>traceSource</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Parser-XmlParsec.html view
@@ -0,0 +1,1206 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.XmlParsec</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlParsec.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.XmlParsec</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: XmlParsec.hs,v 1.14 2005<EM+>09</EM+>02 17:09:39 hxml Exp $+</P+><P+>Xml Parsec parser with pure filter interface+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AcharData"+>charData</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcharData%27"+>charData'</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Acomment"+>comment</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ApI"+>pI</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcDSect"+>cDSect</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Adocument"+>document</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Adocument%27"+>document'</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aprolog"+>prolog</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxMLDecl"+>xMLDecl</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxMLDecl%27"+>xMLDecl'</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AversionInfo"+>versionInfo</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Amisc"+>misc</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Adoctypedecl"+>doctypedecl</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Amarkupdecl"+>markupdecl</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsDDecl"+>sDDecl</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aelement"+>element</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Acontent"+>content</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcontentWithTextDecl"+>contentWithTextDecl</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtextDecl"+>textDecl</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AencodingDecl"+>encodingDecl</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Axread"+>xread</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseXmlAttrValue"+>parseXmlAttrValue</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseXmlContent"+>parseXmlContent</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseXmlDocEncodingSpec"+>parseXmlDocEncodingSpec</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseXmlDocument"+>parseXmlDocument</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseXmlDTDPart"+>parseXmlDTDPart</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseXmlEncodingSpec"+>parseXmlEncodingSpec</A+> :: Parser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseXmlEntityEncodingSpec"+>parseXmlEntityEncodingSpec</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseXmlGeneralEntityValue"+>parseXmlGeneralEntityValue</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseXmlPart"+>parseXmlPart</A+> :: Parser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseXmlText"+>parseXmlText</A+> :: Parser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseNMToken"+>parseNMToken</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseName"+>parseName</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AremoveEncodingSpec"+>removeEncodingSpec</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsubstXmlEntities"+>substXmlEntities</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlEntities"+>xmlEntities</A+> :: [(String, Int)]</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcharData"+></A+><B+>charData</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcharData%27"+></A+><B+>charData'</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Acomment"+></A+><B+>comment</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ApI"+></A+><B+>pI</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcDSect"+></A+><B+>cDSect</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Adocument"+></A+><B+>document</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Adocument%27"+></A+><B+>document'</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aprolog"+></A+><B+>prolog</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxMLDecl"+></A+><B+>xMLDecl</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxMLDecl%27"+></A+><B+>xMLDecl'</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AversionInfo"+></A+><B+>versionInfo</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Amisc"+></A+><B+>misc</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Adoctypedecl"+></A+><B+>doctypedecl</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Amarkupdecl"+></A+><B+>markupdecl</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsDDecl"+></A+><B+>sDDecl</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aelement"+></A+><B+>element</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Acontent"+></A+><B+>content</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcontentWithTextDecl"+></A+><B+>contentWithTextDecl</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtextDecl"+></A+><B+>textDecl</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AencodingDecl"+></A+><B+>encodingDecl</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Axread"+></A+><B+>xread</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>the inverse function to <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axshow"+>xshow</A+></TT+>, (for XML content).+</P+><P+>the string parameter is parsed with the XML content parser.+ result is the list of trees or in case of an error a single element list with the+ error message as node. No entity or character subtitution is done.+ For substitution of predefined XML entities <TT+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AsubstXmlEntities"+>substXmlEntities</A+></TT+> can be used.+</P+><P+>see also: <TT+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlContent"+>parseXmlContent</A+></TT+>, <TT+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AsubstXmlEntities"+>substXmlEntities</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlAttrValue"+></A+><B+>parseXmlAttrValue</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Parser for attribute values+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlContent"+></A+><B+>parseXmlContent</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>the filter version of <TT+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Axread"+>xread</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlDocEncodingSpec"+></A+><B+>parseXmlDocEncodingSpec</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlDocument"+></A+><B+>parseXmlDocument</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlDTDPart"+></A+><B+>parseXmlDTDPart</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Parser for parts of a DTD+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlEncodingSpec"+></A+><B+>parseXmlEncodingSpec</B+> :: Parser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>try to parse a xml encoding spec.+</P+><UL+><LI+> 1.parameter encParse :  the parser for the encoding decl+</LI+><LI+> 2.parameter root :  a document root+</LI+><LI+> returns : the same tree, but with an additional+			  attribute <A HREF="encoding.html"+>encoding</A+> in the root node+			  in case of a valid encoding spec+			  else the unchanged tree+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlEntityEncodingSpec"+></A+><B+>parseXmlEntityEncodingSpec</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlGeneralEntityValue"+></A+><B+>parseXmlGeneralEntityValue</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Parser for general entites+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlPart"+></A+><B+>parseXmlPart</B+> :: Parser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>general parser for parsing arbitray parts of a XML document+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlText"+></A+><B+>parseXmlText</B+> :: Parser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>a more general version of <TT+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlContent"+>parseXmlContent</A+></TT+>.+ The parser to be used and the context are extra parameter+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseNMToken"+></A+><B+>parseNMToken</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Parser for NMTOKENs+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseName"+></A+><B+>parseName</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Parser for XML names+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveEncodingSpec"+></A+><B+>removeEncodingSpec</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsubstXmlEntities"+></A+><B+>substXmlEntities</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Filter for substitution of all occurences the predefined XML entites quot, amp, lt, gt, apos+ by equivalent character references+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlEntities"+></A+><B+>xmlEntities</B+> :: [(String, Int)]</TD+></TR+><TR+><TD CLASS="doc"+><P+>list of predefined XML entity names and their unicode values+</P+><P+>used by <TT+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AsubstXmlEntities"+>substXmlEntities</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Parser-XmlParser.html view
@@ -0,0 +1,189 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.XmlParser</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlParser.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.XmlParser</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Xml Parser: the main parse filter +</P+><P+>Version : $Id: XmlParser.hs,v 1.5 2005<EM+>06</EM+>06 15:57:19 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Parser-XmlParsec.html"+>Text.XML.HXT.Parser.XmlParsec</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Parser-XmlTokenParser.html"+>Text.XML.HXT.Parser.XmlTokenParser</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseXmlDoc"+>parseXmlDoc</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Parser-XmlParsec.html"+>Text.XML.HXT.Parser.XmlParsec</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Parser-XmlTokenParser.html"+>Text.XML.HXT.Parser.XmlTokenParser</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlDoc"+></A+><B+>parseXmlDoc</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+>The monadic parser for a whole document.+ input must be a root node with a single text child.+ Error messages are issued and global error state is set.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Parser-XmlTokenParser.html view
@@ -0,0 +1,788 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.XmlTokenParser</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlTokenParser.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.XmlTokenParser</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: XmlTokenParser.hs,v 1.3 2005<EM+>09</EM+>02 17:09:39 hxml Exp $+</P+><P+>Parsec parser for XML tokens+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AallBut"+></A+><B+>allBut</B+> :: (GenParser Char state Char -&gt; GenParser Char state String) -&gt; String -&gt; GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AallBut1"+></A+><B+>allBut1</B+> :: (GenParser Char state Char -&gt; GenParser Char state String) -&gt; (Char -&gt; Bool) -&gt; String -&gt; GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AasciiLetter"+></A+><B+>asciiLetter</B+> :: GenParser Char state Char</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AattrValue"+></A+><B+>attrValue</B+> :: GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Abar"+></A+><B+>bar</B+> :: GenParser Char state ()</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcharRef"+></A+><B+>charRef</B+> :: GenParser Char state Int</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Acomma"+></A+><B+>comma</B+> :: GenParser Char state ()</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Adq"+></A+><B+>dq</B+> :: GenParser Char state Char</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AencName"+></A+><B+>encName</B+> :: GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AentityRef"+></A+><B+>entityRef</B+> :: GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AentityValue"+></A+><B+>entityValue</B+> :: GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aeq"+></A+><B+>eq</B+> :: GenParser Char state ()</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Agt"+></A+><B+>gt</B+> :: GenParser Char state Char</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Akeyword"+></A+><B+>keyword</B+> :: String -&gt; GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Akeywords"+></A+><B+>keywords</B+> :: [String] -&gt; GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Alpar"+></A+><B+>lpar</B+> :: GenParser Char state ()</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Alt"+></A+><B+>lt</B+> :: GenParser Char state Char</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aname"+></A+><B+>name</B+> :: GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Anames"+></A+><B+>names</B+> :: GenParser Char state [String]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AncName"+></A+><B+>ncName</B+> :: GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Anmtoken"+></A+><B+>nmtoken</B+> :: GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Anmtokens"+></A+><B+>nmtokens</B+> :: GenParser Char state [String]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ApeReference"+></A+><B+>peReference</B+> :: GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ApubidLiteral"+></A+><B+>pubidLiteral</B+> :: GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AqName"+></A+><B+>qName</B+> :: GenParser Char state (String, String)</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aquoted"+></A+><B+>quoted</B+> :: GenParser Char state a -&gt; GenParser Char state a</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Areference"+></A+><B+>reference</B+> :: GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Arpar"+></A+><B+>rpar</B+> :: GenParser Char state ()</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Asemi"+></A+><B+>semi</B+> :: GenParser Char state Char</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aseparator"+></A+><B+>separator</B+> :: Char -&gt; GenParser Char state ()</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsingleChar"+></A+><B+>singleChar</B+> :: String -&gt; GenParser Char state Char</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsingleChars"+></A+><B+>singleChars</B+> :: String -&gt; GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AskipS"+></A+><B+>skipS</B+> :: GenParser Char state ()</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AskipS0"+></A+><B+>skipS0</B+> :: GenParser Char state ()</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsPace"+></A+><B+>sPace</B+> :: GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsPace0"+></A+><B+>sPace0</B+> :: GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Asq"+></A+><B+>sq</B+> :: GenParser Char state Char</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsystemLiteral"+></A+><B+>systemLiteral</B+> :: GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AversionNum"+></A+><B+>versionNum</B+> :: GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AconcRes"+></A+><B+>concRes</B+> :: GenParser Char state [[a]] -&gt; GenParser Char state [a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkList"+></A+><B+>mkList</B+> :: GenParser Char state a -&gt; GenParser Char state [a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnameT"+></A+><B+>nameT</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnmtokenT"+></A+><B+>nmtokenT</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AentityValueT"+></A+><B+>entityValueT</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AentityTokensT"+></A+><B+>entityTokensT</B+> :: String -&gt; GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AentityCharT"+></A+><B+>entityCharT</B+> :: String -&gt; GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AattrValueT"+></A+><B+>attrValueT</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AattrValueT%27"+></A+><B+>attrValueT'</B+> :: String -&gt; GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AreferenceT"+></A+><B+>referenceT</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcharRefT"+></A+><B+>charRefT</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AentityRefT"+></A+><B+>entityRefT</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ApeReferenceT"+></A+><B+>peReferenceT</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsingleCharsT"+></A+><B+>singleCharsT</B+> :: String -&gt; GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Parser.html view
@@ -0,0 +1,193 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Simple parse functions.+</P+><P+>Version : $Id: Parser.hs,v 1.2 2006<EM+>11</EM+>09 20:27:42 hxml Exp $+</P+><P+>the <A HREF="main.html"+>main</A+> building blocks for an application.+ this module exports all important functions for parsing, validating and transforming XML.+ it also exports all basic datatypes and functions of the toolbox.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM.html"+>Text.XML.HXT.DOM</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Parser-XmlParser.html"+>Text.XML.HXT.Parser.XmlParser</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Parser-HtmlParser.html"+>Text.XML.HXT.Parser.HtmlParser</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Parser-XmlInput.html"+>Text.XML.HXT.Parser.XmlInput</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Parser-XmlOutput.html"+>Text.XML.HXT.Parser.XmlOutput</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Parser-DTDProcessing.html"+>Text.XML.HXT.Parser.DTDProcessing</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Parser-MainFunctions.html"+>Text.XML.HXT.Parser.MainFunctions</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Validator-Validation.html"+>Text.XML.HXT.Validator.Validation</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-RelaxNG-CreatePattern.html view
@@ -0,0 +1,223 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.RelaxNG.CreatePattern</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/CreatePattern.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.RelaxNG.CreatePattern</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>Creates the <TT+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+></TT+> datastructure from a simplified Relax NG schema. + The created datastructure is used in the validation algorithm+ (see also: <A HREF="Text-XML-HXT-RelaxNG-Validation.html"+>Text.XML.HXT.RelaxNG.Validation</A+>)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AcreatePatternFromXmlTree"+>createPatternFromXmlTree</A+> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcreateNameClass"+>createNameClass</A+> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"+>NameClass</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html"+>Text.XML.HXT.RelaxNG.PatternFunctions</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcreatePatternFromXmlTree"+></A+><B+>createPatternFromXmlTree</B+> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+></TD+></TR+><TR+><TD CLASS="doc"+>Creates the <TT+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+></TT+> datastructure from a simplified Relax NG schema.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcreateNameClass"+></A+><B+>createNameClass</B+> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"+>NameClass</A+></TD+></TR+><TR+><TD CLASS="doc"+>Creates a <TT+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"+>NameClass</A+></TT+> from an &quot;anyName&quot;-, &quot;nsName&quot;- or  &quot;name&quot;-Pattern, +</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html"+>Text.XML.HXT.RelaxNG.PatternFunctions</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-RelaxNG-DataTypeLibMysql.html view
@@ -0,0 +1,185 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.RelaxNG.DataTypeLibMysql</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/DataTypeLibMysql.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.RelaxNG.DataTypeLibMysql</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Datatype library for the MySQL datatypes+</P+><P+>$Id: DataTypeLibMysql.hs,v 1.1 2005<EM+>09</EM+>02 17:09:39 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AmysqlNS"+>mysqlNS</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmysqlDatatypeLib"+>mysqlDatatypeLib</A+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeLibrary"+>DatatypeLibrary</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmysqlNS"+></A+><B+>mysqlNS</B+> :: String</TD+></TR+><TR+><TD CLASS="doc"+>Namespace of the MySQL datatype library+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmysqlDatatypeLib"+></A+><B+>mysqlDatatypeLib</B+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeLibrary"+>DatatypeLibrary</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>The main entry point to the MySQL datatype library.+</P+><P+>The <TT+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3ADTC"+>DTC</A+></TT+> constructor exports the list of supported datatypes and params.+ It also exports the specialized functions to validate a XML instance value with+ respect to a datatype.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html view
@@ -0,0 +1,342 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/DataTypeLibUtils.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>exports helper functions for the integration of new datatype-libraries+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AcheckString"+>checkString</A+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"+>DatatypeName</A+> -&gt; String -&gt; Int -&gt; Int -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"+>ParamList</A+> -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcheckNumeric"+>checkNumeric</A+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"+>DatatypeName</A+> -&gt; String -&gt; Int -&gt; Int -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"+>ParamList</A+> -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AerrorMsgEqual"+>errorMsgEqual</A+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"+>DatatypeName</A+> -&gt; String -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-Util.html"+>Text.XML.HXT.DOM.Util</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-RelaxNG-Utils.html"+>Text.XML.HXT.RelaxNG.Utils</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html"+>Text.XML.HXT.RelaxNG.DataTypes</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcheckString"+></A+><B+>checkString</B+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"+>DatatypeName</A+> -&gt; String -&gt; Int -&gt; Int -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"+>ParamList</A+> -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="doc"+><P+>Tests whether a &quot;string&quot; datatype value is between the lower and +upper bound of the datatype and matches all parameters.+</P+><P+>All tests are performed on the string value.+</P+><UL+><LI+> 1.parameter  :  datatype+</LI+><LI+> 2.parameter  :  datatype value+</LI+><LI+> 3.parameter  :  lower bound of the datatype range+</LI+><LI+> 4.parameter  :  upper bound of the datatype range (-1 = no upper bound) +</LI+><LI+> 5.parameter  :  list of parameters+</LI+><LI+> return : Just &quot;Errormessage&quot; in case of an error, else Nothing+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcheckNumeric"+></A+><B+>checkNumeric</B+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"+>DatatypeName</A+> -&gt; String -&gt; Int -&gt; Int -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"+>ParamList</A+> -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="doc"+><P+>Tests whether a &quot;numeric&quot; datatype value is between the lower and upper +bound of the datatype and matches all parameters.+</P+><P+>First, the string value is parsed into a numeric representation.+If no error occur, all following tests are performed on the numeric value.+</P+><UL+><LI+> 1.parameter  :  datatype+</LI+><LI+> 2.parameter  :  datatype value+</LI+><LI+> 3.parameter  :  lower bound of the datatype range+</LI+><LI+> 4.parameter  :  upper bound of the datatype range (-1 = no upper bound) +</LI+><LI+> 5.parameter  :  list of parameters+</LI+><LI+> return : Just &quot;Errormessage&quot; in case of an error, else Nothing+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AerrorMsgEqual"+></A+><B+>errorMsgEqual</B+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"+>DatatypeName</A+> -&gt; String -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>Error Message for the equality test of two datatype values+</P+><UL+><LI+> 1.parameter  :  datatype+</LI+><LI+> 2.parameter  :  datatype value+</LI+><LI+> 3.parameter  :  datatype value+</LI+></UL+><P+>example:+</P+><PRE+> errorMsgEqual &quot;Int&quot; &quot;21&quot; &quot;42&quot; -&gt; &quot;Datatype Int with value = 21 expected, but value = 42 found&quot;+</PRE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-Util.html"+>Text.XML.HXT.DOM.Util</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-RelaxNG-Utils.html"+>Text.XML.HXT.RelaxNG.Utils</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html"+>Text.XML.HXT.RelaxNG.DataTypes</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-RelaxNG-DataTypeLibW3C.html view
@@ -0,0 +1,178 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.RelaxNG.DataTypeLibW3C</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/DataTypeLibW3C.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.RelaxNG.DataTypeLibW3C</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>Datatype library for the W3C XML schema datatypes+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3Aw3cNS"+>w3cNS</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aw3cDatatypeLib"+>w3cDatatypeLib</A+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeLibrary"+>DatatypeLibrary</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aw3cNS"+></A+><B+>w3cNS</B+> :: String</TD+></TR+><TR+><TD CLASS="doc"+>Namespace of the W3C XML schema datatype library+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aw3cDatatypeLib"+></A+><B+>w3cDatatypeLib</B+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeLibrary"+>DatatypeLibrary</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>The main entry point to the W3C XML schema datatype library.+</P+><P+>The <TT+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3ADTC"+>DTC</A+></TT+> constructor exports the list of supported datatypes and params.+ It also exports the specialized functions to validate a XML instance value with+ respect to a datatype.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-RelaxNG-DataTypeLibraries.html view
@@ -0,0 +1,272 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.RelaxNG.DataTypeLibraries</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/DataTypeLibraries.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.RelaxNG.DataTypeLibraries</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>This modul exports the list of supported datatype libraries.+ It also exports the main functions to validate in XML instance value+ with respect to a datatype.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AdatatypeLibraries"+>datatypeLibraries</A+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeLibraries"+>DatatypeLibraries</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AdatatypeEqual"+>datatypeEqual</A+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"+>Uri</A+> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeEqual"+>DatatypeEqual</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AdatatypeAllows"+>datatypeAllows</A+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"+>Uri</A+> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeAllows"+>DatatypeAllows</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdatatypeLibraries"+></A+><B+>datatypeLibraries</B+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeLibraries"+>DatatypeLibraries</A+></TD+></TR+><TR+><TD CLASS="doc"+>List of all supported datatype libraries which can be + used within the Relax NG validator modul.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdatatypeEqual"+></A+><B+>datatypeEqual</B+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"+>Uri</A+> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeEqual"+>DatatypeEqual</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Tests whether a XML instance value matches a value-pattern.+</P+><P+>The following tests are performed:+</P+><UL+><LI+> 1. :  does the uri exist in the list of supported datatype libraries+</LI+><LI+> 2. :  does the library support the datatype+</LI+><LI+> 3. :  does the XML instance value match the value-pattern+</LI+></UL+><P+>The hard work is done by the specialized <TT+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeEqual"+>DatatypeEqual</A+></TT+> function +(see also: <TT+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeCheck"+>DatatypeCheck</A+></TT+>) of the datatype library.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdatatypeAllows"+></A+><B+>datatypeAllows</B+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"+>Uri</A+> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeAllows"+>DatatypeAllows</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Tests whether a XML instance value matches a data-pattern.+</P+><P+>The following tests are performed:+</P+><UL+><LI+> 1. :  does the uri exist in the list of supported datatype libraries+</LI+><LI+> 2. :  does the library support the datatype+</LI+><LI+> 3. :  does the XML instance value match the data-pattern+</LI+><LI+> 4. :  does the XML instance value match all params+</LI+></UL+><P+>The hard work is done by the specialized <TT+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeAllows"+>DatatypeAllows</A+></TT+> function +(see also: <TT+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeCheck"+>DatatypeCheck</A+></TT+>) of the datatype library.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-RelaxNG-DataTypes.html view
@@ -0,0 +1,1819 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.RelaxNG.DataTypes</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/DataTypes.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.RelaxNG.DataTypes</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3ArelaxSchemaFile"+>relaxSchemaFile</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ArelaxSchemaGrammarFile"+>relaxSchemaGrammarFile</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_numberOfErrors"+>a_numberOfErrors</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_relaxSimplificationChanges"+>a_relaxSimplificationChanges</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AdefineOrigName"+>defineOrigName</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AEnv"+>Env</A+> = [(String, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>)]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcontextAttributes"+>contextAttributes</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcontextBaseAttr"+>contextBaseAttr</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AOldName"+>OldName</A+> = String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ANewName"+>NewName</A+> = String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ANamePair"+>NamePair</A+> = (<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AOldName"+>OldName</A+>, <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANewName"+>NewName</A+>)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ARefList"+>RefList</A+> = [<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANamePair"+>NamePair</A+>]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ADatatypeEqual"+>DatatypeEqual</A+> = <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"+>DatatypeName</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContext"+>Context</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContext"+>Context</A+> -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ADatatypeAllows"+>DatatypeAllows</A+> = <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"+>DatatypeName</A+> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"+>ParamList</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContext"+>Context</A+> -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ADatatypeLibraries"+>DatatypeLibraries</A+> = [<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeLibrary"+>DatatypeLibrary</A+>]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ADatatypeLibrary"+>DatatypeLibrary</A+> = (<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"+>Uri</A+>, <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeCheck"+>DatatypeCheck</A+>)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ADatatypeName"+>DatatypeName</A+> = String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AParamName"+>ParamName</A+> = String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AAllowedParams"+>AllowedParams</A+> = [<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamName"+>ParamName</A+>]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AAllowedDatatypes"+>AllowedDatatypes</A+> = [(<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"+>DatatypeName</A+>, <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AAllowedParams"+>AllowedParams</A+>)]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3ADatatypeCheck"+>DatatypeCheck</A+>  = <A HREF="#v%3ADTC"+>DTC</A+> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="recfield"+><A HREF="#v%3AdtAllowsFct"+>dtAllowsFct</A+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeAllows"+>DatatypeAllows</A+></TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3AdtEqualFct"+>dtEqualFct</A+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeEqual"+>DatatypeEqual</A+></TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3AdtAllowedTypes"+>dtAllowedTypes</A+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AAllowedDatatypes"+>AllowedDatatypes</A+></TD+></TR+></TABLE+>}</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AUri"+>Uri</A+> = String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ALocalName"+>LocalName</A+> = String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AParamList"+>ParamList</A+> = [(<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ALocalName"+>LocalName</A+>, String)]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3APrefix"+>Prefix</A+> = String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AContext"+>Context</A+> = (<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"+>Uri</A+>, [(<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APrefix"+>Prefix</A+>, <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"+>Uri</A+>)])</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ADatatype"+>Datatype</A+> = (<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"+>Uri</A+>, <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ALocalName"+>LocalName</A+>)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3ANameClass"+>NameClass</A+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>= <A HREF="#v%3AAnyName"+>AnyName</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AAnyNameExcept"+>AnyNameExcept</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"+>NameClass</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AName"+>Name</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"+>Uri</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ALocalName"+>LocalName</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ANsName"+>NsName</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"+>Uri</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ANsNameExcept"+>NsNameExcept</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"+>Uri</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"+>NameClass</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ANameClassChoice"+>NameClassChoice</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"+>NameClass</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"+>NameClass</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ANCError"+>NCError</A+> String</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3APattern"+>Pattern</A+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>= <A HREF="#v%3AEmpty"+>Empty</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ANotAllowed"+>NotAllowed</A+> String</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AText"+>Text</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AChoice"+>Choice</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AInterleave"+>Interleave</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AGroup"+>Group</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AOneOrMore"+>OneOrMore</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AList"+>List</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AData"+>Data</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatype"+>Datatype</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"+>ParamList</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ADataExcept"+>DataExcept</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatype"+>Datatype</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"+>ParamList</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AValue"+>Value</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatype"+>Datatype</A+> String <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContext"+>Context</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AAttribute"+>Attribute</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"+>NameClass</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AElement"+>Element</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"+>NameClass</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AAfter"+>After</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AContentType"+>ContentType</A+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>= <A HREF="#v%3ACTEmpty"+>CTEmpty</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ACTComplex"+>CTComplex</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ACTSimple"+>CTSimple</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ACTNone"+>CTNone</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArelaxSchemaFile"+></A+><B+>relaxSchemaFile</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArelaxSchemaGrammarFile"+></A+><B+>relaxSchemaGrammarFile</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_numberOfErrors"+></A+><B+>a_numberOfErrors</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_relaxSimplificationChanges"+></A+><B+>a_relaxSimplificationChanges</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdefineOrigName"+></A+><B+>defineOrigName</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AEnv"+></A+><B+>Env</B+> = [(String, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>)]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcontextAttributes"+></A+><B+>contextAttributes</B+> :: String</TD+></TR+><TR+><TD CLASS="doc"+><P+>Start of a context attribute value + (see also: <TT+><A HREF="Text-XML-HXT-RelaxNG-Simplification.html#v%3AsimplificationStep1"+>simplificationStep1</A+></TT+>)+</P+><P+>The value is always followed by the original attribute name and value+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcontextBaseAttr"+></A+><B+>contextBaseAttr</B+> :: String</TD+></TR+><TR+><TD CLASS="doc"+>Start of base uri attribute value + (see also: simplificationStep1 in <A HREF="Text-XML-HXT-RelaxNG-Simplification.html"+>Text.XML.HXT.RelaxNG.Simplification</A+>)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AOldName"+></A+><B+>OldName</B+> = String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ANewName"+></A+><B+>NewName</B+> = String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ANamePair"+></A+><B+>NamePair</B+> = (<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AOldName"+>OldName</A+>, <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANewName"+>NewName</A+>)</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ARefList"+></A+><B+>RefList</B+> = [<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANamePair"+>NamePair</A+>]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ADatatypeEqual"+></A+><B+>DatatypeEqual</B+> = <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"+>DatatypeName</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContext"+>Context</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContext"+>Context</A+> -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="doc"+><P+>Type of all datatype libraries functions that tests whether + a XML instance value matches a value-pattern.+</P+><P+>Returns Just &quot;errorMessage&quot; in case of an error else Nothing.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ADatatypeAllows"+></A+><B+>DatatypeAllows</B+> = <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"+>DatatypeName</A+> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"+>ParamList</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContext"+>Context</A+> -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="doc"+><P+>Type of all datatype libraries functions that tests whether + a XML instance value matches a data-pattern.+</P+><P+>Returns Just &quot;errorMessage&quot; in case of an error else Nothing.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ADatatypeLibraries"+></A+><B+>DatatypeLibraries</B+> = [<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeLibrary"+>DatatypeLibrary</A+>]</TD+></TR+><TR+><TD CLASS="doc"+>List of all supported datatype libraries+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ADatatypeLibrary"+></A+><B+>DatatypeLibrary</B+> = (<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"+>Uri</A+>, <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeCheck"+>DatatypeCheck</A+>)</TD+></TR+><TR+><TD CLASS="doc"+>Each datatype library is identified by a URI.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ADatatypeName"+></A+><B+>DatatypeName</B+> = String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AParamName"+></A+><B+>ParamName</B+> = String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AAllowedParams"+></A+><B+>AllowedParams</B+> = [<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamName"+>ParamName</A+>]</TD+></TR+><TR+><TD CLASS="doc"+>List of all supported params for a datatype+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AAllowedDatatypes"+></A+><B+>AllowedDatatypes</B+> = [(<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"+>DatatypeName</A+>, <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AAllowedParams"+>AllowedParams</A+>)]</TD+></TR+><TR+><TD CLASS="doc"+>List of all supported datatypes and there allowed params+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3ADatatypeCheck"+></A+><B+>DatatypeCheck</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>The Constructor exports the list of supported datatypes for a library.+ It also exports the specialized datatype library functions to validate + a XML instance value with respect to a datatype.+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ADTC"+></A+><B+>DTC</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="body" COLSPAN="2"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AdtAllowsFct"+></A+><B+>dtAllowsFct</B+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeAllows"+>DatatypeAllows</A+></TD+><TD CLASS="rdoc"+>function to test whether a value matches a data-pattern+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AdtEqualFct"+></A+><B+>dtEqualFct</B+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeEqual"+>DatatypeEqual</A+></TD+><TD CLASS="rdoc"+>function to test whether a value matches a value-pattern+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AdtAllowedTypes"+></A+><B+>dtAllowedTypes</B+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AAllowedDatatypes"+>AllowedDatatypes</A+></TD+><TD CLASS="rdoc"+>list of all supported params for a datatype+</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AUri"+></A+><B+>Uri</B+> = String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ALocalName"+></A+><B+>LocalName</B+> = String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AParamList"+></A+><B+>ParamList</B+> = [(<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ALocalName"+>LocalName</A+>, String)]</TD+></TR+><TR+><TD CLASS="doc"+>List of parameters; each parameter is a pair consisting of a local name and a value.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3APrefix"+></A+><B+>Prefix</B+> = String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AContext"+></A+><B+>Context</B+> = (<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"+>Uri</A+>, [(<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APrefix"+>Prefix</A+>, <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"+>Uri</A+>)])</TD+></TR+><TR+><TD CLASS="doc"+>A Context represents the context of an XML element. + It consists of a base URI and a mapping from prefixes to namespace URIs.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ADatatype"+></A+><B+>Datatype</B+> = (<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"+>Uri</A+>, <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ALocalName"+>LocalName</A+>)</TD+></TR+><TR+><TD CLASS="doc"+>A Datatype identifies a datatype by a datatype library name and a local name.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3ANameClass"+></A+><B+>NameClass</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>Represents a name class+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AAnyName"+></A+><B+>AnyName</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AAnyNameExcept"+></A+><B+>AnyNameExcept</B+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"+>NameClass</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AName"+></A+><B+>Name</B+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"+>Uri</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ALocalName"+>LocalName</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ANsName"+></A+><B+>NsName</B+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"+>Uri</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ANsNameExcept"+></A+><B+>NsNameExcept</B+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"+>Uri</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"+>NameClass</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ANameClassChoice"+></A+><B+>NameClassChoice</B+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"+>NameClass</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"+>NameClass</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ANCError"+></A+><B+>NCError</B+> String</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:NameClass')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:NameClass" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"+>NameClass</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"+>NameClass</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3APattern"+></A+><B+>Pattern</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>Represents a pattern after simplification+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AEmpty"+></A+><B+>Empty</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ANotAllowed"+></A+><B+>NotAllowed</B+> String</TD+><TD CLASS="rdoc"+>String represents the error message+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AText"+></A+><B+>Text</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AChoice"+></A+><B+>Choice</B+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AInterleave"+></A+><B+>Interleave</B+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AGroup"+></A+><B+>Group</B+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AOneOrMore"+></A+><B+>OneOrMore</B+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AList"+></A+><B+>List</B+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AData"+></A+><B+>Data</B+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatype"+>Datatype</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"+>ParamList</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ADataExcept"+></A+><B+>DataExcept</B+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatype"+>Datatype</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"+>ParamList</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AValue"+></A+><B+>Value</B+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatype"+>Datatype</A+> String <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContext"+>Context</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AAttribute"+></A+><B+>Attribute</B+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"+>NameClass</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AElement"+></A+><B+>Element</B+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"+>NameClass</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AAfter"+></A+><B+>After</B+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+></TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Pattern')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:Pattern" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AContentType"+></A+><B+>ContentType</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>Possible content types of a Relax NG pattern.+ (see also chapter 7.2 in Relax NG specification)+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ACTEmpty"+></A+><B+>CTEmpty</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ACTComplex"+></A+><B+>CTComplex</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ACTSimple"+></A+><B+>CTSimple</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ACTNone"+></A+><B+>CTNone</B+></TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ContentType')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:ContentType" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContentType"+>ContentType</A+></TD+></TR+><TR+><TD CLASS="decl"+>Ord <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContentType"+>ContentType</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContentType"+>ContentType</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-RelaxNG-PatternFunctions.html view
@@ -0,0 +1,584 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.RelaxNG.PatternFunctions</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/PatternFunctions.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.RelaxNG.PatternFunctions</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>basic <TT+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+></TT+> functions+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AisRelaxEmpty"+>isRelaxEmpty</A+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisRelaxNotAllowed"+>isRelaxNotAllowed</A+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisRelaxText"+>isRelaxText</A+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisRelaxChoice"+>isRelaxChoice</A+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisRelaxInterleave"+>isRelaxInterleave</A+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisRelaxGroup"+>isRelaxGroup</A+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisRelaxOneOrMore"+>isRelaxOneOrMore</A+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisRelaxList"+>isRelaxList</A+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisRelaxData"+>isRelaxData</A+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisRelaxDataExcept"+>isRelaxDataExcept</A+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisRelaxValue"+>isRelaxValue</A+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisRelaxAttribute"+>isRelaxAttribute</A+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisRelaxElement"+>isRelaxElement</A+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisRelaxAfter"+>isRelaxAfter</A+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetChildrenPattern"+>getChildrenPattern</A+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; [<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+>]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetNameClassFromPattern"+>getNameClassFromPattern</A+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"+>NameClass</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetPatternName"+>getPatternName</A+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; String</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisRelaxEmpty"+></A+><B+>isRelaxEmpty</B+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisRelaxNotAllowed"+></A+><B+>isRelaxNotAllowed</B+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisRelaxText"+></A+><B+>isRelaxText</B+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisRelaxChoice"+></A+><B+>isRelaxChoice</B+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisRelaxInterleave"+></A+><B+>isRelaxInterleave</B+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisRelaxGroup"+></A+><B+>isRelaxGroup</B+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisRelaxOneOrMore"+></A+><B+>isRelaxOneOrMore</B+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisRelaxList"+></A+><B+>isRelaxList</B+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisRelaxData"+></A+><B+>isRelaxData</B+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisRelaxDataExcept"+></A+><B+>isRelaxDataExcept</B+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisRelaxValue"+></A+><B+>isRelaxValue</B+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisRelaxAttribute"+></A+><B+>isRelaxAttribute</B+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisRelaxElement"+></A+><B+>isRelaxElement</B+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisRelaxAfter"+></A+><B+>isRelaxAfter</B+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetChildrenPattern"+></A+><B+>getChildrenPattern</B+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; [<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+>]</TD+></TR+><TR+><TD CLASS="doc"+>Returns a list of children pattern for each pattern, + e.g. (Choice p1 p2) = [p1, p2]+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetNameClassFromPattern"+></A+><B+>getNameClassFromPattern</B+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"+>NameClass</A+></TD+></TR+><TR+><TD CLASS="doc"+>Returns the nameclass of a element- or attribute pattern.+ Otherwise <TT+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3ANCError"+>NCError</A+></TT+> is returned.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetPatternName"+></A+><B+>getPatternName</B+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>Returns a string representation of the pattern name+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-RelaxNG-PatternToString.html view
@@ -0,0 +1,398 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.RelaxNG.PatternToString</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/PatternToString.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.RelaxNG.PatternToString</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3ApatternToStringTree"+>patternToStringTree</A+> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ApatternToFormatedString"+>patternToFormatedString</A+> :: <A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> [<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"+>NameClass</A+>] <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlTreeToPatternStringTree"+>xmlTreeToPatternStringTree</A+> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlTreeToPatternFormatedString"+>xmlTreeToPatternFormatedString</A+> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlTreeToPatternString"+>xmlTreeToPatternString</A+> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnameClassToString"+>nameClassToString</A+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"+>NameClass</A+> -&gt; String</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ApatternToStringTree"+></A+><B+>patternToStringTree</B+> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> String</TD+></TR+><TR+><TD CLASS="doc"+><P+>Returns a tree representation of the pattern structure.+The hard work is done by <TT+><A HREF="Data-Tree-Class.html#v%3AformatTree"+>formatTree</A+></TT+>.+</P+><P+>Example:+</P+><PRE+> +---element {}bar+     |+     +---group+         |+         +---oneOrMore+         |   |+         |   +---attribute AnyName+         |       |+         |       +---text+         |+         +---text+</PRE+><P+>The function can be used to display circular ref-pattern structures.+</P+><P+>Example:+</P+><PRE+> &lt;define name=&quot;baz&quot;&gt;+   &lt;element name=&quot;baz&quot;&gt;+     ... &lt;ref name=&quot;baz&quot;/&gt; ...+   &lt;/element&gt;+ &lt;/define&gt;+</PRE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ApatternToFormatedString"+></A+><B+>patternToFormatedString</B+> :: <A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> [<A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"+>NameClass</A+>] <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Pattern</A+> String</TD+></TR+><TR+><TD CLASS="doc"+><P+>Returns a formated string representation of the pattern structure.+</P+><P+>Example:+</P+><PRE+> Element {}foo (Choice (Choice ( Value = abc, + datatypelibrary = http://relaxng.org/ns/structure/1.0, type = token, + context (base-uri =file://test.rng, + parameter: xml = http://www.w3.org/XML/1998/namespaces, foo = www.bar.baz), +</PRE+><P+>The function can be used to display circular ref-pattern structures.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlTreeToPatternStringTree"+></A+><B+>xmlTreeToPatternStringTree</B+> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>Returns a tree representation of the pattern structure.+ (see also: <TT+><A HREF="Text-XML-HXT-RelaxNG-CreatePattern.html#v%3AcreatePatternFromXmlTree"+>createPatternFromXmlTree</A+></TT+> and <TT+><A HREF="Text-XML-HXT-RelaxNG-PatternToString.html#v%3ApatternToStringTree"+>patternToStringTree</A+></TT+>)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlTreeToPatternFormatedString"+></A+><B+>xmlTreeToPatternFormatedString</B+> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>Returns a formated string representation of the pattern structure.+ (see also: <TT+><A HREF="Text-XML-HXT-RelaxNG-CreatePattern.html#v%3AcreatePatternFromXmlTree"+>createPatternFromXmlTree</A+></TT+> and <TT+><A HREF="Text-XML-HXT-RelaxNG-PatternToString.html#v%3ApatternToFormatedString"+>patternToFormatedString</A+></TT+>)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlTreeToPatternString"+></A+><B+>xmlTreeToPatternString</B+> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+><P+>Returns a string representation of the pattern structure.+(see also: <TT+><A HREF="Text-XML-HXT-RelaxNG-CreatePattern.html#v%3AcreatePatternFromXmlTree"+>createPatternFromXmlTree</A+></TT+>)+</P+><P+>Example:+</P+><PRE+> Element {}foo (Choice (Choice (Value (&quot;&quot;,&quot;token&quot;) &quot;abc&quot;+ (&quot;foo&quot;,&quot;www.bar.baz&quot;)]))(Data (&quot;http://www.mysql.com&quot;,&quot;VARCHAR&quot;)+ [(&quot;length&quot;,&quot;2&quot;),(&quot;maxLength&quot;,&quot;5&quot;)])) (Element {}bar (Group (Element {}baz+</PRE+><P+>The function can <TT+>not</TT+> be used to display circular ref-pattern structures.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnameClassToString"+></A+><B+>nameClassToString</B+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"+>NameClass</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>Returns a string representation of a nameclass.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-RelaxNG-Schema.html view
@@ -0,0 +1,136 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.RelaxNG.Schema</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Schema.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.RelaxNG.Schema</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: Schema.hs,v 1.3 2005<EM+>09</EM+>30 14:41:44 hxml Exp $+</P+><P+>Don't edit this module, it's generated by RelaxSchemaToXmlTree+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArelaxSchemaTree"+></A+><B+>relaxSchemaTree</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArelaxSchemaArrow"+></A+><B+>relaxSchemaArrow</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-RelaxNG-SchemaGrammar.html view
@@ -0,0 +1,136 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.RelaxNG.SchemaGrammar</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/SchemaGrammar.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.RelaxNG.SchemaGrammar</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: SchemaGrammar.hs,v 1.3 2005<EM+>09</EM+>30 14:41:45 hxml Exp $+</P+><P+>Don't edit this module, it's generated by RelaxSchemaToXmlTree+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArelaxSchemaTree"+></A+><B+>relaxSchemaTree</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArelaxSchemaArrow"+></A+><B+>relaxSchemaArrow</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-RelaxNG-Simplification.html view
@@ -0,0 +1,201 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.RelaxNG.Simplification</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Simplification.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.RelaxNG.Simplification</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>The modul creates the simplified form of a Relax NG schema.+ See also chapter 4 of the Relax NG specification.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AcreateSimpleForm"+>createSimpleForm</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; Bool -&gt; Bool -&gt; Bool -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetErrors"+>getErrors</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcreateSimpleForm"+></A+><B+>createSimpleForm</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; Bool -&gt; Bool -&gt; Bool -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>Creates the simple form of a Relax NG schema+ (see also: <TT+><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3ArelaxOptions"+>relaxOptions</A+></TT+>)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetErrors"+></A+><B+>getErrors</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>Returns the list of simplification errors or <TT+><A HREF="Control-Arrow-ArrowList.html#v%3Anone"+>none</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-RelaxNG-Utils.html view
@@ -0,0 +1,289 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.RelaxNG.Utils</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Utils.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.RelaxNG.Utils</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>Some helper functions+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AisRelaxAnyURI"+>isRelaxAnyURI</A+> :: String -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcompareURI"+>compareURI</A+> :: String -&gt; String -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnormalizeURI"+>normalizeURI</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseNumber"+>parseNumber</A+> :: String -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AformatStringList"+>formatStringList</A+> :: String -&gt; [String] -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aqn2String"+>qn2String</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisRelaxAnyURI"+></A+><B+>isRelaxAnyURI</B+> :: String -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>Tests whether a URI matches the Relax NG anyURI symbol+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcompareURI"+></A+><B+>compareURI</B+> :: String -&gt; String -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>Tests whether two URIs are equal after <TT+><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AnormalizeURI"+>normalizeURI</A+></TT+> is performed+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnormalizeURI"+></A+><B+>normalizeURI</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>Converts all letters to the corresponding lower-case letter + and removes a trailing &quot;/&quot; +</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseNumber"+></A+><B+>parseNumber</B+> :: String -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>Tests whether a string matches a number [-](0-9)*+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AformatStringList"+></A+><B+>formatStringList</B+> :: String -&gt; [String] -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>Formats a list of strings into a single string. The first parameter is inserted+between two elements.+</P+><P+>example:+</P+><PRE+> formatStringList &quot;, &quot; [&quot;foo&quot;, &quot;bar&quot;, &quot;baz&quot;] -&gt; &quot;foo, bar, baz&quot;+</PRE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aqn2String"+></A+><B+>qn2String</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>Formats a qualified name, e.g. &quot;{namespace}localName&quot;+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-RelaxNG-Validation.html view
@@ -0,0 +1,452 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.RelaxNG.Validation</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Validation.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.RelaxNG.Validation</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>Validation of a XML document with respect to a valid Relax NG schema in simple form.+ Copied and modified from &quot;An algorithm for RELAX NG validation&quot; by James Clark+ (<A HREF="http://www.thaiopensource.com/relaxng/derivative.html"+>http://www.thaiopensource.com/relaxng/derivative.html</A+>).+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateWithRelaxAndHandleErrors"+>validateWithRelaxAndHandleErrors</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateDocWithRelax"+>validateDocWithRelax</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateRelax"+>validateRelax</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateXMLDoc"+>validateXMLDoc</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AreadForRelax"+>readForRelax</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnormalizeForRelaxValidation"+>normalizeForRelaxValidation</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Acontains"+>contains</A+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"+>NameClass</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateWithRelaxAndHandleErrors"+></A+><B+>validateWithRelaxAndHandleErrors</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateDocWithRelax"+></A+><B+>validateDocWithRelax</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Validates a xml document with respect to a Relax NG schema+</P+><UL+><LI+> 1.parameter  :  the arrow for computing the Relax NG schema+</LI+><LI+> 2.parameter  :  list of options for reading and validating+</LI+><LI+> 3.parameter  :  XML document URI+</LI+><LI+> arrow-input  :  ignored+</LI+><LI+> arrow-output :  list of errors or <TT+><A HREF="Control-Arrow-ArrowList.html#v%3Anone"+>none</A+></TT+>+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateRelax"+></A+><B+>validateRelax</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Validates a xml document with respect to a Relax NG schema+</P+><UL+><LI+> 1.parameter  :  XML document+</LI+><LI+> arrow-input  :  Relax NG schema+</LI+><LI+> arrow-output :  list of errors or <TT+><A HREF="Control-Arrow-ArrowList.html#v%3Anone"+>none</A+></TT+>+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateXMLDoc"+></A+><B+>validateXMLDoc</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AreadForRelax"+></A+><B+>readForRelax</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnormalizeForRelaxValidation"+></A+><B+>normalizeForRelaxValidation</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>normalize a document for validation with Relax NG: remove all namespace declaraion attributes,+   remove all processing instructions and merge all sequences of text nodes into a single text node+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Acontains"+></A+><B+>contains</B+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"+>NameClass</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>tests whether a <TT+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"+>NameClass</A+></TT+> contains a particular <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-RelaxNG-Validator.html view
@@ -0,0 +1,714 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.RelaxNG.Validator</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Validator.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.RelaxNG.Validator</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>This module exports the core functions from the basic validation und simplification libraries.+ It also exports some helper functions for easier access to the validation functionality.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateDocumentWithRelaxSchema"+>validateDocumentWithRelaxSchema</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateDocumentWithRelax"+>validateDocumentWithRelax</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Avalidate"+>validate</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateSchema"+>validateSchema</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateWithSpezification"+>validateWithSpezification</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateSchemaWithSpezification"+>validateSchemaWithSpezification</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateWithoutSpezification"+>validateWithoutSpezification</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-RelaxNG-Validation.html"+>Text.XML.HXT.RelaxNG.Validation</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-RelaxNG-Simplification.html"+>Text.XML.HXT.RelaxNG.Simplification</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateDocumentWithRelaxSchema"+></A+><B+>validateDocumentWithRelaxSchema</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>validate a document with a Relax NG schema+</P+><UL+><LI+> 1.parameter  : the option list for validation+</LI+><LI+> 2.parameter  : the URI of the Relax NG Schema+</LI+><LI+> arrow-input  : the document to be validated, namespaces must have been processed+</LI+><LI+> arrow-output : the input document, or in case of validation errors, an empty document with status information in the root+</LI+></UL+><P+>options evaluated by validateDocumentWithRelaxSchema:+</P+><UL+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_check_restrictions"+>a_check_restrictions</A+></TT+>   : check Relax NG schema restrictions when simplifying the schema (default: on)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate_externalRef"+>a_validate_externalRef</A+></TT+> : validate a Relax NG schema referenced by a externalRef-Pattern (default: on)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate_include"+>a_validate_include</A+></TT+>     : validate a Relax NG schema referenced by a include-Pattern (default: on)+</LI+></UL+><P+>all other options are propagated to the read functions for schema input+</P+><P+>example:+</P+><PRE+> validateDocumentWithRelaxSchema [(a_check_restrictions, &quot;0&quot;)] &quot;testSchema.rng&quot;+</PRE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateDocumentWithRelax"+></A+><B+>validateDocumentWithRelax</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>validate an XML document with respect to a Relax NG schema+</P+><UL+><LI+> 1.parameter  : the valid and simplified schema as XML tree+</LI+><LI+> arrow-input  : the document to be validated+</LI+><LI+> arrow-output : the validated and unchanged document or the empty document with status information set in the root node+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Avalidate"+></A+><B+>validate</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>normalize a document for Relax NG validation,+   call the <TT+><A HREF="Text-XML-HXT-RelaxNG-Validation.html#v%3AvalidateRelax"+>validateRelax</A+></TT+> function for doing the hard work,+   and issue errors+</P+><UL+><LI+> 1.parameter  : the arrow for computing the schema+</LI+><LI+> arrow-input  : the document to be validated+</LI+><LI+> arrow-output : nothing+</LI+></UL+><P+>Document validation+</P+><P+>Validates a xml document with respect to a Relax NG schema.+</P+><P+>First, the schema is validated with respect to the Relax NG Spezification. If no error is found, the xml document is validated with respect to the schema.+</P+><UL+><LI+> 1.parameter :  list of options; namespace progagation is always done+</LI+><LI+> 2.parameter :  XML document+</LI+><LI+> 3.parameter :  Relax NG schema file+</LI+></UL+><P+>available options:+</P+><UL+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_check_restrictions"+>a_do_not_check_restrictions</A+></TT+> : do not check Relax NG schema restrictions (includes do-not-validate-externalRef, do-not-validate-include)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_validate_externalRef"+>a_do_not_validate_externalRef</A+></TT+> : do not validate a Relax NG schema referenced by a externalRef-Pattern+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate_externalRef"+>a_validate_externalRef</A+></TT+> : validate a Relax NG schema referenced by a externalRef-Pattern (default)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_validate_include"+>a_do_not_validate_include</A+></TT+> : do not validate a Relax NG schema referenced by a include-Pattern+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate_include"+>a_validate_include</A+></TT+> : validate a Relax NG schema referenced by a include-Pattern (default)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_changes"+>a_output_changes</A+></TT+> : output Pattern transformations in case of an error+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_collect_errors"+>a_do_not_collect_errors</A+></TT+> : stop Relax NG simplification after the first error has occurred+</LI+><LI+> all <TT+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadDocument"+>readDocument</A+></TT+> options+</LI+></UL+><P+>example:+</P+><PRE+> validate [(a_do_not_check_restrictions, &quot;1&quot;)] &quot;test.xml&quot; &quot;testSchema.rng&quot;+</PRE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateSchema"+></A+><B+>validateSchema</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Relax NG schema validation+</P+><P+>Validates a Relax NG schema with respect to the Relax NG Spezification.+</P+><UL+><LI+> 1.parameter :  list of available options (see also: <TT+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3Avalidate"+>validate</A+></TT+>)+</LI+><LI+> 2.parameter :  Relax NG schema file+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateWithSpezification"+></A+><B+>validateWithSpezification</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Document validation+</P+><P+>Validates a xml document with respect to a Relax NG schema. Similar to <TT+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3Avalidate"+>validate</A+></TT+>, but the Relax NG Specification is not created. Can be used, to check a list of documents more efficiently.+</P+><UL+><LI+> 1.parameter :  list of available options (see also: <TT+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3Avalidate"+>validate</A+></TT+>)+</LI+><LI+> 2.parameter :  XML document+</LI+><LI+> 3.parameter :  Relax NG schema file+</LI+><LI+> arrow-input  :  Relax NG Specification in simple form+</LI+></UL+><P+>example:+</P+><PRE+> Text.XML.HXT.RelaxNG.Schema.relaxSchemaArrow+ &gt;&gt;&gt;+ ( validateWithSpezification [] &quot;foo.xml&quot; &quot;foo.rng&quot;+   &amp;&amp;&amp;+   validateWithSpezification [] &quot;bar.xml&quot; &quot;bar.rng&quot;+ )+</PRE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateSchemaWithSpezification"+></A+><B+>validateSchemaWithSpezification</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Relax NG schema validation+</P+><P+>see <TT+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateSchema"+>validateSchema</A+></TT+> and <TT+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateWithSpezification"+>validateWithSpezification</A+></TT+>+</P+><UL+><LI+> 1.parameter :  list of available options (see also: <TT+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3Avalidate"+>validate</A+></TT+>)+</LI+><LI+> 2.parameter :  Relax NG schema file   +</LI+><LI+> arrow-input  :  Relax NG Specification in simple form+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateWithoutSpezification"+></A+><B+>validateWithoutSpezification</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Document validation+</P+><P+>Validates a xml document with respect to a Relax NG schema, but the schema is <TT+>not</TT+> validated with respect to a specification first. Should be used only for valid Relax NG schemes.+</P+><UL+><LI+> 1.parameter :  list of available options (see also: <TT+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3Avalidate"+>validate</A+></TT+>)+</LI+><LI+> 2.parameter :  XML document+</LI+><LI+> 3.parameter :  Relax NG schema file+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-RelaxNG-Validation.html"+>Text.XML.HXT.RelaxNG.Validation</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-RelaxNG-Simplification.html"+>Text.XML.HXT.RelaxNG.Simplification</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-RelaxNG.html view
@@ -0,0 +1,152 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.RelaxNG</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.RelaxNG</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>This helper module exports elements from the basic Relax NG libraries:+ Validator, CreatePattern, PatternToString and DataTypes.+ It is the main entry point to the Relax NG schema validator of the Haskell+ XML Toolbox.+</P+><P+>Author : Torben Kuseler+</P+><P+>Version : $Id: RelaxNG.hs,v 1.1 2005<EM+>09</EM+>02 17:09:39 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-RelaxNG-PatternToString.html"+>Text.XML.HXT.RelaxNG.PatternToString</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-RelaxNG-Validator.html"+>Text.XML.HXT.RelaxNG.Validator</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html"+>Text.XML.HXT.RelaxNG.DataTypes</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-RelaxNG-CreatePattern.html"+>Text.XML.HXT.RelaxNG.CreatePattern</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Validator-AttributeValueValidation.html view
@@ -0,0 +1,210 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Validator.AttributeValueValidation</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/AttributeValueValidation.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Validator.AttributeValueValidation</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>This module provides functions for validating attributes.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AcheckAttributeValue"+>checkAttributeValue</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnormalizeAttributeValue"+>normalizeAttributeValue</A+> :: Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String -&gt; String</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcheckAttributeValue"+></A+><B+>checkAttributeValue</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Checks if the attribute value meets the lexical constraints of its type.+</P+><UL+><LI+> 1.parameter dtdPart :  the children of the <TT+>DOCTYPE</TT+> node+</LI+><LI+> 2.parameter attrDecl :  the declaration of the attribute from the DTD+</LI+><LI+> returns : a function which takes an element (XTag or XDTD ATTLIST),+                    checks if the attribute value meets the lexical constraints+                    of its type and returns a list of errors+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnormalizeAttributeValue"+></A+><B+>normalizeAttributeValue</B+> :: Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>Normalizes an attribute value with respect to its type. (3.3.3 / p.29 in Spec)+</P+><UL+><LI+> 1.parameter attrDecl :  the declaration of the attribute from the DTD. Expected+                   is a list. If the list is empty, no declaration exists.+</LI+><LI+> 2.parameter value :  the attribute value to be normalized+</LI+><LI+> returns : the normalized value+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Validator-DTDValidation.html view
@@ -0,0 +1,189 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Validator.DTDValidation</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/DTDValidation.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Validator.DTDValidation</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>This module provides functions for validating the DTD of XML documents+ represented as XmlTree.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AremoveDoublicateDefs"+>removeDoublicateDefs</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateDTD"+>validateDTD</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveDoublicateDefs"+></A+><B+>removeDoublicateDefs</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Removes doublicate declarations from the DTD, which first declaration is+ binding. This is the case for ATTLIST and ENTITY declarations.+</P+><UL+><LI+> returns : A function that replaces the children of DOCTYPE nodes by a list+               where all multiple declarations are removed.+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateDTD"+></A+><B+>validateDTD</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Validate a DTD.+</P+><UL+><LI+> returns : a functions which takes the DTD subset of the XmlTree, checks+                  if the DTD is valid and returns a list of errors+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Validator-DocTransformation.html view
@@ -0,0 +1,164 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Validator.DocTransformation</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/DocTransformation.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Validator.DocTransformation</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>This module provides functions for transforming XML documents represented as+ XmlTree with respect to its DTD.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3Atransform"+>transform</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Atransform"+></A+><B+>transform</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>filter for transforming the document.+</P+><UL+><LI+> 1.parameter dtdPart :  the DTD subset (Node <TT+>DOCTYPE</TT+>) of the XmlTree+</LI+><LI+> 2.parameter doc :  the document subset of the XmlTree+</LI+><LI+> returns : a list of errors+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Validator-DocValidation.html view
@@ -0,0 +1,164 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Validator.DocValidation</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/DocValidation.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Validator.DocValidation</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>This module provides functions for validating XML Documents represented as+ XmlTree.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateDoc"+>validateDoc</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateDoc"+></A+><B+>validateDoc</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Validate a document.+</P+><UL+><LI+> 1.parameter dtdPart :  the DTD subset (Node <TT+>DOCTYPE</TT+>) of the XmlTree+</LI+><LI+> 2.parameter doc :  the document subset of the XmlTree+</LI+><LI+> returns : a list of errors+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Validator-IdValidation.html view
@@ -0,0 +1,167 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Validator.IdValidation</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/IdValidation.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Validator.IdValidation</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>This module provides functions for checking special ID<EM+>IDREF</EM+>IDREFS constraints.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateIds"+>validateIds</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateIds"+></A+><B+>validateIds</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Perform the validation of the ID<EM+>IDREF</EM+>IDREFS constraints.+</P+><UL+><LI+> 1.parameter dtdPart :  the DTD subset (Node <TT+>DOCTYPE</TT+>) of the XmlTree+</LI+><LI+> 2.parameter doc :  the document subset of the XmlTree+</LI+><LI+> returns : a list of errors+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Validator-RE.html view
@@ -0,0 +1,979 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Validator.RE</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/RE.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Validator.RE</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>A module for regular expression matching based on derivatives of regular expressions.+</P+><P+>The code was taken from Joe English (<A HREF="http://www.flightlab.com/~joe/sgml/validate.html"+>http://www.flightlab.com/~joe/sgml/validate.html</A+>).+ Tested and extended by Martin Schmidt.+</P+><P+>Further references for the algorithm:+</P+><P+>Janusz A. Brzozowski.+</P+><P+>Derivatives of Regular Expressions. Journal of the ACM, Volume 11, Issue 4, 1964. +</P+><P+>Mark Hopkins.+</P+><P+>Regular Expression Package. Posted to comp.compilers, 1994.+      Available per FTP at <A HREF="ftp://iecc.com/pub/file/regex.tar.gz"+>ftp://iecc.com/pub/file/regex.tar.gz</A+>.+</P+><P+>Version : $Id: RE.hs,v 1.1 2004<EM+>09</EM+>02 19:12:03 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>= <A HREF="#v%3ARE_ZERO"+>RE_ZERO</A+> String</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ARE_UNIT"+>RE_UNIT</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ARE_SYM"+>RE_SYM</A+> a</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ARE_DOT"+>RE_DOT</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ARE_REP"+>RE_REP</A+> (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ARE_PLUS"+>RE_PLUS</A+> (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ARE_OPT"+>RE_OPT</A+> (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ARE_SEQ"+>RE_SEQ</A+> (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a) (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ARE_ALT"+>RE_ALT</A+> (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a) (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_unit"+>re_unit</A+> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_zero"+>re_zero</A+> :: String -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_sym"+>re_sym</A+> :: a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_rep"+>re_rep</A+> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_plus"+>re_plus</A+> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_opt"+>re_opt</A+> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_seq"+>re_seq</A+> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_alt"+>re_alt</A+> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_dot"+>re_dot</A+> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcheckRE"+>checkRE</A+> :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Amatches"+>matches</A+> :: (Eq a, Show a) =&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; [a] -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Anullable"+>nullable</A+> :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprintRE"+>printRE</A+> :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; String</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3ARE"+></A+><B+>RE</B+> a</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>Data type for regular expressions.+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ARE_ZERO"+></A+><B+>RE_ZERO</B+> String</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ARE_UNIT"+></A+><B+>RE_UNIT</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ARE_SYM"+></A+><B+>RE_SYM</B+> a</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ARE_DOT"+></A+><B+>RE_DOT</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ARE_REP"+></A+><B+>RE_REP</B+> (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a)</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ARE_PLUS"+></A+><B+>RE_PLUS</B+> (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a)</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ARE_OPT"+></A+><B+>RE_OPT</B+> (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a)</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ARE_SEQ"+></A+><B+>RE_SEQ</B+> (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a) (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a)</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ARE_ALT"+></A+><B+>RE_ALT</B+> (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a) (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a)</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:RE')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:RE" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Eq a =&gt; Eq (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+>Show a =&gt; Show (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_unit"+></A+><B+>re_unit</B+> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs a regular expression for an empty sequence.+</P+><UL+><LI+> returns : regular expression for an empty sequence+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_zero"+></A+><B+>re_zero</B+> :: String -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs a regular expression for an empty set.+</P+><UL+><LI+> 1.parameter errMsg :  error message+</LI+><LI+> returns : regular expression for an empty set+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_sym"+></A+><B+>re_sym</B+> :: a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs a regular expression for accepting a symbol+</P+><UL+><LI+> 1.parameter sym :  the symbol to be accepted+</LI+><LI+> returns : regular expression for accepting a symbol+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_rep"+></A+><B+>re_rep</B+> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs an optional repetition (*) of a regular expression+</P+><UL+><LI+> 1.parameter re_a :  regular expression to be repeted+</LI+><LI+> returns : new regular expression+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_plus"+></A+><B+>re_plus</B+> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs a repetition (+) of a regular expression+</P+><UL+><LI+> 1.parameter re_a :  regular expression to be repeted+</LI+><LI+> returns : new regular expression+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_opt"+></A+><B+>re_opt</B+> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs an option (?) of a regular expression+</P+><UL+><LI+> 1.parameter re_a :  regular expression to be optional+</LI+><LI+> returns : new regular expression+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_seq"+></A+><B+>re_seq</B+> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs a sequence (,) of two regular expressions+</P+><UL+><LI+> 1.parameter re_a :  first regular expression in sequence+</LI+><LI+> 2.parameter re_b :  second regular expression in sequence+</LI+><LI+> returns : new regular expression+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_alt"+></A+><B+>re_alt</B+> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs an alternative (|) of two regular expressions+</P+><UL+><LI+> 1.parameter re_a :  first regular expression of alternative+</LI+><LI+> 2.parameter re_b :  second regular expression of alternative+</LI+><LI+> returns : new regular expression+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_dot"+></A+><B+>re_dot</B+> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs a regular expression for accepting any singel symbol+</P+><UL+><LI+> returns : regular expression for accepting any singel symbol+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcheckRE"+></A+><B+>checkRE</B+> :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>Checks if an input matched a regular expression. The function should be+ called after matches.+</P+><P+>Was the sentence used in <TT+>matches</TT+> in the language of the regular expression?+ -&gt; matches e s == s `in` L(e)?+</P+><UL+><LI+> 1.parameter re :  the derived regular expression+</LI+><LI+> returns : empty String if input matched the regular expression, otherwise+               an error message is returned+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Amatches"+></A+><B+>matches</B+> :: (Eq a, Show a) =&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; [a] -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Derives a regular expression with respect to a sentence.+</P+><UL+><LI+> 1.parameter re :  regular expression+</LI+><LI+> 2.parameter s :  sentence to which the regular expression is applied+</LI+><LI+> returns : the derived regular expression+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Anullable"+></A+><B+>nullable</B+> :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+><P+>Checks if a regular expression matches the empty sequence.+</P+><P+>nullable e == [] `in` L(e)+</P+><P+>This check indicates if a regular expression fits to a sentence or not.+</P+><UL+><LI+> 1.parameter re :  regular expression to be checked+</LI+><LI+> returns : true if regular expression matches the empty sequence,+                otherwise false+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprintRE"+></A+><B+>printRE</B+> :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs a string representation of a regular expression.+</P+><UL+><LI+> 1.parameter re :  a regular expression+</LI+><LI+> returns : the string representation of the regular expression+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Validator-Validation.html view
@@ -0,0 +1,187 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Validator.Validation</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/Validation.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Validator.Validation</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>This module provides a state filter as a main function for validating XML documents.+</P+><P+>The real validation is done with pure filters from module <TT+><A HREF="Text-XML-HXT-Validator.html#t%3AValidationFilter"+>ValidationFilter</A+></TT+>+</P+><P+>Author : .\artin Schmidt+ Version : $Id: Validation.hs,v 1.2 2004<EM+>11</EM+>23 15:50:23 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetValidatedDoc"+>getValidatedDoc</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Validator-ValidationFilter.html"+>Text.XML.HXT.Validator.ValidationFilter</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetValidatedDoc"+></A+><B+>getValidatedDoc</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+><P+>monadic filter for validating and transforming a wellformed document.+</P+><P+>the <A HREF="main.html"+>main</A+> function for validation.+</P+><P+>the input tree must consist of a root node with a complete document and DTD.+ Result is the single element list containing same tree but tranformed with respect to the DTD,+ or, in case of errors, the root with an empty list of children+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Validator-ValidationFilter.html"+>Text.XML.HXT.Validator.ValidationFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Validator-ValidationFilter.html view
@@ -0,0 +1,337 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Validator.ValidationFilter</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/ValidationFilter.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Validator.ValidationFilter</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>This module provides functions for validating XML documents represented as+ XmlTree.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetDTDSubset"+>getDTDSubset</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Avalidate"+>validate</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateDTD"+>validateDTD</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateDoc"+>validateDoc</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AremoveDoublicateDefs"+>removeDoublicateDefs</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Atransform"+>transform</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetDTDSubset"+></A+><B+>getDTDSubset</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Avalidate"+></A+><B+>validate</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Main validation filter. Check if the DTD and the document are valid.+</P+><UL+><LI+> returns : a function which expects a complete document as XmlTree input+                     and returns a list of all errors found.+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateDTD"+></A+><B+>validateDTD</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Check if the DTD is valid.+</P+><UL+><LI+> returns : a function which expects an XmlTree from the parser as input+                     and returns a list of all errors found in the DTD.+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateDoc"+></A+><B+>validateDoc</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Check if the document corresponds to the given DTD.+</P+><UL+><LI+> returns : a function which expects a complete document as XmlTree input+                     and returns a list of all errors found in the content part.+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveDoublicateDefs"+></A+><B+>removeDoublicateDefs</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Removes doublicate declarations from the DTD which first declaration is+ binding. This is the case for ATTLIST and ENTITY declarations.+</P+><UL+><LI+> returns : A function that replaces the children of DOCTYPE nodes by a list+               where all multiple declarations are removed.+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Atransform"+></A+><B+>transform</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>filter for transforming a document with respect to the given DTD.+</P+><P+>Validating parsers+ are expected to  normalize attribute values and add default values.+ This function should be called after a successful validation.+</P+><UL+><LI+> returns : a function which expects a complete XML document tree+                and returns the transformed XmlTree+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-Validator-XmlRE.html view
@@ -0,0 +1,718 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Validator.XmlRE</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/XmlRE.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Validator.XmlRE</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>A module for regular expression matching, adapted for XML DTDs.+</P+><P+>This module is based on the module RE.+</P+><P+>Author .\artin Schmidt+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcheckRE"+>checkRE</A+> :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Amatches"+>matches</A+> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprintRE"+>printRE</A+> :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_unit"+>re_unit</A+> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_zero"+>re_zero</A+> :: String -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_sym"+>re_sym</A+> :: a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_rep"+>re_rep</A+> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_plus"+>re_plus</A+> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_opt"+>re_opt</A+> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_seq"+>re_seq</A+> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_alt"+>re_alt</A+> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_dot"+>re_dot</A+> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3ARE"+></A+><B+>RE</B+> a</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>Data type for regular expressions.+</TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:RE')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:RE" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Eq a =&gt; Eq (<A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+>Show a =&gt; Show (<A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcheckRE"+></A+><B+>checkRE</B+> :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>Checks if an input matched a regular expression. The function should be+ called after matches.+</P+><P+>Was the sentence used in <TT+>matches</TT+> in the language of the regular expression?+ -&gt; matches e s == s `in` L(e)?+</P+><UL+><LI+> 1.parameter re :  the derived regular expression+</LI+><LI+> returns : empty String if input matched the regular expression, otherwise+               an error message is returned+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Amatches"+></A+><B+>matches</B+> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> String</TD+></TR+><TR+><TD CLASS="doc"+><P+>Derives a regular expression with respect to a list of elements.+</P+><UL+><LI+> 1.parameter re :  regular expression+</LI+><LI+> 2.parameter list :  list of elements to which the regular expression is applied+</LI+><LI+> returns : the derived regular expression+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprintRE"+></A+><B+>printRE</B+> :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs a string representation of a regular expression.+</P+><UL+><LI+> 1.parameter re :  a regular expression+</LI+><LI+> returns : the string representation of the regular expression+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_unit"+></A+><B+>re_unit</B+> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs a regular expression for an empty sequence.+</P+><UL+><LI+> returns : regular expression for an empty sequence+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_zero"+></A+><B+>re_zero</B+> :: String -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs a regular expression for an empty set.+</P+><UL+><LI+> 1.parameter errMsg :  error message+</LI+><LI+> returns : regular expression for an empty set+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_sym"+></A+><B+>re_sym</B+> :: a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs a regular expression for accepting a symbol+</P+><UL+><LI+> 1.parameter sym :  the symbol to be accepted+</LI+><LI+> returns : regular expression for accepting a symbol+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_rep"+></A+><B+>re_rep</B+> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs an optional repetition (*) of a regular expression+</P+><UL+><LI+> 1.parameter re_a :  regular expression to be repeted+</LI+><LI+> returns : new regular expression+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_plus"+></A+><B+>re_plus</B+> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs a repetition (+) of a regular expression+</P+><UL+><LI+> 1.parameter re_a :  regular expression to be repeted+</LI+><LI+> returns : new regular expression+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_opt"+></A+><B+>re_opt</B+> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs an option (?) of a regular expression+</P+><UL+><LI+> 1.parameter re_a :  regular expression to be optional+</LI+><LI+> returns : new regular expression+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_seq"+></A+><B+>re_seq</B+> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs a sequence (,) of two regular expressions+</P+><UL+><LI+> 1.parameter re_a :  first regular expression in sequence+</LI+><LI+> 2.parameter re_b :  second regular expression in sequence+</LI+><LI+> returns : new regular expression+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_alt"+></A+><B+>re_alt</B+> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs an alternative (|) of two regular expressions+</P+><UL+><LI+> 1.parameter re_a :  first regular expression of alternative+</LI+><LI+> 2.parameter re_b :  second regular expression of alternative+</LI+><LI+> returns : new regular expression+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_dot"+></A+><B+>re_dot</B+> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs a regular expression for accepting any singel symbol+</P+><UL+><LI+> returns : regular expression for accepting any singel symbol+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-XPath-NavTree.html view
@@ -0,0 +1,309 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.XPath.NavTree</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/NavTree.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.XPath.NavTree</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>Navigable tree structure which allow a program to traverse+ for XPath expressions+ copied and modified from HXML (<A HREF="http://www.flightlab.com/~joe/hxml/"+>http://www.flightlab.com/~joe/hxml/</A+>)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparentAxis"+></A+><B+>parentAxis</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AancestorAxis"+></A+><B+>ancestorAxis</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AancestorOrSelfAxis"+></A+><B+>ancestorOrSelfAxis</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchildAxis"+></A+><B+>childAxis</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdescendantAxis"+></A+><B+>descendantAxis</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdescendantOrSelfAxis"+></A+><B+>descendantOrSelfAxis</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfollowingSiblingAxis"+></A+><B+>followingSiblingAxis</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprecedingSiblingAxis"+></A+><B+>precedingSiblingAxis</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AselfAxis"+></A+><B+>selfAxis</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfollowingAxis"+></A+><B+>followingAxis</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprecedingAxis"+></A+><B+>precedingAxis</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AattributeAxis"+></A+><B+>attributeAxis</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+>]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Data-NavTree.html"+>Data.NavTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-XPath-XPathArithmetic.html view
@@ -0,0 +1,308 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.XPath.XPathArithmetic</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathArithmetic.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.XPath.XPathArithmetic</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>The module contains arithmetic calculations according the IEEE 754 standard+ for plus, minus, unary minus, multiplication, modulo and division.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AxPathMulti"+>xPathMulti</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"+>Op</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxPathMod"+>xPathMod</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"+>Op</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxPathDiv"+>xPathDiv</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"+>Op</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxPathAdd"+>xPathAdd</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"+>Op</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxPathUnary"+>xPathUnary</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxPathMulti"+></A+><B+>xPathMulti</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"+>Op</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Multiplication+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxPathMod"+></A+><B+>xPathMod</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"+>Op</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Modulo+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxPathDiv"+></A+><B+>xPathDiv</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"+>Op</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Division: the divison-operator is not according the IEEE 754 standard,+ it calculates the same as the % operator in Java and ECMAScript+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxPathAdd"+></A+><B+>xPathAdd</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"+>Op</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Plus and minus+</P+><P+>1.parameter op :  plus or minus operation+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxPathUnary"+></A+><B+>xPathUnary</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Unary minus: the value <TT+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANaN"+>NaN</A+></TT+> is not calculatable and returned unchanged,+ all other values can be denied.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-XPath-XPathDataTypes.html view
@@ -0,0 +1,2632 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.XPath.XPathDataTypes</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathDataTypes.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.XPath.XPathDataTypes</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>The core data types of XPath.+ The Type NodeSet is based on the module <A HREF="NavTree.html"+>NavTree</A+> which was adapted from+ HXML (<A HREF="http://www.flightlab.com/~joe/hxml/"+>http://www.flightlab.com/~joe/hxml/</A+>)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AExpr"+>Expr</A+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>= <A HREF="#v%3AGenExpr"+>GenExpr</A+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"+>Op</A+> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+>]</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3APathExpr"+>PathExpr</A+> (Maybe <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+>) (Maybe <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALocationPath"+>LocationPath</A+>)</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AFilterExpr"+>FilterExpr</A+> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+>]</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AVarExpr"+>VarExpr</A+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarName"+>VarName</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ALiteralExpr"+>LiteralExpr</A+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALiteral"+>Literal</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ANumberExpr"+>NumberExpr</A+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"+>XPNumber</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AFctExpr"+>FctExpr</A+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AFctName"+>FctName</A+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AFctArguments"+>FctArguments</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AOp"+>Op</A+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>= <A HREF="#v%3AOr"+>Or</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AAnd"+>And</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AEq"+>Eq</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ANEq"+>NEq</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ALess"+>Less</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AGreater"+>Greater</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ALessEq"+>LessEq</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AGreaterEq"+>GreaterEq</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3APlus"+>Plus</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AMinus"+>Minus</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ADiv"+>Div</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AMod"+>Mod</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AMult"+>Mult</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AUnary"+>Unary</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AUnion"+>Union</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AXPNumber"+>XPNumber</A+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>= <A HREF="#v%3AFloat"+>Float</A+> Float</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ANaN"+>NaN</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ANegInf"+>NegInf</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ANeg0"+>Neg0</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3APos0"+>Pos0</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3APosInf"+>PosInf</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3ALocationPath"+>LocationPath</A+>  = <A HREF="#v%3ALocPath"+>LocPath</A+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3APath"+>Path</A+> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXStep"+>XStep</A+>]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3APath"+>Path</A+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>= <A HREF="#v%3ARel"+>Rel</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AAbs"+>Abs</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AXStep"+>XStep</A+>  = <A HREF="#v%3AStep"+>Step</A+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AAxisSpec"+>AxisSpec</A+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"+>NodeTest</A+> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+>]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AAxisSpec"+>AxisSpec</A+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>= <A HREF="#v%3AAncestor"+>Ancestor</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AAncestorOrSelf"+>AncestorOrSelf</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AAttribute"+>Attribute</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AChild"+>Child</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ADescendant"+>Descendant</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ADescendantOrSelf"+>DescendantOrSelf</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AFollowing"+>Following</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AFollowingSibling"+>FollowingSibling</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ANamespace"+>Namespace</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AParent"+>Parent</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3APreceding"+>Preceding</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3APrecedingSibling"+>PrecedingSibling</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ASelf"+>Self</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3ANodeTest"+>NodeTest</A+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>= <A HREF="#v%3ANameTest"+>NameTest</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3API"+>PI</A+> String</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ATypeTest"+>TypeTest</A+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathNode"+>XPathNode</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AXPathNode"+>XPathNode</A+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>= <A HREF="#v%3AXPNode"+>XPNode</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXPCommentNode"+>XPCommentNode</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXPPINode"+>XPPINode</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXPTextNode"+>XPTextNode</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AName"+>Name</A+> = (<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANamePrefix"+>NamePrefix</A+>, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALocalName"+>LocalName</A+>)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ANamePrefix"+>NamePrefix</A+> = String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ALocalName"+>LocalName</A+> = String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AVarName"+>VarName</A+> = <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AName"+>Name</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ALiteral"+>Literal</A+> = String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AFctName"+>FctName</A+> = String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AFctArguments"+>FctArguments</A+> = [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+>]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AContext"+>Context</A+> = (<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AConPos"+>ConPos</A+>, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AConLen"+>ConLen</A+>, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AConNode"+>ConNode</A+>)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AConPos"+>ConPos</A+> = Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AConLen"+>ConLen</A+> = Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AConNode"+>ConNode</A+> = <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"+>NavXmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AXPathValue"+>XPathValue</A+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>= <A HREF="#v%3AXPVNode"+>XPVNode</A+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeSet"+>NodeSet</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXPVBool"+>XPVBool</A+> Bool</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXPVNumber"+>XPVNumber</A+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"+>XPNumber</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXPVString"+>XPVString</A+> String</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXPVError"+>XPVError</A+> String</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ANavXmlTree"+>NavXmlTree</A+> = <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ANavXmlTrees"+>NavXmlTrees</A+> = [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"+>NavXmlTree</A+>]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ANodeSet"+>NodeSet</A+> = <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTrees"+>NavXmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AXPathFilter"+>XPathFilter</A+> = <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AVarTab"+>VarTab</A+> = [(<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarName"+>VarName</A+>, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+>)]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AKeyTab"+>KeyTab</A+> = [(<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>, String, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"+>NavXmlTree</A+>)]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AEnv"+>Env</A+> = (<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarTab"+>VarTab</A+>, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AKeyTab"+>KeyTab</A+>)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AvarEnv"+>varEnv</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"+>Env</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-XPath-NavTree.html"+>Text.XML.HXT.XPath.NavTree</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AExpr"+></A+><B+>Expr</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>Represents expression+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AGenExpr"+></A+><B+>GenExpr</B+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"+>Op</A+> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+>]</TD+><TD CLASS="rdoc"+>generic expression with an operator and one or more operands+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3APathExpr"+></A+><B+>PathExpr</B+> (Maybe <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+>) (Maybe <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALocationPath"+>LocationPath</A+>)</TD+><TD CLASS="rdoc"+>a path expression contains an optional filter-expression+ or an optional locationpath. one expression is urgently+ necessary, both are possible+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AFilterExpr"+></A+><B+>FilterExpr</B+> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+>]</TD+><TD CLASS="rdoc"+>filter-expression with zero or more predicates+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AVarExpr"+></A+><B+>VarExpr</B+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarName"+>VarName</A+></TD+><TD CLASS="rdoc"+>variable+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ALiteralExpr"+></A+><B+>LiteralExpr</B+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALiteral"+>Literal</A+></TD+><TD CLASS="rdoc"+>string+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ANumberExpr"+></A+><B+>NumberExpr</B+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"+>XPNumber</A+></TD+><TD CLASS="rdoc"+>number+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AFctExpr"+></A+><B+>FctExpr</B+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AFctName"+>FctName</A+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AFctArguments"+>FctArguments</A+></TD+><TD CLASS="rdoc"+>a function with a name and an optional list of arguments+</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Expr')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:Expr" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AOp"+></A+><B+>Op</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>Represents XPath operators+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AOr"+></A+><B+>Or</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AAnd"+></A+><B+>And</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AEq"+></A+><B+>Eq</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ANEq"+></A+><B+>NEq</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ALess"+></A+><B+>Less</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AGreater"+></A+><B+>Greater</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ALessEq"+></A+><B+>LessEq</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AGreaterEq"+></A+><B+>GreaterEq</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3APlus"+></A+><B+>Plus</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AMinus"+></A+><B+>Minus</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ADiv"+></A+><B+>Div</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AMod"+></A+><B+>Mod</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AMult"+></A+><B+>Mult</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AUnary"+></A+><B+>Unary</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AUnion"+></A+><B+>Union</B+></TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Op')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:Op" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"+>Op</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"+>Op</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AXPNumber"+></A+><B+>XPNumber</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+><P+>Represents a floating-point number according the IEEE 754 standard+</P+><P+>The standard includes a special Not-a-Number (NaN) value,+ positive and negative infinity, positive and negative zero.+</P+></TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AFloat"+></A+><B+>Float</B+> Float</TD+><TD CLASS="rdoc"+>floating-point number+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ANaN"+></A+><B+>NaN</B+></TD+><TD CLASS="rdoc"+>not-a-number+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ANegInf"+></A+><B+>NegInf</B+></TD+><TD CLASS="rdoc"+>negative infinity+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ANeg0"+></A+><B+>Neg0</B+></TD+><TD CLASS="rdoc"+>negative zero+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3APos0"+></A+><B+>Pos0</B+></TD+><TD CLASS="rdoc"+>positive zero+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3APosInf"+></A+><B+>PosInf</B+></TD+><TD CLASS="rdoc"+>positive infinity+</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XPNumber')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:XPNumber" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"+>XPNumber</A+></TD+></TR+><TR+><TD CLASS="decl"+>Ord <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"+>XPNumber</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"+>XPNumber</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3ALocationPath"+></A+><B+>LocationPath</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+><P+>Represents location path+</P+><P+>A location path consists of a sequence of one or more location steps.+</P+></TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ALocPath"+></A+><B+>LocPath</B+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3APath"+>Path</A+> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXStep"+>XStep</A+>]</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:LocationPath')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:LocationPath" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALocationPath"+>LocationPath</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALocationPath"+>LocationPath</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3APath"+></A+><B+>Path</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>A location path is either a relative or an absolute path.+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ARel"+></A+><B+>Rel</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AAbs"+></A+><B+>Abs</B+></TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Path')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:Path" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3APath"+>Path</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3APath"+>Path</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AXStep"+></A+><B+>XStep</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+><P+>Represents location step+</P+><P+>A location step consists of an axis, a node-test and zero or more predicates.+</P+></TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AStep"+></A+><B+>Step</B+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AAxisSpec"+>AxisSpec</A+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"+>NodeTest</A+> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+>]</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XStep')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:XStep" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXStep"+>XStep</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXStep"+>XStep</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AAxisSpec"+></A+><B+>AxisSpec</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>Represents XPath axis+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AAncestor"+></A+><B+>Ancestor</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AAncestorOrSelf"+></A+><B+>AncestorOrSelf</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AAttribute"+></A+><B+>Attribute</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AChild"+></A+><B+>Child</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ADescendant"+></A+><B+>Descendant</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ADescendantOrSelf"+></A+><B+>DescendantOrSelf</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AFollowing"+></A+><B+>Following</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AFollowingSibling"+></A+><B+>FollowingSibling</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ANamespace"+></A+><B+>Namespace</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AParent"+></A+><B+>Parent</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3APreceding"+></A+><B+>Preceding</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3APrecedingSibling"+></A+><B+>PrecedingSibling</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ASelf"+></A+><B+>Self</B+></TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:AxisSpec')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:AxisSpec" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AAxisSpec"+>AxisSpec</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AAxisSpec"+>AxisSpec</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3ANodeTest"+></A+><B+>NodeTest</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>Represents XPath node-tests+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ANameTest"+></A+><B+>NameTest</B+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+><TD CLASS="rdoc"+>name-test+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3API"+></A+><B+>PI</B+> String</TD+><TD CLASS="rdoc"+>processing-instruction-test with a literal argument+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ATypeTest"+></A+><B+>TypeTest</B+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathNode"+>XPathNode</A+></TD+><TD CLASS="rdoc"+>all nodetype-tests+</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:NodeTest')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:NodeTest" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"+>NodeTest</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"+>NodeTest</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AXPathNode"+></A+><B+>XPathNode</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>Represents nodetype-tests+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AXPNode"+></A+><B+>XPNode</B+></TD+><TD CLASS="rdoc"+>all 7 nodetypes+  (root, element, attribute, namespace, pi, comment, text)+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXPCommentNode"+></A+><B+>XPCommentNode</B+></TD+><TD CLASS="rdoc"+>comment-nodes+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXPPINode"+></A+><B+>XPPINode</B+></TD+><TD CLASS="rdoc"+>processing-instruction-nodes+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXPTextNode"+></A+><B+>XPTextNode</B+></TD+><TD CLASS="rdoc"+>text-nodes: cdata, character data+</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XPathNode')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:XPathNode" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathNode"+>XPathNode</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathNode"+>XPathNode</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AName"+></A+><B+>Name</B+> = (<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANamePrefix"+>NamePrefix</A+>, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALocalName"+>LocalName</A+>)</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ANamePrefix"+></A+><B+>NamePrefix</B+> = String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ALocalName"+></A+><B+>LocalName</B+> = String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AVarName"+></A+><B+>VarName</B+> = <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AName"+>Name</A+></TD+></TR+><TR+><TD CLASS="doc"+>Variable name+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ALiteral"+></A+><B+>Literal</B+> = String</TD+></TR+><TR+><TD CLASS="doc"+>a string+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AFctName"+></A+><B+>FctName</B+> = String</TD+></TR+><TR+><TD CLASS="doc"+>Function name+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AFctArguments"+></A+><B+>FctArguments</B+> = [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+>]</TD+></TR+><TR+><TD CLASS="doc"+>Function arguments+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AContext"+></A+><B+>Context</B+> = (<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AConPos"+>ConPos</A+>, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AConLen"+>ConLen</A+>, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AConNode"+>ConNode</A+>)</TD+></TR+><TR+><TD CLASS="doc"+>Evaluation context+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AConPos"+></A+><B+>ConPos</B+> = Int</TD+></TR+><TR+><TD CLASS="doc"+>Context position+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AConLen"+></A+><B+>ConLen</B+> = Int</TD+></TR+><TR+><TD CLASS="doc"+>Context length+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AConNode"+></A+><B+>ConNode</B+> = <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"+>NavXmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>Context node+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AXPathValue"+></A+><B+>XPathValue</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>Represents XPath results+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AXPVNode"+></A+><B+>XPVNode</B+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeSet"+>NodeSet</A+></TD+><TD CLASS="rdoc"+>node-set+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXPVBool"+></A+><B+>XPVBool</B+> Bool</TD+><TD CLASS="rdoc"+>boolean value+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXPVNumber"+></A+><B+>XPVNumber</B+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"+>XPNumber</A+></TD+><TD CLASS="rdoc"+>number according the IEEE 754 standard+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXPVString"+></A+><B+>XPVString</B+> String</TD+><TD CLASS="rdoc"+>string value+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXPVError"+></A+><B+>XPVError</B+> String</TD+><TD CLASS="rdoc"+>error message with text+</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XPathValue')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:XPathValue" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+></TD+></TR+><TR+><TD CLASS="decl"+>Ord <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ANavXmlTree"+></A+><B+>NavXmlTree</B+> = <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="doc"+>Node of navigable tree representation+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ANavXmlTrees"+></A+><B+>NavXmlTrees</B+> = [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"+>NavXmlTree</A+>]</TD+></TR+><TR+><TD CLASS="doc"+>List of nodes of navigable tree representation+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ANodeSet"+></A+><B+>NodeSet</B+> = <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTrees"+>NavXmlTrees</A+></TD+></TR+><TR+><TD CLASS="doc"+>Type synonym for a list of navigable tree representation+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AXPathFilter"+></A+><B+>XPathFilter</B+> = <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+></TD+></TR+><TR+><TD CLASS="doc"+>A functions that takes a XPath result and returns a XPath result+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AVarTab"+></A+><B+>VarTab</B+> = [(<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarName"+>VarName</A+>, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+>)]</TD+></TR+><TR+><TD CLASS="doc"+><P+>XPath environment+</P+><P+>All variables are stored in the environment,+ each variable name is bound to a value.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AKeyTab"+></A+><B+>KeyTab</B+> = [(<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>, String, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"+>NavXmlTree</A+>)]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AEnv"+></A+><B+>Env</B+> = (<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarTab"+>VarTab</A+>, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AKeyTab"+>KeyTab</A+>)</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvarEnv"+></A+><B+>varEnv</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"+>Env</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-XPath-NavTree.html"+>Text.XML.HXT.XPath.NavTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-XPath-XPathEval.html view
@@ -0,0 +1,445 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.XPath.XPathEval</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathEval.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.XPath.XPathEval</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: XPathEval.hs,v 1.8 2006<EM+>10</EM+>12 11:51:29 hxml Exp $+</P+><P+>The core functions for evaluating the different types of XPath expressions.+   Each <TT+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+></TT+>-constructor is mapped to an evaluation function.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXPath"+>getXPath</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXPathWithNsEnv"+>getXPathWithNsEnv</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXPathSubTrees"+>getXPathSubTrees</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXPathSubTreesWithNsEnv"+>getXPathSubTreesWithNsEnv</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXPathNodeSet"+>getXPathNodeSet</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXPathNodeSetWithNsEnv"+>getXPathNodeSetWithNsEnv</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AevalExpr"+>evalExpr</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"+>Env</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"+>Context</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXPath"+></A+><B+>getXPath</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Select parts of a document by an XPath expression.+</P+><P+>The main filter for selecting parts of a document via XPath.+ The string argument must be a XPath expression with an absolute location path,+ the argument tree must be a complete document tree.+ Result is a possibly empty list of XmlTrees forming the set of selected XPath values.+ XPath values other than XmlTrees (numbers, attributes, tagnames, ...)+ are convertet to text nodes.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXPathWithNsEnv"+></A+><B+>getXPathWithNsEnv</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Select parts of a document by a namespace aware XPath expression.+</P+><P+>Works like <TT+><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AgetXPath"+>getXPath</A+></TT+> but the prefix:localpart names in the XPath expression+ are interpreted with respect to the given namespace environment+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXPathSubTrees"+></A+><B+>getXPathSubTrees</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Select parts of an XML tree by a XPath expression.+</P+><P+>The main filter for selecting parts of an arbitrary XML tree via XPath.+ The string argument must be a XPath expression with an absolute location path,+ There are no restrictions on the arument tree.+</P+><P+>No canonicalization is performed before evaluating the query+</P+><P+>Result is a possibly empty list of XmlTrees forming the set of selected XPath values.+ XPath values other than XmlTrees (numbers, attributes, tagnames, ...)+ are convertet to text nodes.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXPathSubTreesWithNsEnv"+></A+><B+>getXPathSubTreesWithNsEnv</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Same as <TT+><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AgetXPathSubTrees"+>getXPathSubTrees</A+></TT+> but with namespace aware XPath expression+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXPathNodeSet"+></A+><B+>getXPathNodeSet</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="doc"+>compute the node set of an XPath query+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXPathNodeSetWithNsEnv"+></A+><B+>getXPathNodeSetWithNsEnv</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="doc"+>compute the node set of a namespace aware XPath query+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AevalExpr"+></A+><B+>evalExpr</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"+>Env</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"+>Context</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>The main evaluation entry point. + Each XPath-<TT+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+></TT+> is mapped to an evaluation function. The <TT+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"+>Env</A+></TT+>-parameter contains the set of global variables+ for the evaluator, the <TT+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"+>Context</A+></TT+>-parameter the root of the tree in which the expression is evaluated.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-XPath-XPathFct.html view
@@ -0,0 +1,644 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.XPath.XPathFct</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathFct.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.XPath.XPathFct</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>The module contains the core-functions of the XPath function library.+ All functions are implemented as XFct. Each XFct contains the evaluation context,+ the variable environment and the function arguments.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AXFct"+>XFct</A+> = <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"+>Context</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"+>Env</A+> -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+>] -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AevalFct"+>evalFct</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AFctName"+>FctName</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"+>Env</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"+>Context</A+> -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+>] -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtoXValue"+>toXValue</A+> :: <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"+>XFct</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"+>Context</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"+>Env</A+> -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+>] -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+>]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Axnumber"+>xnumber</A+> :: <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"+>XFct</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Axboolean"+>xboolean</A+> :: <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"+>XFct</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Axstring"+>xstring</A+> :: <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"+>XFct</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetConvFct"+>getConvFct</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; Maybe <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"+>XFct</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AstringValue"+>stringValue</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"+>NavXmlTree</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AremDups"+>remDups</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisNotInNodeList"+>isNotInNodeList</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"+>NavXmlTree</A+> -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"+>NavXmlTree</A+>] -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcreateDocumentOrder"+>createDocumentOrder</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcreateDocumentOrderReverse"+>createDocumentOrderReverse</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetVarTab"+>getVarTab</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"+>Env</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarTab"+>VarTab</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetKeyTab"+>getKeyTab</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"+>Env</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AKeyTab"+>KeyTab</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AXFct"+></A+><B+>XFct</B+> = <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"+>Context</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"+>Env</A+> -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+>] -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+></TD+></TR+><TR+><TD CLASS="doc"+>Type signature for all functions which can be used in the XPath module.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AevalFct"+></A+><B+>evalFct</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AFctName"+>FctName</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"+>Env</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"+>Context</A+> -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+>] -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Evaluates a function.+ Calculation of the function value is done by looking up the function name in the function table,+ check the number of arguments and calculate the funtion, if no+ argument evaluation returns an error.+</P+><UL+><LI+> returns : the function value as <TT+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+></TT+>+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtoXValue"+></A+><B+>toXValue</B+> :: <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"+>XFct</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"+>Context</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"+>Env</A+> -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+>] -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+>]</TD+></TR+><TR+><TD CLASS="doc"+><P+>Converts a list of different <TT+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+></TT+> types in a list of one <TT+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+></TT+> type.+</P+><UL+><LI+> 1.parameter fct :  the conversion function+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Axnumber"+></A+><B+>xnumber</B+> :: <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"+>XFct</A+></TD+></TR+><TR+><TD CLASS="doc"+>number number(object?): converts its argument to a number+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Axboolean"+></A+><B+>xboolean</B+> :: <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"+>XFct</A+></TD+></TR+><TR+><TD CLASS="doc"+>boolean boolean(object): converts its argument to a boolean value+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Axstring"+></A+><B+>xstring</B+> :: <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"+>XFct</A+></TD+></TR+><TR+><TD CLASS="doc"+>string string(object?): converts an object to a string+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetConvFct"+></A+><B+>getConvFct</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; Maybe <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"+>XFct</A+></TD+></TR+><TR+><TD CLASS="doc"+>Returns the conversion function for the XPath results: string, boolean and number+ A nodeset can not be converted.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AstringValue"+></A+><B+>stringValue</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"+>NavXmlTree</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+></TD+></TR+><TR+><TD CLASS="doc"+>Returns the string-value of a node,+ the value of a namespace node is not supported+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremDups"+></A+><B+>remDups</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Filter for removing identical fragment trees in a nodeset+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisNotInNodeList"+></A+><B+>isNotInNodeList</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"+>NavXmlTree</A+> -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"+>NavXmlTree</A+>] -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>Check whether a node is not a part of a node list. Needed to implement matching &amp; testing in xslt.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcreateDocumentOrder"+></A+><B+>createDocumentOrder</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Filter for ordering a list of Nodes in document order+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcreateDocumentOrderReverse"+></A+><B+>createDocumentOrderReverse</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Filter for ordering a list of Nodes in reverse document order+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetVarTab"+></A+><B+>getVarTab</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"+>Env</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarTab"+>VarTab</A+></TD+></TR+><TR+><TD CLASS="doc"+>Returns the table of variables from the environment+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetKeyTab"+></A+><B+>getKeyTab</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"+>Env</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AKeyTab"+>KeyTab</A+></TD+></TR+><TR+><TD CLASS="doc"+>Returns the table of keys, needed by xslt, from the environment+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-XPath-XPathKeywords.html view
@@ -0,0 +1,310 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.XPath.XPathKeywords</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathKeywords.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.XPath.XPathKeywords</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>$Id: XPathKeywords.hs,v 1.1 2004<EM+>09</EM+>02 19:12:05 hxml Exp $+</P+><P+>the XPath keywords+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_ancestor"+></A+><B+>a_ancestor</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_ancestor_or_self"+></A+><B+>a_ancestor_or_self</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_attribute"+></A+><B+>a_attribute</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_child"+></A+><B+>a_child</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_descendant"+></A+><B+>a_descendant</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_descendant_or_self"+></A+><B+>a_descendant_or_self</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_following"+></A+><B+>a_following</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_following_sibling"+></A+><B+>a_following_sibling</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_namespace"+></A+><B+>a_namespace</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_parent"+></A+><B+>a_parent</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_preceding"+></A+><B+>a_preceding</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_preceding_sibling"+></A+><B+>a_preceding_sibling</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_self"+></A+><B+>a_self</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3An_comment"+></A+><B+>n_comment</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3An_text"+></A+><B+>n_text</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3An_processing_instruction"+></A+><B+>n_processing_instruction</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3An_node"+></A+><B+>n_node</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-XPath-XPathParser.html view
@@ -0,0 +1,224 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.XPath.XPathParser</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathParser.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.XPath.XPathParser</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: XPathParser.hs,v 1.6 2006<EM+>10</EM+>12 11:51:29 hxml Exp $+</P+><P+>the XPath Parser+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseNumber"+>parseNumber</A+> :: String -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseXPath"+>parseXPath</A+> :: XParser <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseNumber"+></A+><B+>parseNumber</B+> :: String -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>parsing a number, parseNumber is used in <A HREF="XPathFct.html"+>XPathFct</A+>+ by the number function+</P+><UL+><LI+> returns : the parsed number as <TT+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"+>XPNumber</A+></TT+> float+                or <TT+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPVNumber"+>XPVNumber</A+></TT+> <TT+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANaN"+>NaN</A+></TT+> in case of error+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXPath"+></A+><B+>parseXPath</B+> :: XParser <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+></TD+></TR+><TR+><TD CLASS="doc"+>the main entry point:+ parsing a XPath expression+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-XPath-XPathToNodeSet.html view
@@ -0,0 +1,176 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.XPath.XPathToNodeSet</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathToNodeSet.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.XPath.XPathToNodeSet</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>Convert an XPath result set into a node set+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AxPValue2NodeSet"+>xPValue2NodeSet</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AemptyNodeSet"+>emptyNodeSet</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxPValue2NodeSet"+></A+><B+>xPValue2NodeSet</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Convert a a XPath-value into a XmlNodeSet represented by a tree structure+</P+><P+>The XmlNodeSet can be used to traverse a tree an process all+ marked nodes.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AemptyNodeSet"+></A+><B+>emptyNodeSet</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-XPath-XPathToString.html view
@@ -0,0 +1,304 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.XPath.XPathToString</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathToString.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.XPath.XPathToString</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>Format an expression or value in tree- or string-representation+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3Aexpr2XPathTree"+>expr2XPathTree</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+> -&gt; XPathTree</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxPValue2String"+>xPValue2String</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxPValue2XmlTrees"+>xPValue2XmlTrees</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ant2XPathTree"+>nt2XPathTree</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"+>NodeTest</A+> -&gt; XPathTree</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Apred2XPathTree"+>pred2XPathTree</A+> :: [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+>] -&gt; XPathTree</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtoXPathTree"+>toXPathTree</A+> :: [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a] -&gt; [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a]</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aexpr2XPathTree"+></A+><B+>expr2XPathTree</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+> -&gt; XPathTree</TD+></TR+><TR+><TD CLASS="doc"+>Format a parsed XPath-expression in tree representation.+ Text output is done by <TT+><A HREF="Text-XML-HXT-DOM-FormatXmlTree.html#v%3AformatXmlTree"+>formatXmlTree</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxPValue2String"+></A+><B+>xPValue2String</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>Format a XPath-value in string representation.+ Text output is done by <TT+><A HREF="Text-XML-HXT-DOM-FormatXmlTree.html#v%3AformatXmlTree"+>formatXmlTree</A+></TT+> for node-sets (trees),+ all other values are represented as strings.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxPValue2XmlTrees"+></A+><B+>xPValue2XmlTrees</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="doc"+>Convert a a XPath-value into XmlTrees.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ant2XPathTree"+></A+><B+>nt2XPathTree</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"+>NodeTest</A+> -&gt; XPathTree</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Apred2XPathTree"+></A+><B+>pred2XPathTree</B+> :: [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+>] -&gt; XPathTree</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtoXPathTree"+></A+><B+>toXPathTree</B+> :: [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a] -&gt; [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a]</TD+></TR+><TR+><TD CLASS="doc"+>Convert an navigable tree in a xmltree+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-XPath.html view
@@ -0,0 +1,135 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.XPath</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.XPath</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>This helper module exports elements from the basic libraries:
+ XPathEval, XPathToString and XPathParser
+</P+><P+>Author : Torben Kuseler
+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-XPath-XPathEval.html"+>Text.XML.HXT.XPath.XPathEval</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-XPath-XPathToString.html"+>Text.XML.HXT.XPath.XPathToString</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-XPath-XPathParser.html"+>Text.XML.HXT.XPath.XPathParser</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-XSLT-Application.html view
@@ -0,0 +1,195 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.XSLT.Application</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/Application.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.XSLT.Application</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: Application.hs,v 1.6 2006<EM+>11</EM+>17 17:16:24 hxml Exp $+</P+><P+>The transformation functions for XSLT transformation of XML documents+</P+><P+>Exports only two pure functions <TT+><A HREF="Text-XML-HXT-XSLT-Application.html#v%3AapplyStylesheet"+>applyStylesheet</A+></TT+> and <TT+><A HREF="Text-XML-HXT-XSLT-Application.html#v%3AapplyStylesheetWParams"+>applyStylesheetWParams</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AapplyStylesheet"+></A+><B+>applyStylesheet</B+> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AapplyStylesheetWParams"+></A+><B+>applyStylesheetWParams</B+> :: <A HREF="Text-XML-HXT-XSLT-Application.html#t%3AXPathParams"+>XPathParams</A+> -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AXPathParams"+></A+><B+>XPathParams</B+> = Map <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-XSLT-Common.html view
@@ -0,0 +1,925 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.XSLT.Common</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/Common.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.XSLT.Common</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: Common.hs,v 1.4 2006<EM+>11</EM+>11 15:36:05 hxml Exp $+</P+><P+>Common imports and functions for HXSLT+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Arrow-XmlNode.html"+>Text.XML.HXT.Arrow.XmlNode</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-XmlKeywords.html"+>Text.XML.HXT.DOM.XmlKeywords</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html"+>Text.XML.HXT.DOM.XmlTreeTypes</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-FormatXmlTree.html"+>Text.XML.HXT.DOM.FormatXmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-XPath-XPathParser.html"+>Text.XML.HXT.XPath.XPathParser</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-XPath-XPathEval.html"+>Text.XML.HXT.XPath.XPathEval</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-XPath-XPathFct.html"+>Text.XML.HXT.XPath.XPathFct</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-XPath-XPathToString.html"+>Text.XML.HXT.XPath.XPathToString</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Data-NavTree.html"+>Data.NavTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Data-Tree-Class.html"+>Data.Tree.Class</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfilterTree"+></A+><B+>filterTree</B+> :: <A HREF="Data-Tree-Class.html#t%3ATree"+>Tree</A+> t =&gt; (a -&gt; Bool) -&gt; t a -&gt; Maybe (t a)</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmapTreeCtx"+></A+><B+>mapTreeCtx</B+> :: <A HREF="Data-Tree-Class.html#t%3ATree"+>Tree</A+> t =&gt; (c -&gt; a -&gt; (c, b)) -&gt; c -&gt; t a -&gt; t b</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfilterTreeCtx"+></A+><B+>filterTreeCtx</B+> :: <A HREF="Data-Tree-Class.html#t%3ATree"+>Tree</A+> t =&gt; (c -&gt; a -&gt; (c, Bool)) -&gt; c -&gt; t a -&gt; Maybe (t a)</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AzipTreeWith"+></A+><B+>zipTreeWith</B+> :: <A HREF="Data-Tree-Class.html#t%3ATree"+>Tree</A+> t =&gt; (a -&gt; b -&gt; c) -&gt; t a -&gt; t b -&gt; t c</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AzipTree"+></A+><B+>zipTree</B+> :: <A HREF="Data-Tree-Class.html#t%3ATree"+>Tree</A+> t =&gt; t a -&gt; t b -&gt; t (a, b)</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AunzipTree"+></A+><B+>unzipTree</B+> :: Functor t =&gt; t (a, b) -&gt; (t a, t b)</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisRoot"+></A+><B+>isRoot</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisElemType"+></A+><B+>isElemType</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>XmlNode</A+> n =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; n -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisAttrType"+></A+><B+>isAttrType</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>XmlNode</A+> n =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; n -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisWhitespaceNode"+></A+><B+>isWhitespaceNode</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>XmlNode</A+> n =&gt; n -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcollectTextnodes"+></A+><B+>collectTextnodes</B+> :: [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>] -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtryFetchAttribute"+></A+><B+>tryFetchAttribute</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>XmlNode</A+> n =&gt; n -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfetchAttributeWDefault"+></A+><B+>fetchAttributeWDefault</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>XmlNode</A+> n =&gt; n -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfetchAttribute"+></A+><B+>fetchAttribute</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>XmlNode</A+> n =&gt; n -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasAttribute"+></A+><B+>hasAttribute</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>XmlNode</A+> n =&gt; n -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetAttribute"+></A+><B+>setAttribute</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>XmlNode</A+> n =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String -&gt; n -&gt; n</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkQName"+></A+><B+>mkQName</B+> :: String -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AExName"+></A+><B+>ExName</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AExName"+></A+><B+>ExName</B+> String String</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ExName')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:ExName" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+></TD+></TR+><TR+><TD CLASS="decl"+>Ord <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkExName"+></A+><B+>mkExName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AexLocal"+></A+><B+>exLocal</B+> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AexUri"+></A+><B+>exUri</B+> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseExName"+></A+><B+>parseExName</B+> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"+>UriMapping</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AUriMapping"+></A+><B+>UriMapping</B+> = Map String String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetUriMap"+></A+><B+>getUriMap</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>XmlNode</A+> n =&gt; n -&gt; <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"+>UriMapping</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetUriMap"+></A+><B+>setUriMap</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>XmlNode</A+> n =&gt; <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"+>UriMapping</A+> -&gt; n -&gt; n</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AuriMap2Attrs"+></A+><B+>uriMap2Attrs</B+> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"+>UriMapping</A+> -&gt; [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AexpandNSDecls"+></A+><B+>expandNSDecls</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AlookupPrefix"+></A+><B+>lookupPrefix</B+> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"+>UriMapping</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisNsAttr"+></A+><B+>isNsAttr</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkLiteralExpr"+></A+><B+>mkLiteralExpr</B+> :: String -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkStringExpr"+></A+><B+>mkStringExpr</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkBoolExpr"+></A+><B+>mkBoolExpr</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkTrueExpr"+></A+><B+>mkTrueExpr</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AconcatExpr"+></A+><B+>concatExpr</B+> :: [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+>] -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsplitExpr"+></A+><B+>splitExpr</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+> -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+>]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AunionExpr"+></A+><B+>unionExpr</B+> :: [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+>] -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsplitMatchByPrio"+></A+><B+>splitMatchByPrio</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+> -&gt; [(Float, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+>)]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcomputePriority"+></A+><B+>computePriority</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+> -&gt; Float</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcomputeNTestPriority"+></A+><B+>computeNTestPriority</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"+>NodeTest</A+> -&gt; Float</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisMatchExpr"+></A+><B+>isMatchExpr</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfromJustErr"+></A+><B+>fromJustErr</B+> :: String -&gt; Maybe a -&gt; a</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AreadWDefault"+></A+><B+>readWDefault</B+> :: Read a =&gt; a -&gt; String -&gt; a</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-XSLT-Compilation.html view
@@ -0,0 +1,162 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.XSLT.Compilation</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/Compilation.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.XSLT.Compilation</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: Compilation.hs,v 1.6 2006<EM+>11</EM+>11 15:36:05 hxml Exp $+</P+><P+>The compilation functions for XSLT stylesheets+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprepareXSLTDocument"+></A+><B+>prepareXSLTDocument</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AassembleStylesheet"+></A+><B+>assembleStylesheet</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+>] -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-XSLT-CompiledStylesheet.html view
@@ -0,0 +1,1815 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.XSLT.CompiledStylesheet</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/CompiledStylesheet.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.XSLT.CompiledStylesheet</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: CompiledStylesheet.hs,v 1.2 2006<EM+>11</EM+>11 15:36:05 hxml Exp $+</P+><P+>Types for compiled stylesheets+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3ACompiledStylesheet"+></A+><B+>CompiledStylesheet</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ACompStylesheet"+></A+><B+>CompStylesheet</B+> [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"+>MatchRule</A+>] (Map <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANamedRule"+>NamedRule</A+>) (Map <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"+>Variable</A+>) (Map <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AAttributeSet"+>AttributeSet</A+>]) [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"+>Strips</A+>] <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANSAliasing"+>NSAliasing</A+></TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:CompiledStylesheet')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:CompiledStylesheet" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetMatchRules"+></A+><B+>getMatchRules</B+> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+> -&gt; [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"+>MatchRule</A+>]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetNamedRules"+></A+><B+>getNamedRules</B+> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+> -&gt; Map <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANamedRule"+>NamedRule</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetVariables"+></A+><B+>getVariables</B+> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+> -&gt; Map <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"+>Variable</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetAttributeSets"+></A+><B+>getAttributeSets</B+> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+> -&gt; Map <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AAttributeSet"+>AttributeSet</A+>]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetStrips"+></A+><B+>getStrips</B+> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+> -&gt; [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"+>Strips</A+>]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetAliases"+></A+><B+>getAliases</B+> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+> -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANSAliasing"+>NSAliasing</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> <A NAME="t%3ARule"+></A+><B+>Rule</B+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+>Methods</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A NAME="v%3AgetRuleContent"+></A+><B+>getRuleContent</B+> :: a -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"+>Template</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetRuleParams"+></A+><B+>getRuleParams</B+> :: a -&gt; [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"+>Variable</A+>]</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Rule')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:Rule" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ARule"+>Rule</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"+>MatchRule</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ARule"+>Rule</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANamedRule"+>NamedRule</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AMatchRule"+></A+><B+>MatchRule</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AMatRule"+></A+><B+>MatRule</B+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchExpr"+>MatchExpr</A+> Float (Maybe <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+>) [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"+>MatchRule</A+>] [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"+>Variable</A+>] <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"+>Template</A+></TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:MatchRule')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:MatchRule" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ARule"+>Rule</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"+>MatchRule</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"+>MatchRule</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetRulePrio"+></A+><B+>getRulePrio</B+> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"+>MatchRule</A+> -&gt; Float</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetRuleMode"+></A+><B+>getRuleMode</B+> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"+>MatchRule</A+> -&gt; Maybe <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetRuleImports"+></A+><B+>getRuleImports</B+> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"+>MatchRule</A+> -&gt; [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"+>MatchRule</A+>]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3ANamedRule"+></A+><B+>NamedRule</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ANamRule"+></A+><B+>NamRule</B+> <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"+>Variable</A+>] <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"+>Template</A+></TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:NamedRule')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:NamedRule" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ARule"+>Rule</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANamedRule"+>NamedRule</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANamedRule"+>NamedRule</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetRuleName"+></A+><B+>getRuleName</B+> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANamedRule"+>NamedRule</A+> -&gt; <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AVariable"+></A+><B+>Variable</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AMkVar"+></A+><B+>MkVar</B+> Bool <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+></TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Variable')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:Variable" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"+>Variable</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetVarName"+></A+><B+>getVarName</B+> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"+>Variable</A+> -&gt; <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetVarExpr"+></A+><B+>getVarExpr</B+> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"+>Variable</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisParam"+></A+><B+>isParam</B+> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"+>Variable</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>newtype</SPAN+> <A NAME="t%3AUsedAttribSets"+></A+><B+>UsedAttribSets</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AUsedAttribSets"+></A+><B+>UsedAttribSets</B+> [<A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+>]</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:UsedAttribSets')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:UsedAttribSets" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AUsedAttribSets"+>UsedAttribSets</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AAttributeSet"+></A+><B+>AttributeSet</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AAttribSet"+></A+><B+>AttribSet</B+> <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AUsedAttribSets"+>UsedAttribSets</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"+>Template</A+></TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:AttributeSet')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:AttributeSet" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AAttributeSet"+>AttributeSet</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ANTest"+></A+><B+>NTest</B+> = <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseNTest"+></A+><B+>parseNTest</B+> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"+>UriMapping</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANTest"+>NTest</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AStrips"+></A+><B+>Strips</B+> = Map <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANTest"+>NTest</A+> Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AlookupStrip"+></A+><B+>lookupStrip</B+> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> -&gt; [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"+>Strips</A+>] -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AlookupStrip1"+></A+><B+>lookupStrip1</B+> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"+>Strips</A+> -&gt; Maybe Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfeedSpaces"+></A+><B+>feedSpaces</B+> :: Bool -&gt; [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANTest"+>NTest</A+>] -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"+>Strips</A+> -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"+>Strips</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfeedStrips"+></A+><B+>feedStrips</B+> :: [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANTest"+>NTest</A+>] -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"+>Strips</A+> -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"+>Strips</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfeedPreserves"+></A+><B+>feedPreserves</B+> :: [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANTest"+>NTest</A+>] -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"+>Strips</A+> -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"+>Strips</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AstripDocument"+></A+><B+>stripDocument</B+> :: [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"+>Strips</A+>] -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AstripStylesheet"+></A+><B+>stripStylesheet</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AstripSpaces"+></A+><B+>stripSpaces</B+> :: (Bool -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool) -&gt; Bool -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ANSAliasing"+></A+><B+>NSAliasing</B+> = Map String String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddAlias"+></A+><B+>addAlias</B+> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"+>UriMapping</A+> -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANSAliasing"+>NSAliasing</A+> -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANSAliasing"+>NSAliasing</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AlookupAlias"+></A+><B+>lookupAlias</B+> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANSAliasing"+>NSAliasing</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaliasUriMapping"+></A+><B+>aliasUriMapping</B+> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANSAliasing"+>NSAliasing</A+> -&gt; <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"+>UriMapping</A+> -&gt; <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"+>UriMapping</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3ATemplate"+></A+><B+>Template</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ATemplComposite"+></A+><B+>TemplComposite</B+> [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"+>Template</A+>]</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ATemplForEach"+></A+><B+>TemplForEach</B+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ASelectExpr"+>SelectExpr</A+> [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ASortKey"+>SortKey</A+>] <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"+>Template</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ATemplChoose"+></A+><B+>TemplChoose</B+> [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AWhen"+>When</A+>]</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ATemplMessage"+></A+><B+>TemplMessage</B+> Bool <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"+>Template</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ATemplElement"+></A+><B+>TemplElement</B+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AComputedQName"+>ComputedQName</A+> <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"+>UriMapping</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AUsedAttribSets"+>UsedAttribSets</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"+>Template</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ATemplAttribute"+></A+><B+>TemplAttribute</B+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AComputedQName"+>ComputedQName</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"+>Template</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ATemplText"+></A+><B+>TemplText</B+> String</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ATemplValueOf"+></A+><B+>TemplValueOf</B+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStringExpr"+>StringExpr</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ATemplComment"+></A+><B+>TemplComment</B+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"+>Template</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ATemplProcInstr"+></A+><B+>TemplProcInstr</B+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStringExpr"+>StringExpr</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"+>Template</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ATemplApply"+></A+><B+>TemplApply</B+> (Maybe <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ASelectExpr"+>SelectExpr</A+>) (Maybe <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+>) (Map <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"+>Variable</A+>) [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ASortKey"+>SortKey</A+>]</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ATemplApplyImports"+></A+><B+>TemplApplyImports</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ATemplVariable"+></A+><B+>TemplVariable</B+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"+>Variable</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ATemplCall"+></A+><B+>TemplCall</B+> <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> (Map <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"+>Variable</A+>)</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ATemplCopy"+></A+><B+>TemplCopy</B+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AUsedAttribSets"+>UsedAttribSets</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"+>Template</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ATemplCopyOf"+></A+><B+>TemplCopyOf</B+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+></TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Template')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:Template" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"+>Template</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3ASortKey"+></A+><B+>SortKey</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ASortK"+></A+><B+>SortK</B+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStringExpr"+>StringExpr</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStringExpr"+>StringExpr</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStringExpr"+>StringExpr</A+></TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:SortKey')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:SortKey" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ASortKey"+>SortKey</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AWhen"+></A+><B+>When</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AWhenPart"+></A+><B+>WhenPart</B+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATestExpr"+>TestExpr</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"+>Template</A+></TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:When')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:When" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AWhen"+>When</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AComputedQName"+></A+><B+>ComputedQName</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ALiteralQName"+></A+><B+>LiteralQName</B+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ACompQName"+></A+><B+>CompQName</B+> <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"+>UriMapping</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStringExpr"+>StringExpr</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStringExpr"+>StringExpr</A+></TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ComputedQName')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:ComputedQName" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AComputedQName"+>ComputedQName</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>newtype</SPAN+> <A NAME="t%3ASelectExpr"+></A+><B+>SelectExpr</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ASelectExpr"+></A+><B+>SelectExpr</B+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+></TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:SelectExpr')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:SelectExpr" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ASelectExpr"+>SelectExpr</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>newtype</SPAN+> <A NAME="t%3ATestExpr"+></A+><B+>TestExpr</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ATestExpr"+></A+><B+>TestExpr</B+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+></TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:TestExpr')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:TestExpr" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATestExpr"+>TestExpr</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>newtype</SPAN+> <A NAME="t%3AStringExpr"+></A+><B+>StringExpr</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AStringExpr"+></A+><B+>StringExpr</B+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+></TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:StringExpr')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:StringExpr" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStringExpr"+>StringExpr</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>newtype</SPAN+> <A NAME="t%3AMatchExpr"+></A+><B+>MatchExpr</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AMatchExpr"+></A+><B+>MatchExpr</B+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+></TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:MatchExpr')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:MatchExpr" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchExpr"+>MatchExpr</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-XSLT-Names.html view
@@ -0,0 +1,922 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.XSLT.Names</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/Names.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.XSLT.Names</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: Names.hs,v 1.2 2006<EM+>11</EM+>11 15:36:05 hxml Exp $+</P+><P+>Names and constants for HXSLT+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltPrefix"+></A+><B+>xsltPrefix</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltUri"+></A+><B+>xsltUri</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXsltName"+></A+><B+>mkXsltName</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXsltAttribName"+></A+><B+>mkXsltAttribName</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltTransform"+></A+><B+>xsltTransform</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltStylesheet"+></A+><B+>xsltStylesheet</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltMessage"+></A+><B+>xsltMessage</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltForEach"+></A+><B+>xsltForEach</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltChoose"+></A+><B+>xsltChoose</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltWhen"+></A+><B+>xsltWhen</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltOtherwise"+></A+><B+>xsltOtherwise</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltIf"+></A+><B+>xsltIf</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltElement"+></A+><B+>xsltElement</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltAttribute"+></A+><B+>xsltAttribute</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltText"+></A+><B+>xsltText</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltValueOf"+></A+><B+>xsltValueOf</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltComment"+></A+><B+>xsltComment</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltProcInstr"+></A+><B+>xsltProcInstr</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltInclude"+></A+><B+>xsltInclude</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltImport"+></A+><B+>xsltImport</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltTemplate"+></A+><B+>xsltTemplate</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltApplyTemplates"+></A+><B+>xsltApplyTemplates</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltApplyImports"+></A+><B+>xsltApplyImports</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltCallTemplate"+></A+><B+>xsltCallTemplate</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltVariable"+></A+><B+>xsltVariable</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltParam"+></A+><B+>xsltParam</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltWithParam"+></A+><B+>xsltWithParam</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltAttributeSet"+></A+><B+>xsltAttributeSet</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltCopy"+></A+><B+>xsltCopy</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltCopyOf"+></A+><B+>xsltCopyOf</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltSort"+></A+><B+>xsltSort</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltStripSpace"+></A+><B+>xsltStripSpace</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltPreserveSpace"+></A+><B+>xsltPreserveSpace</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltNamespaceAlias"+></A+><B+>xsltNamespaceAlias</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltTerminate"+></A+><B+>xsltTerminate</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltSelect"+></A+><B+>xsltSelect</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltTest"+></A+><B+>xsltTest</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltName"+></A+><B+>xsltName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltNamespace"+></A+><B+>xsltNamespace</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltUseAttributeSets"+></A+><B+>xsltUseAttributeSets</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltHRef"+></A+><B+>xsltHRef</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltMatch"+></A+><B+>xsltMatch</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltPriority"+></A+><B+>xsltPriority</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltMode"+></A+><B+>xsltMode</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltDataType"+></A+><B+>xsltDataType</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltOrder"+></A+><B+>xsltOrder</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltElements"+></A+><B+>xsltElements</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltStylesheetPrefix"+></A+><B+>xsltStylesheetPrefix</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltResultPrefix"+></A+><B+>xsltResultPrefix</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltVersion"+></A+><B+>xsltVersion</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltExlcudeResultPrefixes"+></A+><B+>xsltExlcudeResultPrefixes</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltExtensionElementPrefixes"+></A+><B+>xsltExtensionElementPrefixes</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltUseAttributeSetsLRE"+></A+><B+>xsltUseAttributeSetsLRE</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltVersionLRE"+></A+><B+>xsltVersionLRE</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltExlcudeResultPrefixesLRE"+></A+><B+>xsltExlcudeResultPrefixesLRE</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltExtensionElementPrefixesLRE"+></A+><B+>xsltExtensionElementPrefixesLRE</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlSpace"+></A+><B+>xmlSpace</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/Text-XML-HXT-XSLT-XsltArrows.html view
@@ -0,0 +1,385 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.XSLT.XsltArrows</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/XsltArrows.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.XSLT.XsltArrows</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: XsltArrows.hs,v 1.1 2006<EM+>11</EM+>11 15:36:05 hxml Exp $+</P+><P+>The HXT arrow interface for the XSLT module+</P+><P+>The application programming interface to the arrow modules of the Haskell XML Toolbox.+   This module exports all important arrows for input, output, parsing, validating and transforming XML.+   It also exports all basic datatypes and functions of the toolbox.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AxsltCompileStylesheet"+>xsltCompileStylesheet</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-XSLT-XsltArrows.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxsltCompileStylesheetFromURI"+>xsltCompileStylesheetFromURI</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> String <A HREF="Text-XML-HXT-XSLT-XsltArrows.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxsltApplyStylesheet"+>xsltApplyStylesheet</A+> :: <A HREF="Text-XML-HXT-XSLT-XsltArrows.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxsltApplyStylesheetFromURI"+>xsltApplyStylesheetFromURI</A+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3ACompiledStylesheet"+>CompiledStylesheet</A+> </TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltCompileStylesheet"+></A+><B+>xsltCompileStylesheet</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-XSLT-XsltArrows.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Compile a document representing an XSLT stylesheet into an internal representation+</P+><P+>The internal representation is an abstract syntax tree for the XSLT rules.+ XSLT imports and includes are evaluated and the rules are normalized and prepared+ for easy application.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltCompileStylesheetFromURI"+></A+><B+>xsltCompileStylesheetFromURI</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> String <A HREF="Text-XML-HXT-XSLT-XsltArrows.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>A convinient function for combining reading a stylesheet and compilation.+</P+><P+>Reading an XSLT stylesheet is always done without validation but with+ namespace propagation. Comments are removed from the stylesheet.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltApplyStylesheet"+></A+><B+>xsltApplyStylesheet</B+> :: <A HREF="Text-XML-HXT-XSLT-XsltArrows.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>apply a compiled XSLT stylesheet to a whole document tree+</P+><P+>The compiled stylesheet must have been created with <TT+><A HREF="Text-XML-HXT-XSLT-XsltArrows.html#v%3AxsltCompileStylesheet"+>xsltCompileStylesheet</A+></TT+>+ or <TT+><A HREF="Text-XML-HXT-XSLT-XsltArrows.html#v%3AxsltCompileStylesheetFromURI"+>xsltCompileStylesheetFromURI</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltApplyStylesheetFromURI"+></A+><B+>xsltApplyStylesheetFromURI</B+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>apply an XSLT stylesheet given by an URI to a whole document tree+</P+><P+>The string parameter is the URI of the XSLT stylesheet.+ In case of an error during stylesheet compilation or stylesheet application+ all children of the root node are removed and+ the error status is set in the attribute list of the root node of the input document.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3ACompiledStylesheet"+></A+><B+>CompiledStylesheet</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:CompiledStylesheet')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:CompiledStylesheet" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XSLT-XsltArrows.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/doc-index-36.html view
@@ -0,0 +1,242 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The complete API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index ($)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>$!!</TD+><TD CLASS="indexlinks"+><A HREF="Control-Strategies-DeepSeq.html#v%3A%24%21%21"+>Control.Strategies.DeepSeq</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>$$</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3A%24%24"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>$$&lt;</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3A%24%24%3C"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>$&lt;</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>$&lt;$</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%24"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>$&lt;&lt;</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>$&lt;&lt;&lt;</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C%3C"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>$&lt;&lt;&lt;&lt;</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C%3C%3C"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/doc-index-43.html view
@@ -0,0 +1,222 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The complete API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (+)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>+++</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3A%2B%2B%2B"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>+++&gt;&gt;</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3A%2B%2B%2B%3E%3E"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>++=</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%2B%3D"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>+=</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3A%2B%3D"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%3D"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/doc-index-46.html view
@@ -0,0 +1,202 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The complete API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (.)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>..&gt;</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3A..%3E"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>.&gt;</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3A.%3E"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>.&gt;&gt;</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3A.%3E%3E"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/doc-index-47.html view
@@ -0,0 +1,198 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The complete API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (/)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry" COLSPAN="2"+>/&gt;</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3A%2F%3E"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3A%2F%3E"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/doc-index-58.html view
@@ -0,0 +1,198 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The complete API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (:)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry" COLSPAN="2"+>:-&gt;</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3A%3A-%3E"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3A%3A-%3E"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/doc-index-60.html view
@@ -0,0 +1,198 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The complete API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (&lt;)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry" COLSPAN="2"+>&lt;/</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3A%3C%2F"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3A%3C%2F"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/doc-index-62.html view
@@ -0,0 +1,194 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The complete API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (&gt;)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>&gt;.</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3A%3E."+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>&gt;&gt;.</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3A%3E%3E."+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/doc-index-A.html view
@@ -0,0 +1,1506 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The complete API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (A)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>ATTLIST</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AATTLIST"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>Abs</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AAbs"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>After</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AAfter"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>AllowedDatatypes</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AAllowedDatatypes"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>AllowedParams</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AAllowedParams"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>Ancestor</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AAncestor"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>AncestorOrSelf</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AAncestorOrSelf"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>And</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AAnd"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>AnyName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AAnyName"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>AnyNameExcept</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AAnyNameExcept"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>ArrowDTD</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>ArrowIO</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIO"+>Control.Arrow.ArrowIO</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>ArrowIOIf</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIOIf"+>Control.Arrow.ArrowIO</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>ArrowIf</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>ArrowList</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>ArrowState</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowState.html#t%3AArrowState"+>Control.Arrow.ArrowState</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>ArrowTree</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>ArrowXml</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>AssocList</TD+><TD CLASS="indexlinks"+><A HREF="Data-AssocList.html#t%3AAssocList"+>Data.AssocList</A+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>AttrName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AAttrName"+>Text.XML.HXT.DOM.XmlTreeTypes</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>AttribSet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AAttribSet"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>Attribute</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AAttribute"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AAttribute"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>AttributeSet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AAttributeSet"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Attributes</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>AxisSpec</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AAxisSpec"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>aName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AaName"+>Text.XML.HXT.DOM.XmlTreeTypes</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_ancestor</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_ancestor"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>a_ancestor_or_self</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_ancestor_or_self"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>a_attribute</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_attribute"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>a_canonicalize</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_canonicalize"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_check_namespaces</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_check_namespaces"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_check_restrictions</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_check_restrictions"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_child</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_child"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>a_collect_errors</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_collect_errors"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_column</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_column"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_contentLength</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_contentLength"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_default</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_default"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_default_baseuri</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_default_baseuri"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_descendant</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_descendant"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>a_descendant_or_self</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_descendant_or_self"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_canonicalize</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_canonicalize"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_check_namespaces</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_check_namespaces"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_check_restrictions</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_check_restrictions"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_collect_errors</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_collect_errors"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_issue_errors</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_issue_errors"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_issue_warnings</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_issue_warnings"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_preserve_comment</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_preserve_comment"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_remove_whitespace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_remove_whitespace"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_use_curl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_use_curl"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_validate</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_validate"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_validate_externalRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_validate_externalRef"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_validate_include</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_validate_include"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_encoding</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_encoding"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_error</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_error"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_error_log</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_error_log"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_following</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_following"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>a_following_sibling</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_following_sibling"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>a_help</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_help"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_indent</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_indent"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_issue_errors</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_errors"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_issue_warnings</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_warnings"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_kind</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_kind"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_line</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_line"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_modifier</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_modifier"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_module</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_module"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_name</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_name"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_namespace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_namespace"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>a_no_xml_pi</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_no_xml_pi"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_numberOfErrors</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3Aa_numberOfErrors"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>a_options_curl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_options_curl"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_output_changes</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_changes"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_output_encoding</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_encoding"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_output_file</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_file"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_output_html</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_html"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_output_xml</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_xml"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_parent</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_parent"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>a_parse_html</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_html"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_parse_xml</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_xml"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_peref</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_peref"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_preceding</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_preceding"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>a_preceding_sibling</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_preceding_sibling"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>a_preserve_comment</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_preserve_comment"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_propagate_errors</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_propagate_errors"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_proxy</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_proxy"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_relaxSimplificationChanges</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3Aa_relaxSimplificationChanges"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>a_relax_schema</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_relax_schema"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_remove_whitespace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_remove_whitespace"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_self</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_self"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>a_show_haskell</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_show_haskell"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_show_tree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_show_tree"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_source</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_source"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_standalone</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_standalone"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_status</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_status"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_trace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_trace"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_type</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_type"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_url</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_url"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_use_curl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_use_curl"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_validate</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_validate_externalRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate_externalRef"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_validate_include</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate_include"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_value</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_value"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_verbose</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_verbose"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_version</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_version"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_xml</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_xml"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_xmlns</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_xmlns"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>accessState</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowState.html#v%3AaccessState"+>Control.Arrow.ArrowState</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>add1Attr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aadd1Attr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>addAlias</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AaddAlias"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>addAttr</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AaddAttr"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AaddAttr"+>Text.XML.HXT.Arrow.XmlNode</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>3 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AaddAttr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>addAttrInt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AaddAttrInt"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>addAttrl</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AaddAttrl"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AaddAttrl"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>addDTDAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AaddDTDAttr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>addDoctypeDecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AaddDoctypeDecl"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>addEntries</TD+><TD CLASS="indexlinks"+><A HREF="Data-AssocList.html#v%3AaddEntries"+>Data.AssocList</A+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>addEntry</TD+><TD CLASS="indexlinks"+><A HREF="Data-AssocList.html#v%3AaddEntry"+>Data.AssocList</A+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>addFatal</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AaddFatal"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>addHeadlineToXmlDoc</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AaddHeadlineToXmlDoc"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AaddHeadlineToXmlDoc"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>addXHtmlDoctypeFrameset</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AaddXHtmlDoctypeFrameset"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>addXHtmlDoctypeStrict</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AaddXHtmlDoctypeStrict"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>addXHtmlDoctypeTransitional</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AaddXHtmlDoctypeTransitional"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>addXmlPi</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AaddXmlPi"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>addXmlPiEncoding</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AaddXmlPiEncoding"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>addXmlPiToDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AaddXmlPiToDoc"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>aelem</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aaelem"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>aliasUriMapping</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AaliasUriMapping"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>allBut</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AallBut"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>allBut1</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AallBut1"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>ancestorAxis</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AancestorAxis"+>Text.XML.HXT.XPath.NavTree</A+>, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>ancestorOrSelfAxis</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AancestorOrSelfAxis"+>Text.XML.HXT.XPath.NavTree</A+>, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>applyA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3AapplyA"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>applyStylesheet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Application.html#v%3AapplyStylesheet"+>Text.XML.HXT.XSLT.Application</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>applyStylesheetWParams</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Application.html#v%3AapplyStylesheetWParams"+>Text.XML.HXT.XSLT.Application</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>arr2</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3Aarr2"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>arr2A</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3Aarr2A"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>arr2L</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3Aarr2L"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>arr3</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3Aarr3"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>arr4</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3Aarr4"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>arrIO</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIO.html#v%3AarrIO"+>Control.Arrow.ArrowIO</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>arrIO0</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIO.html#v%3AarrIO0"+>Control.Arrow.ArrowIO</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>arrIO2</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIO.html#v%3AarrIO2"+>Control.Arrow.ArrowIO</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>arrIO3</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIO.html#v%3AarrIO3"+>Control.Arrow.ArrowIO</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>arrIO4</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIO.html#v%3AarrIO4"+>Control.Arrow.ArrowIO</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>arrL</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3AarrL"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>asciiLetter</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AasciiLetter"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>assembleStylesheet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Compilation.html#v%3AassembleStylesheet"+>Text.XML.HXT.XSLT.Compilation</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>atag</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aatag"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>attachNsEnv</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AattachNsEnv"+>Text.XML.HXT.Arrow.Namespace</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>attlistDecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AattlistDecl"+>Text.XML.HXT.Parser.XmlDTDParser</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>attr</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aattr"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aattr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>attrEscapeXml</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AattrEscapeXml"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>attrNodes</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AattrNodes"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>attrValue</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3AattrValue"+>Text.XML.HXT.Parser.XmlDTDTokenParser</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AattrValue"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>attrValueT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AattrValueT"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>attrValueT'</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AattrValueT%27"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>attributeAxis</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AattributeAxis"+>Text.XML.HXT.XPath.NavTree</A+>, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>attrlOfDTD</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AattrlOfDTD"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/doc-index-B.html view
@@ -0,0 +1,194 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The complete API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (B)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>bar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Abar"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>buildUniversalName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AbuildUniversalName"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/doc-index-C.html view
@@ -0,0 +1,1194 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The complete API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (C)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>CONDSECT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3ACONDSECT"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>CONTENT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3ACONTENT"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>CTComplex</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3ACTComplex"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>CTEmpty</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3ACTEmpty"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>CTNone</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3ACTNone"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>CTSimple</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3ACTSimple"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>Child</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AChild"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>ChildNodes</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AChildNodes"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>Choice</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AChoice"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>CompQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ACompQName"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>CompStylesheet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ACompStylesheet"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>CompiledStylesheet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+>, <A HREF="Text-XML-HXT-XSLT-XsltArrows.html#t%3ACompiledStylesheet"+>Text.XML.HXT.XSLT.XsltArrows</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>ComputedQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AComputedQName"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>ConLen</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AConLen"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>ConNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AConNode"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>ConPos</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AConPos"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>ContentType</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContentType"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>Context</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContext"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>cDSect</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AcDSect"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>c_err</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>c_fatal</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_fatal"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>c_ok</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_ok"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>c_warn</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_warn"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>canonicalizeAllNodes</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcanonicalizeAllNodes"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcanonicalizeAllNodes"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>canonicalizeContents</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcanonicalizeContents"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>canonicalizeForXPath</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcanonicalizeForXPath"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcanonicalizeForXPath"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>canonicalizeTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcanonicalizeTree"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>cardNTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AcardNTree"+>Text.XML.HXT.DOM.XmlTreeTypes</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>cardTree</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AcardTree"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>cat</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3Acat"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>catA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3AcatA"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>catM</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AcatM"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>cdata</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Acdata"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>chain</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3Achain"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>chain'</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3Achain%27"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>changeAttrName</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeAttrName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AchangeAttrName"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>changeAttrValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeAttrValue"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>changeAttrl</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeAttrl"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AchangeAttrl"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>changeBaseURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AchangeBaseURI"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>changeChildren</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3AchangeChildren"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AchangeChildren"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>changeCmt</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeCmt"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AchangeCmt"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>changeDTDAttrl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AchangeDTDAttrl"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>changeElemName</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeElemName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AchangeElemName"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>changeName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AchangeName"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>changeNode</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3AchangeNode"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AchangeNode"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>changePiName</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangePiName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AchangePiName"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>changeQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeQName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>changeState</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowState.html#v%3AchangeState"+>Control.Arrow.ArrowState</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Monad-MonadStateIO.html#v%3AchangeState"+>Control.Monad.MonadStateIO</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>3 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AchangeState"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>changeSysParam</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AchangeSysParam"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>changeSysState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AchangeSysState"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>changeSysStateAttrs</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AchangeSysStateAttrs"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>changeText</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeText"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AchangeText"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>changeUserState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AchangeUserState"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>charData</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AcharData"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>charData'</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AcharData%27"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>charRef</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AcharRef"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AcharRef"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>charRefT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AcharRefT"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>charToHexString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AcharToHexString"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>checkAttributeValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-AttributeValueValidation.html#v%3AcheckAttributeValue"+>Text.XML.HXT.Validator.AttributeValueValidation</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>checkNumeric</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AcheckNumeric"+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>checkRE</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3AcheckRE"+>Text.XML.HXT.Validator.RE</A+>, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3AcheckRE"+>Text.XML.HXT.Validator.XmlRE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>checkResult</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AcheckResult"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>checkStatus</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AcheckStatus"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>checkString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AcheckString"+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>checkWellformedDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-DTDProcessing.html#v%3AcheckWellformedDoc"+>Text.XML.HXT.Parser.DTDProcessing</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>childAxis</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AchildAxis"+>Text.XML.HXT.XPath.NavTree</A+>, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>childNodes</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AchildNodes"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>choice</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3Achoice"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>choiceA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3AchoiceA"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>choiceM</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AchoiceM"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>cleanupNamespaces</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AcleanupNamespaces"+>Text.XML.HXT.Arrow.Namespace</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>clearErrStatus</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AclearErrStatus"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>clearStatus</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AclearStatus"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>cmt</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Acmt"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Acmt"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>collapseAllXText</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcollapseAllXText"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcollapseAllXText"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>collapseXText</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcollapseXText"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcollapseXText"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>collectNamespaceDecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AcollectNamespaceDecl"+>Text.XML.HXT.Arrow.Namespace</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>collectPrefixUriPairs</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AcollectPrefixUriPairs"+>Text.XML.HXT.Arrow.Namespace</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>collectTextnodes</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AcollectTextnodes"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>comma</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Acomma"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>comment</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Acomment"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>compareURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AcompareURI"+>Text.XML.HXT.RelaxNG.Utils</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD+></TR+><TR+><TD CLASS="indexentry"+>computeNTestPriority</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AcomputeNTestPriority"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>computePriority</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AcomputePriority"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>concRes</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AconcRes"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>concatExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AconcatExpr"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>constA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3AconstA"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>constL</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3AconstL"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>containing</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3Acontaining"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3Acontaining"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>containingM</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AcontainingM"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>contains</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Validation.html#v%3Acontains"+>Text.XML.HXT.RelaxNG.Validation</A+>, Text.XML.HXT.RelaxNG.Validator, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>content</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Acontent"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>contentWithTextDecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AcontentWithTextDecl"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>contextAttributes</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AcontextAttributes"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>contextBaseAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AcontextBaseAttr"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>createDocumentOrder</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AcreateDocumentOrder"+>Text.XML.HXT.XPath.XPathFct</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>createDocumentOrderReverse</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AcreateDocumentOrderReverse"+>Text.XML.HXT.XPath.XPathFct</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>createNameClass</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-CreatePattern.html#v%3AcreateNameClass"+>Text.XML.HXT.RelaxNG.CreatePattern</A+>, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>createPatternFromXmlTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-CreatePattern.html#v%3AcreatePatternFromXmlTree"+>Text.XML.HXT.RelaxNG.CreatePattern</A+>, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>createSimpleForm</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Simplification.html#v%3AcreateSimpleForm"+>Text.XML.HXT.RelaxNG.Simplification</A+>, Text.XML.HXT.RelaxNG.Validator, Text.XML.HXT.RelaxNG</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/doc-index-D.html view
@@ -0,0 +1,594 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The complete API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (D)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>DOCTYPE</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3ADOCTYPE"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>DTC</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3ADTC"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>DTDElem</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>Data</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AData"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>DataExcept</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3ADataExcept"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>Datatype</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatype"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>DatatypeAllows</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeAllows"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>DatatypeCheck</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeCheck"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>DatatypeEqual</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeEqual"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>DatatypeLibraries</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeLibraries"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>DatatypeLibrary</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeLibrary"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>DatatypeName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>DeepSeq</TD+><TD CLASS="indexlinks"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>Control.Strategies.DeepSeq</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Descendant</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ADescendant"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>DescendantOrSelf</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ADescendantOrSelf"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Div</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ADiv"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>dataNT</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3AdataNT"+>Data.NavTree</A+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>datatypeAllows</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibraries.html#v%3AdatatypeAllows"+>Text.XML.HXT.RelaxNG.DataTypeLibraries</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>datatypeEqual</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibraries.html#v%3AdatatypeEqual"+>Text.XML.HXT.RelaxNG.DataTypeLibraries</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>datatypeLibraries</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibraries.html#v%3AdatatypeLibraries"+>Text.XML.HXT.RelaxNG.DataTypeLibraries</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>decimalStringToInt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AdecimalStringToInt"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>decodeDocument</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-DocumentInput.html#v%3AdecodeDocument"+>Text.XML.HXT.Arrow.DocumentInput</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>deep</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3Adeep"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3Adeep"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>deepSeq</TD+><TD CLASS="indexlinks"+><A HREF="Control-Strategies-DeepSeq.html#v%3AdeepSeq"+>Control.Strategies.DeepSeq</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>deepest</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3Adeepest"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3Adeepest"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>defineOrigName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AdefineOrigName"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>del1Attr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Adel1Attr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>delEntries</TD+><TD CLASS="indexlinks"+><A HREF="Data-AssocList.html#v%3AdelEntries"+>Data.AssocList</A+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>delEntry</TD+><TD CLASS="indexlinks"+><A HREF="Data-AssocList.html#v%3AdelEntry"+>Data.AssocList</A+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>depthNTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AdepthNTree"+>Text.XML.HXT.DOM.XmlTreeTypes</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>depthTree</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AdepthTree"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>descendantAxis</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AdescendantAxis"+>Text.XML.HXT.XPath.NavTree</A+>, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>descendantOrSelfAxis</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AdescendantOrSelfAxis"+>Text.XML.HXT.XPath.NavTree</A+>, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>doctypedecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Adoctypedecl"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>document</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Adocument"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>document'</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Adocument%27"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>documentStatusOk</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AdocumentStatusOk"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>doubles</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3Adoubles"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>downNT</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3AdownNT"+>Data.NavTree</A+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>dq</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Adq"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>dtAllowedTypes</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AdtAllowedTypes"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>dtAllowsFct</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AdtAllowsFct"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>dtEqualFct</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AdtEqualFct"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>dtd</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Adtd"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>dtdChars</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3AdtdChars"+>Text.XML.HXT.Parser.XmlDTDTokenParser</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>dtdDeclEnd</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3AdtdDeclEnd"+>Text.XML.HXT.Parser.XmlDTDTokenParser</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>dtdDeclStart</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3AdtdDeclStart"+>Text.XML.HXT.Parser.XmlDTDTokenParser</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>dtdDeclTokenizer</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3AdtdDeclTokenizer"+>Text.XML.HXT.Parser.XmlDTDTokenParser</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>dtdToken</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3AdtdToken"+>Text.XML.HXT.Parser.XmlDTDTokenParser</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/doc-index-E.html view
@@ -0,0 +1,662 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The complete API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (E)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>ELEMENT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AELEMENT"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>ENTITY</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AENTITY"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>Element</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AElement"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>Empty</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AEmpty"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>Env</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AEnv"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Eq</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AEq"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>ExName</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AExName"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Expr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Text.XML.HXT.XPath.XPathDataTypes</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>eelem</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aeelem"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>element</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Aelement"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>elementDecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AelementDecl"+>Text.XML.HXT.Parser.XmlDTDParser</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>emptyNodeSet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathToNodeSet.html#v%3AemptyNodeSet"+>Text.XML.HXT.XPath.XPathToNodeSet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>emptyRoot</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AemptyRoot"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>encName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AencName"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>encodeDocument</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-DocumentOutput.html#v%3AencodeDocument"+>Text.XML.HXT.Arrow.DocumentOutput</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>encodingDecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AencodingDecl"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>entityCharT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityCharT"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>entityDecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AentityDecl"+>Text.XML.HXT.Parser.XmlDTDParser</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>entityRef</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AentityRef"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityRef"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>entityRefT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityRefT"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>entityTokensT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityTokensT"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>entityValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityValue"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>entityValueT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityValueT"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>eq</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Aeq"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>equalQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequalQName"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>equalQNameBy</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequalQNameBy"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>equivQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequivQName"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>equivUri</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequivUri"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>err</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aerr"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aerr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>errClass</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AerrClass"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>errorMsgCollect</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AerrorMsgCollect"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>errorMsgEqual</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AerrorMsgEqual"+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>errorMsgHandler</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AerrorMsgHandler"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>errorMsgIgnore</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AerrorMsgIgnore"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>errorMsgLogging</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AerrorMsgLogging"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>errorMsgLoggingAndToStderr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AerrorMsgLoggingAndToStderr"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>errorMsgStderr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AerrorMsgStderr"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>errorMsgStderrAndCollect</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AerrorMsgStderrAndCollect"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>errorMsgToStderr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AerrorMsgToStderr"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>escapeHtmlDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AescapeHtmlDoc"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>escapeURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AescapeURI"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>escapeXmlAttrValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlAttrValue"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>escapeXmlDoc</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AescapeXmlDoc"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlDoc"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>escapeXmlText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlText"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>etag</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aetag"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>evalExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AevalExpr"+>Text.XML.HXT.XPath.XPathEval</A+>, Text.XML.HXT.XPath, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>evalFct</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AevalFct"+>Text.XML.HXT.XPath.XPathFct</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>exLocal</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AexLocal"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>exUri</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AexUri"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>expandNSDecls</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AexpandNSDecls"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>expandURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AexpandURI"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>expandURIString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AexpandURIString"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>expr2XPathTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathToString.html#v%3Aexpr2XPathTree"+>Text.XML.HXT.XPath.XPathToString</A+>, Text.XML.HXT.XPath</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/doc-index-F.html view
@@ -0,0 +1,438 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The complete API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (F)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>FctArguments</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AFctArguments"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>FctExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AFctExpr"+>Text.XML.HXT.XPath.XPathDataTypes</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>FctName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AFctName"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>FilterExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AFilterExpr"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Float</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AFloat"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Following</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AFollowing"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>FollowingSibling</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AFollowingSibling"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>fatal</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Afatal"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Afatal"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>feedPreserves</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AfeedPreserves"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>feedSpaces</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AfeedSpaces"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>feedStrips</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AfeedStrips"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>fetchAttribute</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AfetchAttribute"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>fetchAttributeWDefault</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AfetchAttributeWDefault"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>filterErrorMsg</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AfilterErrorMsg"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>filterTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AfilterTree"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>filterTreeCtx</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AfilterTreeCtx"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>foldNTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AfoldNTree"+>Text.XML.HXT.DOM.XmlTreeTypes</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>foldTree</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AfoldTree"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>followingAxis</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AfollowingAxis"+>Text.XML.HXT.XPath.NavTree</A+>, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>followingSiblingAxis</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AfollowingSiblingAxis"+>Text.XML.HXT.XPath.NavTree</A+>, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>formatNTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AformatNTree"+>Text.XML.HXT.DOM.XmlTreeTypes</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>formatNTreeF</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-TypeDefs.html#v%3AformatNTreeF"+>Data.Tree.NTree.TypeDefs</A+>, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>formatStringList</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AformatStringList"+>Text.XML.HXT.RelaxNG.Utils</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD+></TR+><TR+><TD CLASS="indexentry"+>formatTree</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AformatTree"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>formatXmlContents</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-FormatXmlTree.html#v%3AformatXmlContents"+>Text.XML.HXT.DOM.FormatXmlTree</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>formatXmlTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-FormatXmlTree.html#v%3AformatXmlTree"+>Text.XML.HXT.DOM.FormatXmlTree</A+>, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>fromAttrl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AfromAttrl"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>fromJustErr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AfromJustErr"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>fromLA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ListArrow.html#v%3AfromLA"+>Control.Arrow.ListArrow</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>fromSLA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-StateListArrow.html#v%3AfromSLA"+>Control.Arrow.StateListArrow</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>fromTreel</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AfromTreel"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/doc-index-G.html view
@@ -0,0 +1,1622 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The complete API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (G)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>GenExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AGenExpr"+>Text.XML.HXT.XPath.XPathDataTypes</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>Greater</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AGreater"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>GreaterEq</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AGreaterEq"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Group</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AGroup"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>generalOptions</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AgeneralOptions"+>Text.XML.HXT.DOM.XmlOptions</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getAbsolutURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetAbsolutURI"+>Text.XML.HXT.Parser.XmlInput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getAliases</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetAliases"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getAllParams</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetAllParams"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getAttrName</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetAttrName"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>getAttrValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrValue"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getAttrValue0</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrValue0"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getAttributeSets</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetAttributeSets"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getAttrl</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrl"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetAttrl"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexannot"+>3 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetAttrl"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getBaseURI</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetBaseURI"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetBaseURI"+>Text.XML.HXT.Parser.XmlInput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getCdata</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetCdata"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetCdata"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getCharRef</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetCharRef"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetCharRef"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getChildren</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3AgetChildren"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AgetChildren"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getChildrenNT</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3AgetChildrenNT"+>Data.NavTree</A+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>getChildrenPattern</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AgetChildrenPattern"+>Text.XML.HXT.RelaxNG.PatternFunctions</A+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getCmt</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetCmt"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetCmt"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getCont</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-IO-GetFILE.html#v%3AgetCont"+>Text.XML.HXT.IO.GetFILE</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-IO-GetHTTPCurl.html#v%3AgetCont"+>Text.XML.HXT.IO.GetHTTPCurl</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>3 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-IO-GetHTTPNative.html#v%3AgetCont"+>Text.XML.HXT.IO.GetHTTPNative</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getContentLength</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetContentLength"+>Text.XML.HXT.Parser.XmlInput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getConvFct</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AgetConvFct"+>Text.XML.HXT.XPath.XPathFct</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getDTDAttrValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetDTDAttrValue"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getDTDAttrl</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetDTDAttrl"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetDTDAttrl"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getDTDPart</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetDTDPart"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetDTDPart"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>getDTDSubset</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-ValidationFilter.html#v%3AgetDTDSubset"+>Text.XML.HXT.Validator.ValidationFilter</A+>, Text.XML.HXT.Validator.Validation, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getDTDValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetDTDValue"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getDefaultBaseURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetDefaultBaseURI"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getDocumentContents</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ProcessDocument.html#v%3AgetDocumentContents"+>Text.XML.HXT.Arrow.ProcessDocument</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getElemAndAttrNodeSet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetElemAndAttrNodeSet"+>Text.XML.HXT.Arrow.XmlNodeSet</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getElemName</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetElemName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetElemName"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>getElemNodeSet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetElemNodeSet"+>Text.XML.HXT.Arrow.XmlNodeSet</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getEncoding</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-DocumentInput.html#v%3AgetEncoding"+>Text.XML.HXT.Arrow.DocumentInput</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getEncodingFct</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AgetEncodingFct"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getEntityRef</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetEntityRef"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetEntityRef"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>getErrStatus</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetErrStatus"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getErrorLevel</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetErrorLevel"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetErrorLevel"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>getErrorMessages</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetErrorMessages"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getErrorMsg</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetErrorMsg"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetErrorMsg"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexannot"+>3 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetErrorMsg"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getErrors</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Simplification.html#v%3AgetErrors"+>Text.XML.HXT.RelaxNG.Simplification</A+>, Text.XML.HXT.RelaxNG.Validator, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>getFileContents</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-ProtocolHandlerFile.html#v%3AgetFileContents"+>Text.XML.HXT.Parser.ProtocolHandlerFile</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getFragmentFromURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetFragmentFromURI"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getFromNodeSet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetFromNodeSet"+>Text.XML.HXT.Arrow.XmlNodeSet</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getHtmlDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-HtmlParser.html#v%3AgetHtmlDoc"+>Text.XML.HXT.Parser.HtmlParser</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getHttpContentsNativeOrWithCurl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html#v%3AgetHttpContentsNativeOrWithCurl"+>Text.XML.HXT.Parser.ProtocolHandlerHttpNativeOrCurl</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getHttpContentsWithCurl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html#v%3AgetHttpContentsWithCurl"+>Text.XML.HXT.Parser.ProtocolHandlerHttpCurl</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getHttpContentsWithHttp</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html#v%3AgetHttpContentsWithHttp"+>Text.XML.HXT.Parser.ProtocolHandlerHttpNative</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getKeyTab</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AgetKeyTab"+>Text.XML.HXT.XPath.XPathFct</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getLocalPart</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetLocalPart"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetLocalPart"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>getMatchRules</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetMatchRules"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getName</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetName"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexannot"+>3 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetName"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getNameClassFromPattern</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AgetNameClassFromPattern"+>Text.XML.HXT.RelaxNG.PatternFunctions</A+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getNamePrefix</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetNamePrefix"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetNamePrefix"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>getNamedRules</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetNamedRules"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getNamespaceDecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AgetNamespaceDecl"+>Text.XML.HXT.Arrow.Namespace</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getNamespaceUri</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetNamespaceUri"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetNamespaceUri"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getNode</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3AgetNode"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AgetNode"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getNsValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetNsValue"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getOutputEncoding</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-DocumentOutput.html#v%3AgetOutputEncoding"+>Text.XML.HXT.Arrow.DocumentOutput</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getOutputEncodingFct</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AgetOutputEncodingFct"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getParam</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetParam"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getParamInt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetParamInt"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getParamString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetParamString"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getPathFromURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetPathFromURI"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getPatternName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AgetPatternName"+>Text.XML.HXT.RelaxNG.PatternFunctions</A+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getPiContent</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetPiContent"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetPiContent"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getPiName</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetPiName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetPiName"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>getPortFromURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetPortFromURI"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getProtocolHandler</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-ProtocolHandler.html#v%3AgetProtocolHandler"+>Text.XML.HXT.Parser.ProtocolHandler</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getQAttrValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetQAttrValue"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getQAttrValue0</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetQAttrValue0"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetQName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getQualifiedName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetQualifiedName"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>getQueryFromURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetQueryFromURI"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getRegNameFromURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetRegNameFromURI"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getRuleContent</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetRuleContent"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getRuleImports</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetRuleImports"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getRuleMode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetRuleMode"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getRuleName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetRuleName"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getRuleParams</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetRuleParams"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getRulePrio</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetRulePrio"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getSchemeFromURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetSchemeFromURI"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getState</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowState.html#v%3AgetState"+>Control.Arrow.ArrowState</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Monad-MonadStateIO.html#v%3AgetState"+>Control.Monad.MonadStateIO</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>3 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetState"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getStdinCont</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-IO-GetFILE.html#v%3AgetStdinCont"+>Text.XML.HXT.IO.GetFILE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getStrips</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetStrips"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getSysErrorHandler</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetSysErrorHandler"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getSysParam</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetSysParam"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetSysParam"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getSysParamInt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetSysParamInt"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getSysParamTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetSysParamTree"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getSysParamWithDefault</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetSysParamWithDefault"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getSysState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetSysState"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getText</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetText"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetText"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getTraceLevel</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetTraceLevel"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetTraceLevel"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getURIContents</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-DocumentInput.html#v%3AgetURIContents"+>Text.XML.HXT.Arrow.DocumentInput</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getUniversalName</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetUniversalName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetUniversalName"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getUniversalUri</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetUniversalUri"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetUniversalUri"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>getUriMap</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AgetUriMap"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getUrlContents</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetUrlContents"+>Text.XML.HXT.Parser.XmlInput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getUserInfoFromURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetUserInfoFromURI"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getUserState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetUserState"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getValidatedDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-Validation.html#v%3AgetValidatedDoc"+>Text.XML.HXT.Validator.Validation</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetValue"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getVarExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetVarExpr"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getVarName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetVarName"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getVarTab</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AgetVarTab"+>Text.XML.HXT.XPath.XPathFct</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getVariables</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetVariables"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getWellformedDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-DTDProcessing.html#v%3AgetWellformedDoc"+>Text.XML.HXT.Parser.DTDProcessing</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getXCdata</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetXCdata"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getXCmt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetXCmt"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getXPath</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AgetXPath"+>Text.XML.HXT.XPath.XPathEval</A+>, Text.XML.HXT.XPath</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getXPathNodeSet</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetXPathNodeSet"+>Text.XML.HXT.Arrow.XmlNodeSet</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AgetXPathNodeSet"+>Text.XML.HXT.XPath.XPathEval</A+>, Text.XML.HXT.XPath</TD+></TR+><TR+><TD CLASS="indexentry"+>getXPathNodeSetWithNsEnv</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AgetXPathNodeSetWithNsEnv"+>Text.XML.HXT.XPath.XPathEval</A+>, Text.XML.HXT.XPath</TD+></TR+><TR+><TD CLASS="indexentry"+>getXPathSubTrees</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AgetXPathSubTrees"+>Text.XML.HXT.XPath.XPathEval</A+>, Text.XML.HXT.XPath</TD+></TR+><TR+><TD CLASS="indexentry"+>getXPathSubTreesWithNsEnv</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AgetXPathSubTreesWithNsEnv"+>Text.XML.HXT.XPath.XPathEval</A+>, Text.XML.HXT.XPath</TD+></TR+><TR+><TD CLASS="indexentry"+>getXPathTrees</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetXPathTrees"+>Text.XML.HXT.Arrow.XmlNodeSet</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getXPathTreesInDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetXPathTreesInDoc"+>Text.XML.HXT.Arrow.XmlNodeSet</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getXPathTreesInDocWithNsEnv</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetXPathTreesInDocWithNsEnv"+>Text.XML.HXT.Arrow.XmlNodeSet</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getXPathTreesWithNsEnv</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetXPathTreesWithNsEnv"+>Text.XML.HXT.Arrow.XmlNodeSet</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getXPathWithNsEnv</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AgetXPathWithNsEnv"+>Text.XML.HXT.XPath.XPathEval</A+>, Text.XML.HXT.XPath</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getXmlContents</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-DocumentInput.html#v%3AgetXmlContents"+>Text.XML.HXT.Arrow.DocumentInput</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetXmlContents"+>Text.XML.HXT.Parser.XmlInput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getXmlDocument</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AgetXmlDocument"+>Text.XML.HXT.Parser.MainFunctions</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getXmlEntityContents</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-DocumentInput.html#v%3AgetXmlEntityContents"+>Text.XML.HXT.Arrow.DocumentInput</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetXmlEntityContents"+>Text.XML.HXT.Parser.XmlInput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>gt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Agt"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>guards</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3Aguards"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3Aguards"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>guardsM</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AguardsM"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>guardsP</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3AguardsP"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>guessDocEncoding</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AguessDocEncoding"+>Text.XML.HXT.Parser.XmlInput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>guessEncoding</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AguessEncoding"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/doc-index-H.html view
@@ -0,0 +1,430 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The complete API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (H)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>hPutXmlDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AhPutXmlDoc"+>Text.XML.HXT.Parser.XmlOutput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>hPutXmlSource</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AhPutXmlSource"+>Text.XML.HXT.Parser.XmlOutput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>hPutXmlTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AhPutXmlTree"+>Text.XML.HXT.Parser.XmlOutput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>hasAttr</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasAttr"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasAttr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>hasAttrValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasAttrValue"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>hasAttribute</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AhasAttribute"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>hasDTDAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasDTDAttr"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>hasEntry</TD+><TD CLASS="indexlinks"+><A HREF="Data-AssocList.html#v%3AhasEntry"+>Data.AssocList</A+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>hasLocalPart</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasLocalPart"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasLocalPart"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>hasName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>hasNamePrefix</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasNamePrefix"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>hasNameWith</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasNameWith"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>hasNamespace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasNamespace"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>hasNamespaceUri</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasNamespaceUri"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>hasNsAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasNsAttr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>hasOption</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasOption"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>hasPrefix</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasPrefix"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>hasQAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasQAttr"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>hasQAttrValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasQAttrValue"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>hasQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasQName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>hasText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasText"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>hasValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasValue"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>hasXmlPi</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AhasXmlPi"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>haskellRepOfXmlDoc</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AhaskellRepOfXmlDoc"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AhaskellRepOfXmlDoc"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>hexStringToInt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AhexStringToInt"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>hread</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3Ahread"+>Text.XML.HXT.Arrow.ReadDocument</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>httpPrefix</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AhttpPrefix"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/doc-index-I.html view
@@ -0,0 +1,1886 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The complete API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (I)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry" COLSPAN="2"+>IOLA</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>Control.Arrow.IOListArrow</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-IOListArrow.html#v%3AIOLA"+>Control.Arrow.IOListArrow</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>IOSArrow</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>IOSLA</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>Control.Arrow.IOStateListArrow</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-IOStateListArrow.html#v%3AIOSLA"+>Control.Arrow.IOStateListArrow</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>IOStateArrow</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>IfThen</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#t%3AIfThen"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#t%3AIfThen"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>Interleave</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AInterleave"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>ifA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3AifA"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>ifM</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AifM"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>ifP</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3AifP"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>iff</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3Aiff"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>indentDoc</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AindentDoc"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AindentDoc"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>initialState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AinitialState"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>initialSysState</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AinitialSysState"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AinitialSysState"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>inputOptions</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AinputOptions"+>Text.XML.HXT.DOM.XmlOptions</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>insertChildrenAfter</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3AinsertChildrenAfter"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AinsertChildrenAfter"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>insertChildrenAt</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3AinsertChildrenAt"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AinsertChildrenAt"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>insertTreeTemplate</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3AinsertTreeTemplate"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>intToCharRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AintToCharRef"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>intToCharRefHex</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AintToCharRefHex"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>intToHexString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AintToHexString"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>intValueOf</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AintValueOf"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>io</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Monad-MonadStateIO.html#v%3Aio"+>Control.Monad.MonadStateIO</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3Aio"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>is1ByteXmlChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Ais1ByteXmlChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3AisA"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>isAttlist</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttlist"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isAttlistOfElement</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttlistOfElement"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isAttlistParameterEntity</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttlistParameterEntity"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>isAttr</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisAttr"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisAttr"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexannot"+>3 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isAttrNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisAttrNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isAttrType</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AisAttrType"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>isCdata</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisCdata"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisCdata"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>isCharRef</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisCharRef"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisCharRef"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>isCmt</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisCmt"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisCmt"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>isCondSect</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisCondSect"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>isDTD</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTD"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisDTD"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>isDTDAttlist</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDAttlist"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>isDTDCondSect</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDCondSect"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>isDTDContent</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDContent"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>isDTDDoctype</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDDoctype"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>isDTDElemNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisDTDElemNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isDTDElement</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDElement"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>isDTDEntity</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDEntity"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>isDTDName</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisDTDName"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isDTDNotation</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDNotation"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>isDTDPERef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDPERef"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>isDTDPEntity</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDPEntity"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>isDeclaredNamespace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisDeclaredNamespace"+>Text.XML.HXT.DOM.NamespacePredicates</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>isDefaultAttrKind</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisDefaultAttrKind"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isDoctype</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisDoctype"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>isElem</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisElem"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisElem"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>isElemContentParamEntity</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisElemContentParamEntity"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isElemType</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AisElemType"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isElemWithContent</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisElemWithContent"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isElement</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisElement"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isEmptyElement</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisEmptyElement"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isEntity</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisEntity"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>isEntityRef</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisEntityRef"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisEntityRef"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>isEnumAttrType</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisEnumAttrType"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>isError</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisError"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisError"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexannot"+>3 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisError"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isErrorNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisErrorNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isExternalParameterEntity</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisExternalParameterEntity"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isFatalError</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisFatalError"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isFixedAttrKind</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisFixedAttrKind"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isFollowingMultiByteChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisFollowingMultiByteChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isIOA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIO.html#v%3AisIOA"+>Control.Arrow.ArrowIO</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>isIdAttrType</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisIdAttrType"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isIdRefAttrType</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisIdRefAttrType"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isInner</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AisInner"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isInternalParameterEntity</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisInternalParameterEntity"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isLeadingMultiByteChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisLeadingMultiByteChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isLeaf</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AisLeaf"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isMatchExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AisMatchExpr"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isMixedContentElement</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisMixedContentElement"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isMultiByteChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisMultiByteChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isMultiByteXmlChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisMultiByteXmlChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isNByteChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisNByteChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isNCName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisNCName"+>Text.XML.HXT.DOM.NamespacePredicates</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>isNamespaceDecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3AisNamespaceDecl"+>Text.XML.HXT.DOM.NamespaceFilter</A+>, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isNamespaceDeclAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AisNamespaceDeclAttr"+>Text.XML.HXT.Arrow.Namespace</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>isNotInNodeList</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AisNotInNodeList"+>Text.XML.HXT.XPath.XPathFct</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>isNotation</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisNotation"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isNotationAttrType</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisNotationAttrType"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>isNsAttr</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisNsAttr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AisNsAttr"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isNsTag</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisNsTag"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isOf</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AisOf"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isOfAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisOfAttr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isOfAttrNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisOfAttrNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isOfNode</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AisOfNode"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isOfPi</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisOfPi"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isOfPiNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisOfPiNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isOfTag</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisOfTag"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isOfTagNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisOfTagNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isOfText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisOfText"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isOfTextNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisOfTextNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isParam</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AisParam"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isParameterEntity</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisParameterEntity"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isPeRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisPeRef"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>isPi</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisPi"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisPi"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexannot"+>3 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisPi"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isPiNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisPiNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isRelaxAfter</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxAfter"+>Text.XML.HXT.RelaxNG.PatternFunctions</A+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>isRelaxAnyURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AisRelaxAnyURI"+>Text.XML.HXT.RelaxNG.Utils</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD+></TR+><TR+><TD CLASS="indexentry"+>isRelaxAttribute</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxAttribute"+>Text.XML.HXT.RelaxNG.PatternFunctions</A+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>isRelaxChoice</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxChoice"+>Text.XML.HXT.RelaxNG.PatternFunctions</A+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>isRelaxData</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxData"+>Text.XML.HXT.RelaxNG.PatternFunctions</A+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>isRelaxDataExcept</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxDataExcept"+>Text.XML.HXT.RelaxNG.PatternFunctions</A+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>isRelaxElement</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxElement"+>Text.XML.HXT.RelaxNG.PatternFunctions</A+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>isRelaxEmpty</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxEmpty"+>Text.XML.HXT.RelaxNG.PatternFunctions</A+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>isRelaxGroup</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxGroup"+>Text.XML.HXT.RelaxNG.PatternFunctions</A+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>isRelaxInterleave</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxInterleave"+>Text.XML.HXT.RelaxNG.PatternFunctions</A+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>isRelaxList</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxList"+>Text.XML.HXT.RelaxNG.PatternFunctions</A+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>isRelaxNotAllowed</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxNotAllowed"+>Text.XML.HXT.RelaxNG.PatternFunctions</A+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>isRelaxOneOrMore</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxOneOrMore"+>Text.XML.HXT.RelaxNG.PatternFunctions</A+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>isRelaxText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxText"+>Text.XML.HXT.RelaxNG.PatternFunctions</A+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>isRelaxValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html#v%3AisRelaxValue"+>Text.XML.HXT.RelaxNG.PatternFunctions</A+>, Text.XML.HXT.RelaxNG.CreatePattern, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>isRequiredAttrKind</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisRequiredAttrKind"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>isRoot</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisRoot"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisRoot"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexannot"+>3 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AisRoot"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isRootNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisRootNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isStandaloneDocument</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AisStandaloneDocument"+>Text.XML.HXT.Parser.XmlInput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isTag</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisTag"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isTagNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisTagNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>isText</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisText"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisText"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexannot"+>3 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisText"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isTextNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisTextNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isUnparsedEntity</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisUnparsedEntity"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isWarning</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisWarning"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isWellformedNSDecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedNSDecl"+>Text.XML.HXT.DOM.NamespacePredicates</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>isWellformedQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedQName"+>Text.XML.HXT.DOM.NamespacePredicates</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>isWellformedQualifiedName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedQualifiedName"+>Text.XML.HXT.DOM.NamespacePredicates</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>isWhiteSpace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisWhiteSpace"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isWhitespaceNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AisWhitespaceNode"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXAttr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXAttrNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXAttrNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXCdata</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXCdata"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXCdataNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXCdataNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXCharRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXCharRef"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXCharRefNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXCharRefNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXCmt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXCmt"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXCmtNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXCmtNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXDTD</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXDTD"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXDTDNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXDTDNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXEntityRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXEntityRef"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXEntityRefNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXEntityRefNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXError</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXError"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXErrorNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXErrorNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXPi</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXPi"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXPiNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXPiNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXTag</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXTag"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXTagNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXTagNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXText"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXTextNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXTextNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXml11SpaceChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXml11SpaceChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlBaseChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlBaseChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlCombiningChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlCombiningChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlControlOrPermanentlyUndefined</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlControlOrPermanentlyUndefined"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlDigit</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlDigit"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlExtender</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlExtender"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlIdeographicChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlIdeographicChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlLatin1Char</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlLatin1Char"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlLetter</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlLetter"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlNCNameChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNCNameChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlNCNameStartChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNCNameStartChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlNameChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNameChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlNameStartChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNameStartChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>isXmlPi</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisXmlPi"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXmlPi"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlPubidChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlPubidChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlSpaceChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlSpaceChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isoLatin1</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisoLatin1"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>issueErr</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AissueErr"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueErr"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>issueError</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueError"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>issueFatal</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AissueFatal"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueFatal"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>issueWarn</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AissueWarn"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueWarn"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/doc-index-K.html view
@@ -0,0 +1,386 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The complete API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (K)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>KeyTab</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AKeyTab"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>k_any</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_any"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_cdata</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_cdata"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_default</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_default"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_empty</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_empty"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_enitity</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_enitity"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_entities</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_entities"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_enumeration</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_enumeration"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_fixed</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_fixed"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_id</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_id"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_idref</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_idref"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_idrefs</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_idrefs"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_ignore</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_ignore"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_implied</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_implied"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_include</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_include"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_ndata</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_ndata"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_nmtoken</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_nmtoken"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_nmtokens</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_nmtokens"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_notation</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_notation"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_pcdata</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_pcdata"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_peref</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_peref"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_public</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_public"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_required</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_required"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_system</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_system"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>keyword</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Akeyword"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>keywords</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Akeywords"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/doc-index-L.html view
@@ -0,0 +1,410 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The complete API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (L)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry" COLSPAN="2"+>LA</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>Control.Arrow.ListArrow</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ListArrow.html#v%3ALA"+>Control.Arrow.ListArrow</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>Less</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ALess"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>LessEq</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ALessEq"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>List</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AList"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>Literal</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALiteral"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>LiteralExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ALiteralExpr"+>Text.XML.HXT.XPath.XPathDataTypes</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>LiteralQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ALiteralQName"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>LocPath</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ALocPath"+>Text.XML.HXT.XPath.XPathDataTypes</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>LocalName</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ALocalName"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALocalName"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>LocationPath</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALocationPath"+>Text.XML.HXT.XPath.XPathDataTypes</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>latin1ToUnicode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Alatin1ToUnicode"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>leftNT</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3AleftNT"+>Data.NavTree</A+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>liftF</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AliftF"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>liftMf</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AliftMf"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>liftSt</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-IOStateListArrow.html#v%3AliftSt"+>Control.Arrow.IOStateListArrow</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>listA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3AlistA"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>localPart</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AlocalPart"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>localPartOf</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AlocalPartOf"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>lookup1</TD+><TD CLASS="indexlinks"+><A HREF="Data-AssocList.html#v%3Alookup1"+>Data.AssocList</A+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>lookupAlias</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AlookupAlias"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>lookupDef</TD+><TD CLASS="indexlinks"+><A HREF="Data-AssocList.html#v%3AlookupDef"+>Data.AssocList</A+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>lookupPrefix</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AlookupPrefix"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>lookupStrip</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AlookupStrip"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>lookupStrip1</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AlookupStrip1"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>lpar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Alpar"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>lt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Alt"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/doc-index-M.html view
@@ -0,0 +1,1078 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The complete API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (M)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>MatRule</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AMatRule"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>MatchExpr</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchExpr"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AMatchExpr"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>MatchRule</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Minus</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AMinus"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>MkVar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AMkVar"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Mod</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AMod"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Mult</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AMult"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>mapNTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AmapNTree"+>Text.XML.HXT.DOM.XmlTreeTypes</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mapTreeCtx</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AmapTreeCtx"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>markupdecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Amarkupdecl"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>matches</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3Amatches"+>Text.XML.HXT.Validator.RE</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Amatches"+>Text.XML.HXT.Validator.XmlRE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>maybePlus</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3AmaybePlus"+>Data.NavTree</A+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>maybeStar</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3AmaybeStar"+>Data.NavTree</A+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>maybeString2XText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmaybeString2XText"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mergeAttrl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmergeAttrl"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>misc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Amisc"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkAbsURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AmkAbsURI"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>mkAttr</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkAttr"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkAttr"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>mkAttrNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkAttrNode"+>Text.XML.HXT.Arrow.XmlNode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>mkBoolExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AmkBoolExpr"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>mkCdata</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkCdata"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkCdata"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>mkCharRef</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkCharRef"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkCharRef"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>mkCmt</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkCmt"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkCmt"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>mkDTDDoctype</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkDTDDoctype"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>mkDTDElem</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkDTDElem"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkDTDElem"+>Text.XML.HXT.Arrow.XmlNode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>mkDTDElement</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkDTDElement"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>mkDTDEntity</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkDTDEntity"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>mkDTDNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkDTDNode"+>Text.XML.HXT.Arrow.XmlNode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>mkDTDPEntity</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkDTDPEntity"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>mkElement</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkElement"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>mkElementNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkElementNode"+>Text.XML.HXT.Arrow.XmlNode</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>mkEntityRef</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkEntityRef"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkEntityRef"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>mkError</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkError"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkError"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>mkExName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AmkExName"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>mkLeaf</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AmkLeaf"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkList</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AmkList"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkLiteralExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AmkLiteralExpr"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>mkNTree</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AmkNTree"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkName"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>mkNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AmkNode"+>Text.XML.HXT.DOM.XmlTreeTypes</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkNsName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkNsName"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>mkPi</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkPi"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkPi"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>mkPrefixLocalPart</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkPrefixLocalPart"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>mkQAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkQAttr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkQAttrTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkQAttrTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AmkQName"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>mkQTag</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkQTag"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkQTagTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkQTagTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkRootTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkRootTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkSNsName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkSNsName"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>mkStringExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AmkStringExpr"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>mkText</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkText"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkText"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>mkTree</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AmkTree"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkTrueExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AmkTrueExpr"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>mkXAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXAttr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXAttrTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXAttrTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXCdata</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXCdata"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXCdataTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXCdataTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXCharRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXCharRef"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXCharRefTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXCharRefTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXCmt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXCmt"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXCmtTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXCmtTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXDTD</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXDTD"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXDTDTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXDTDTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXEntityRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXEntityRef"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXEntityRefTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXEntityRefTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXError</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXError"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXErrorTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXErrorTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXNsAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXNsAttr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXNsAttrTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXNsAttrTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXNsTag</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXNsTag"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXNsTagTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXNsTagTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXPERefTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXPERefTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXPi</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXPi"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXPiTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXPiTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXTag</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXTag"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXTagTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXTagTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXText"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXTextTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXTextTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXmlDeclTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXmlDeclTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXsltAttribName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AmkXsltAttribName"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>mkXsltName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AmkXsltName"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>mkelem</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Amkelem"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>mkqelem</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Amkqelem"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>modifyAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmodifyAttr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>modifyChildren</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyChildren"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>modifyNode</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyNode"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>modifyNode0</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyNode0"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>modifyQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmodifyQName"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>modifyText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmodifyText"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>multi</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3Amulti"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3Amulti"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mysqlDatatypeLib</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibMysql.html#v%3AmysqlDatatypeLib"+>Text.XML.HXT.RelaxNG.DataTypeLibMysql</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>mysqlNS</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibMysql.html#v%3AmysqlNS"+>Text.XML.HXT.RelaxNG.DataTypeLibMysql</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/doc-index-N.html view
@@ -0,0 +1,842 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The complete API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (N)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>NAME</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3ANAME"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>NCError</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3ANCError"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>NEq</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANEq"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>NOTATION</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3ANOTATION"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>NSAliasing</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANSAliasing"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>NT</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3ANT"+>Data.NavTree</A+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>NTest</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANTest"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>NTree</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>Data.Tree.NTree.TypeDefs</A+>, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-TypeDefs.html#v%3ANTree"+>Data.Tree.NTree.TypeDefs</A+>, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>NTrees</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>Data.Tree.NTree.TypeDefs</A+>, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>NaN</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANaN"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>NamRule</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ANamRule"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>Name</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AName"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AName"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>NameClass</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>NameClassChoice</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3ANameClassChoice"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>NamePair</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANamePair"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>NamePrefix</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANamePrefix"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>NameTest</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANameTest"+>Text.XML.HXT.XPath.XPathDataTypes</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>NamedRule</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANamedRule"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Namespace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANamespace"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>NamespaceTable</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#t%3ANamespaceTable"+>Text.XML.HXT.DOM.NamespaceFilter</A+>, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>NavTree</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#t%3ANavTree"+>Data.NavTree</A+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>NavXmlTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"+>Text.XML.HXT.XPath.XPathDataTypes</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>NavXmlTrees</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTrees"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Neg0</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANeg0"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>NegInf</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANegInf"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>NewName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANewName"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>NodeSet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeSet"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>NodeTest</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"+>Text.XML.HXT.XPath.XPathDataTypes</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>NotAllowed</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3ANotAllowed"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>NsEnv</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>NsName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3ANsName"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>NsNameExcept</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3ANsNameExcept"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>NumberExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANumberExpr"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>nTreeToList</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AnTreeToList"+>Text.XML.HXT.DOM.XmlTreeTypes</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>n_comment</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3An_comment"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>n_node</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3An_node"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>n_processing_instruction</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3An_processing_instruction"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>n_text</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3An_text"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>name</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Aname"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>nameClassToString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-PatternToString.html#v%3AnameClassToString"+>Text.XML.HXT.RelaxNG.PatternToString</A+>, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>nameOf</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnameOf"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>namePrefix</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnamePrefix"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>nameT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AnameT"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>names</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Anames"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>namespaceOf</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnamespaceOf"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>namespaceUri</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnamespaceUri"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>ncName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AncName"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>neg</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3Aneg"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3Aneg"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>newDocument</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnewDocument"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>newDocument'</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnewDocument%27"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>newRoot</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnewRoot"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>nextState</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowState.html#v%3AnextState"+>Control.Arrow.ArrowState</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>nmtoken</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Anmtoken"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>nmtokenT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AnmtokenT"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>nmtokens</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Anmtokens"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>noDoubles</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AnoDoubles"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>nodesTree</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AnodesTree"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>none</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3Anone"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3Anone"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>noneM</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AnoneM"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>normalizeAttributeValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-AttributeValueValidation.html#v%3AnormalizeAttributeValue"+>Text.XML.HXT.Validator.AttributeValueValidation</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>normalizeForRelaxValidation</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Validation.html#v%3AnormalizeForRelaxValidation"+>Text.XML.HXT.RelaxNG.Validation</A+>, Text.XML.HXT.RelaxNG.Validator, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>normalizeNL</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AnormalizeNL"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>normalizeNsUri</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnormalizeNsUri"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>normalizeNumber</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AnormalizeNumber"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>normalizeURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AnormalizeURI"+>Text.XML.HXT.RelaxNG.Utils</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD+></TR+><TR+><TD CLASS="indexentry"+>normalizeWhitespace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AnormalizeWhitespace"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>notContaining</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3AnotContaining"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AnotContaining"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>notationDecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AnotationDecl"+>Text.XML.HXT.Parser.XmlDTDParser</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>nt2XPathTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathToString.html#v%3Ant2XPathTree"+>Text.XML.HXT.XPath.XPathToString</A+>, Text.XML.HXT.XPath</TD+></TR+><TR+><TD CLASS="indexentry"+>ntree</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3Antree"+>Data.NavTree</A+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>nullQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnullQName"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>nullable</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3Anullable"+>Text.XML.HXT.Validator.RE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>numberLines</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AnumberLines"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>numberLinesInXmlDoc</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AnumberLinesInXmlDoc"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AnumberLinesInXmlDoc"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/doc-index-O.html view
@@ -0,0 +1,270 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The complete API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (O)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>OldName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AOldName"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>OneOrMore</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AOneOrMore"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>Op</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"+>Text.XML.HXT.XPath.XPathDataTypes</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>Or</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AOr"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>o</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3Ao"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>o'</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3Ao%27"+>Data.NavTree</A+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>ofDTDequals</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AofDTDequals"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>optionIsSet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AoptionIsSet"+>Text.XML.HXT.DOM.XmlOptions</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>orElse</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3AorElse"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AorElse"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>outputOptions</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AoutputOptions"+>Text.XML.HXT.DOM.XmlOptions</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/doc-index-P.html view
@@ -0,0 +1,1230 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The complete API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (P)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>PENTITY</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3APENTITY"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>PEREF</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3APEREF"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>PI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3API"+>Text.XML.HXT.XPath.XPathDataTypes</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>ParamList</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>ParamName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamName"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>Parent</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AParent"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Path</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3APath"+>Text.XML.HXT.XPath.XPathDataTypes</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>PathExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3APathExpr"+>Text.XML.HXT.XPath.XPathDataTypes</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>Pattern</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>Plus</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3APlus"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Pos0</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3APos0"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>PosInf</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3APosInf"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Preceding</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3APreceding"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>PrecedingSibling</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3APrecedingSibling"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Prefix</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APrefix"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>pI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3ApI"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>parentAxis</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AparentAxis"+>Text.XML.HXT.XPath.NavTree</A+>, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>parseContentType</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-ProtocolHandlerUtil.html#v%3AparseContentType"+>Text.XML.HXT.Parser.ProtocolHandlerUtil</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>parseDocument</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AparseDocument"+>Text.XML.HXT.Parser.MainFunctions</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>parseExName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AparseExName"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>parseHtmlContent</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseHtmlContent"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AparseHtmlContent"+>Text.XML.HXT.Parser.HtmlParsec</A+>, Text.XML.HXT.Parser.HtmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>parseHtmlDoc</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseHtmlDoc"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-HtmlParser.html#v%3AparseHtmlDoc"+>Text.XML.HXT.Parser.HtmlParser</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>parseHtmlDocument</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ProcessDocument.html#v%3AparseHtmlDocument"+>Text.XML.HXT.Arrow.ProcessDocument</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AparseHtmlDocument"+>Text.XML.HXT.Parser.HtmlParsec</A+>, Text.XML.HXT.Parser.HtmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>parseHtmlText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AparseHtmlText"+>Text.XML.HXT.Parser.HtmlParsec</A+>, Text.XML.HXT.Parser.HtmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>parseNMToken</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseNMToken"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>parseNTest</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AparseNTest"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>parseName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseName"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>parseNumber</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AparseNumber"+>Text.XML.HXT.RelaxNG.Utils</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathParser.html#v%3AparseNumber"+>Text.XML.HXT.XPath.XPathParser</A+>, Text.XML.HXT.XPath</TD+></TR+><TR+><TD CLASS="indexentry"+>parseXPath</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathParser.html#v%3AparseXPath"+>Text.XML.HXT.XPath.XPathParser</A+>, Text.XML.HXT.XPath, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>parseXmlAttrValue</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlAttrValue"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlAttrValue"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>parseXmlContent</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlContent"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlContent"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>parseXmlDTDEntityValue</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDTDEntityValue"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AparseXmlDTDEntityValue"+>Text.XML.HXT.Parser.XmlDTDParser</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>parseXmlDTDPart</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDTDPart"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlDTDPart"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>parseXmlDTDdecl</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDTDdecl"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AparseXmlDTDdecl"+>Text.XML.HXT.Parser.XmlDTDParser</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>parseXmlDTDdeclPart</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDTDdeclPart"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AparseXmlDTDdeclPart"+>Text.XML.HXT.Parser.XmlDTDParser</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>parseXmlDoc</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDoc"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParser.html#v%3AparseXmlDoc"+>Text.XML.HXT.Parser.XmlParser</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>parseXmlDocEncodingSpec</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDocEncodingSpec"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlDocEncodingSpec"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>parseXmlDocument</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ProcessDocument.html#v%3AparseXmlDocument"+>Text.XML.HXT.Arrow.ProcessDocument</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlDocument"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>parseXmlEncodingSpec</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlEncodingSpec"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>parseXmlEntityEncodingSpec</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlEntityEncodingSpec"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlEntityEncodingSpec"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>parseXmlGeneralEntityValue</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlGeneralEntityValue"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlGeneralEntityValue"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>parseXmlPart</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlPart"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>parseXmlText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlText"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>partitionA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3ApartitionA"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>patternToFormatedString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-PatternToString.html#v%3ApatternToFormatedString"+>Text.XML.HXT.RelaxNG.PatternToString</A+>, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>patternToStringTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-PatternToString.html#v%3ApatternToStringTree"+>Text.XML.HXT.RelaxNG.PatternToString</A+>, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>peReference</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3ApeReference"+>Text.XML.HXT.Parser.XmlDTDTokenParser</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3ApeReference"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>peReferenceT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3ApeReferenceT"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>percent</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3Apercent"+>Text.XML.HXT.Parser.XmlDTDTokenParser</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>perform</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3Aperform"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>performAction</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AperformAction"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>popen</TD+><TD CLASS="indexlinks"+><A HREF="System-PipeOpen.html#v%3Apopen"+>System.PipeOpen</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>precedingAxis</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AprecedingAxis"+>Text.XML.HXT.XPath.NavTree</A+>, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>precedingSiblingAxis</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AprecedingSiblingAxis"+>Text.XML.HXT.XPath.NavTree</A+>, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>pred2XPathTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathToString.html#v%3Apred2XPathTree"+>Text.XML.HXT.XPath.XPathToString</A+>, Text.XML.HXT.XPath</TD+></TR+><TR+><TD CLASS="indexentry"+>prefixOf</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AprefixOf"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>preorderNT</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3ApreorderNT"+>Data.NavTree</A+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>prepareXSLTDocument</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Compilation.html#v%3AprepareXSLTDocument"+>Text.XML.HXT.XSLT.Compilation</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>printRE</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3AprintRE"+>Text.XML.HXT.Validator.RE</A+>, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3AprintRE"+>Text.XML.HXT.Validator.XmlRE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>processAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AprocessAttr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>processAttrM</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AprocessAttrM"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>processAttrl</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AprocessAttrl"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AprocessAttrl"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>processBottomUp</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessBottomUp"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUp"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>processBottomUpIfNot</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUpIfNot"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>processBottomUpM</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUpM"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>processBottomUpWhenNot</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessBottomUpWhenNot"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>processChildren</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessChildren"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessChildren"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>processChildrenM</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessChildrenM"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>processDTD</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-DTDProcessing.html#v%3AprocessDTD"+>Text.XML.HXT.Arrow.DTDProcessing</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-DTDProcessing.html#v%3AprocessDTD"+>Text.XML.HXT.Parser.DTDProcessing</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>processFromNodeSet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AprocessFromNodeSet"+>Text.XML.HXT.Arrow.XmlNodeSet</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>processGeneralEntities</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-GeneralEntitySubstitution.html#v%3AprocessGeneralEntities"+>Text.XML.HXT.Arrow.GeneralEntitySubstitution</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-DTDProcessing.html#v%3AprocessGeneralEntities"+>Text.XML.HXT.Parser.DTDProcessing</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>processTopDown</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessTopDown"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDown"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>processTopDownM</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDownM"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>processTopDownUntil</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessTopDownUntil"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDownUntil"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>processTopDownWithAttrl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AprocessTopDownWithAttrl"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>processWithNsEnv</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AprocessWithNsEnv"+>Text.XML.HXT.Arrow.Namespace</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>processWithNsEnvWithoutAttrl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AprocessWithNsEnvWithoutAttrl"+>Text.XML.HXT.Arrow.Namespace</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>processXPathTrees</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AprocessXPathTrees"+>Text.XML.HXT.Arrow.XmlNodeSet</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>processXPathTreesWithNsEnv</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AprocessXPathTreesWithNsEnv"+>Text.XML.HXT.Arrow.XmlNodeSet</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>prolog</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Aprolog"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>propagateAndValidateNamespaces</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ProcessDocument.html#v%3ApropagateAndValidateNamespaces"+>Text.XML.HXT.Arrow.ProcessDocument</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Namespace.html#v%3ApropagateAndValidateNamespaces"+>Text.XML.HXT.DOM.Namespace</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>propagateNamespaceEnv</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3ApropagateNamespaceEnv"+>Text.XML.HXT.DOM.NamespaceFilter</A+>, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>propagateNamespaces</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3ApropagateNamespaces"+>Text.XML.HXT.DOM.NamespaceFilter</A+>, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3ApropagateNamespaces"+>Text.XML.HXT.Arrow.Namespace</A+>, <A HREF="Text-XML-HXT-Arrow.html#v%3ApropagateNamespaces"+>Text.XML.HXT.Arrow</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>pubidLiteral</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3ApubidLiteral"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>putXmlDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AputXmlDoc"+>Text.XML.HXT.Parser.XmlOutput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>putXmlDocToFile</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AputXmlDocToFile"+>Text.XML.HXT.Parser.XmlOutput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>putXmlDocument</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-DocumentOutput.html#v%3AputXmlDocument"+>Text.XML.HXT.Arrow.DocumentOutput</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AputXmlDocument"+>Text.XML.HXT.Parser.MainFunctions</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>putXmlSource</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-DocumentOutput.html#v%3AputXmlSource"+>Text.XML.HXT.Arrow.DocumentOutput</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AputXmlSource"+>Text.XML.HXT.Parser.XmlOutput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>putXmlTree</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-DocumentOutput.html#v%3AputXmlTree"+>Text.XML.HXT.Arrow.DocumentOutput</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AputXmlTree"+>Text.XML.HXT.Parser.XmlOutput</A+>, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/doc-index-Q.html view
@@ -0,0 +1,262 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The complete API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (Q)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>QN</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AQN"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>QName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>qName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AqName"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>qattr</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aqattr"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aqattr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>qetag</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aqetag"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>qn2String</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3Aqn2String"+>Text.XML.HXT.RelaxNG.Utils</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD+></TR+><TR+><TD CLASS="indexentry"+>qtag</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aqtag"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>qualifiedName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AqualifiedName"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>quoted</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Aquoted"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/doc-index-R.html view
@@ -0,0 +1,886 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The complete API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (R)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>RE</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>Text.XML.HXT.Validator.RE</A+>, <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>Text.XML.HXT.Validator.XmlRE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>RE_ALT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_ALT"+>Text.XML.HXT.Validator.RE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>RE_DOT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_DOT"+>Text.XML.HXT.Validator.RE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>RE_OPT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_OPT"+>Text.XML.HXT.Validator.RE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>RE_PLUS</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_PLUS"+>Text.XML.HXT.Validator.RE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>RE_REP</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_REP"+>Text.XML.HXT.Validator.RE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>RE_SEQ</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_SEQ"+>Text.XML.HXT.Validator.RE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>RE_SYM</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_SYM"+>Text.XML.HXT.Validator.RE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>RE_UNIT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_UNIT"+>Text.XML.HXT.Validator.RE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>RE_ZERO</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_ZERO"+>Text.XML.HXT.Validator.RE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>RefList</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ARefList"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>Rel</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ARel"+>Text.XML.HXT.XPath.XPathDataTypes</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>Rule</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ARule"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>re_alt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_alt"+>Text.XML.HXT.Validator.RE</A+>, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_alt"+>Text.XML.HXT.Validator.XmlRE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>re_dot</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_dot"+>Text.XML.HXT.Validator.RE</A+>, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_dot"+>Text.XML.HXT.Validator.XmlRE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>re_opt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_opt"+>Text.XML.HXT.Validator.RE</A+>, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_opt"+>Text.XML.HXT.Validator.XmlRE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>re_plus</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_plus"+>Text.XML.HXT.Validator.RE</A+>, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_plus"+>Text.XML.HXT.Validator.XmlRE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>re_rep</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_rep"+>Text.XML.HXT.Validator.RE</A+>, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_rep"+>Text.XML.HXT.Validator.XmlRE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>re_seq</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_seq"+>Text.XML.HXT.Validator.RE</A+>, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_seq"+>Text.XML.HXT.Validator.XmlRE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>re_sym</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_sym"+>Text.XML.HXT.Validator.RE</A+>, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_sym"+>Text.XML.HXT.Validator.XmlRE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>re_unit</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_unit"+>Text.XML.HXT.Validator.RE</A+>, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_unit"+>Text.XML.HXT.Validator.XmlRE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>re_zero</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_zero"+>Text.XML.HXT.Validator.RE</A+>, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_zero"+>Text.XML.HXT.Validator.XmlRE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>readDocument</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadDocument"+>Text.XML.HXT.Arrow.ReadDocument</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>readForRelax</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Validation.html#v%3AreadForRelax"+>Text.XML.HXT.RelaxNG.Validation</A+>, Text.XML.HXT.RelaxNG.Validator, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>readFromDocument</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadFromDocument"+>Text.XML.HXT.Arrow.ReadDocument</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>readFromString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadFromString"+>Text.XML.HXT.Arrow.ReadDocument</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>readString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadString"+>Text.XML.HXT.Arrow.ReadDocument</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>readWDefault</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AreadWDefault"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>reference</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Areference"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>referenceT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AreferenceT"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>relaxNamespace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3ArelaxNamespace"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>relaxOptions</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3ArelaxOptions"+>Text.XML.HXT.DOM.XmlOptions</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>relaxSchemaArrow</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Schema.html#v%3ArelaxSchemaArrow"+>Text.XML.HXT.RelaxNG.Schema</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-SchemaGrammar.html#v%3ArelaxSchemaArrow"+>Text.XML.HXT.RelaxNG.SchemaGrammar</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>relaxSchemaFile</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3ArelaxSchemaFile"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>relaxSchemaGrammarFile</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3ArelaxSchemaGrammarFile"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>relaxSchemaTree</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Schema.html#v%3ArelaxSchemaTree"+>Text.XML.HXT.RelaxNG.Schema</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-SchemaGrammar.html#v%3ArelaxSchemaTree"+>Text.XML.HXT.RelaxNG.SchemaGrammar</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>remDups</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AremDups"+>Text.XML.HXT.XPath.XPathFct</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>removeAllComment</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveAllComment"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveAllComment"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>removeAllWhiteSpace</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveAllWhiteSpace"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveAllWhiteSpace"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>removeAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AremoveAttr"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>removeComment</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveComment"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveComment"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>removeDocWhiteSpace</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveDocWhiteSpace"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveDocWhiteSpace"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>removeDoublicateDefs</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-DTDValidation.html#v%3AremoveDoublicateDefs"+>Text.XML.HXT.Validator.DTDValidation</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-ValidationFilter.html#v%3AremoveDoublicateDefs"+>Text.XML.HXT.Validator.ValidationFilter</A+>, Text.XML.HXT.Validator.Validation, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>removeEncodingSpec</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AremoveEncodingSpec"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AremoveEncodingSpec"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>removeOptions</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AremoveOptions"+>Text.XML.HXT.DOM.XmlOptions</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>removeQAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AremoveQAttr"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>removeWhiteSpace</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveWhiteSpace"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveWhiteSpace"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>replaceAttrl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AreplaceAttrl"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>replaceChildren</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3AreplaceChildren"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AreplaceChildren"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>replaceNode</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AreplaceNode"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>replaceQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AreplaceQName"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>revPreorderNT</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3ArevPreorderNT"+>Data.NavTree</A+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>rightNT</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3ArightNT"+>Data.NavTree</A+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>root</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aroot"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>rootTag</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3ArootTag"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>rpar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Arpar"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>run</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Monad-MonadStateIO.html#v%3Arun"+>Control.Monad.MonadStateIO</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3Arun"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>run'</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3Arun%27"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>run0</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3Arun0"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>runHtmlParser</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-HtmlParser.html#v%3ArunHtmlParser"+>Text.XML.HXT.Parser.HtmlParser</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>runIOLA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-IOListArrow.html#v%3ArunIOLA"+>Control.Arrow.IOListArrow</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>runIOSLA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-IOStateListArrow.html#v%3ArunIOSLA"+>Control.Arrow.IOStateListArrow</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>runInLocalURIContext</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3ArunInLocalURIContext"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3ArunInLocalURIContext"+>Text.XML.HXT.Parser.XmlInput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>runInNewURIContext</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3ArunInNewURIContext"+>Text.XML.HXT.Parser.XmlInput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>runLA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ListArrow.html#v%3ArunLA"+>Control.Arrow.ListArrow</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>runSLA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-StateListArrow.html#v%3ArunSLA"+>Control.Arrow.StateListArrow</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>runSt</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-IOStateListArrow.html#v%3ArunSt"+>Control.Arrow.IOStateListArrow</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>runX</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3ArunX"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/doc-index-S.html view
@@ -0,0 +1,1394 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The complete API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (S)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry" COLSPAN="2"+>SLA</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>Control.Arrow.StateListArrow</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-StateListArrow.html#v%3ASLA"+>Control.Arrow.StateListArrow</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>STIO</TD+><TD CLASS="indexlinks"+><A HREF="Control-Monad-MonadStateIO.html#v%3ASTIO"+>Control.Monad.MonadStateIO</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>SelectExpr</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ASelectExpr"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ASelectExpr"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Self</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ASelf"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>SortK</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ASortK"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>SortKey</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ASortKey"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>StateIO</TD+><TD CLASS="indexlinks"+><A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>Control.Monad.MonadStateIO</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Step</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AStep"+>Text.XML.HXT.XPath.XPathDataTypes</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>StringExpr</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStringExpr"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AStringExpr"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Strips</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>SysState</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3ASysState"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>SysStateAttrs</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysStateAttrs"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>sDDecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AsDDecl"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>sPace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsPace"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>sPace0</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsPace0"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>satisfies</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3Asatisfies"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>sattr</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Asattr"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Asattr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>selectOptions</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AselectOptions"+>Text.XML.HXT.DOM.XmlOptions</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>selem</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aselem"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>selfAxis</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AselfAxis"+>Text.XML.HXT.XPath.NavTree</A+>, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>semi</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Asemi"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>separator</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Aseparator"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>seqA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3AseqA"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>seqF</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AseqF"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>seqM</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AseqM"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>setAttrName</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetAttrName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AsetAttrName"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>setAttribute</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AsetAttribute"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>setAttrl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetAttrl"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>setBaseURI</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetBaseURI"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AsetBaseURI"+>Text.XML.HXT.Parser.XmlInput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>setChildren</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3AsetChildren"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AsetChildren"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>setCmt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AsetCmt"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>setDTDAttrValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetDTDAttrValue"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>setDTDAttrl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AsetDTDAttrl"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>setDefaultBaseURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetDefaultBaseURI"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>setDefaultURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-DefaultURI.html#v%3AsetDefaultURI"+>Text.XML.HXT.Parser.DefaultURI</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>setDocumentStatus</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetDocumentStatus"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>setDocumentStatusFromSystemState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetDocumentStatusFromSystemState"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>setElemAttrl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AsetElemAttrl"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>setElemName</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetElemName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AsetElemName"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>setErrMsgStatus</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetErrMsgStatus"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>setErrStatus</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetErrStatus"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>setErrorMsgHandler</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetErrorMsgHandler"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>setErrorMsgLevel</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetErrorMsgLevel"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>setName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AsetName"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>setNamespace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AsetNamespace"+>Text.XML.HXT.DOM.NamespacePredicates</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>setNode</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3AsetNode"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AsetNode"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>setParam</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetParam"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>setParamInt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetParamInt"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>setParamList</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetParamList"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>setParamString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetParamString"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>setPiName</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetPiName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AsetPiName"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>setQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetQName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>setState</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowState.html#v%3AsetState"+>Control.Arrow.ArrowState</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Monad-MonadStateIO.html#v%3AsetState"+>Control.Monad.MonadStateIO</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>3 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetState"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>setStatus</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetStatus"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>setSysErrorHandler</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSysErrorHandler"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>setSysParam</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSysParam"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>setSysParamInt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSysParamInt"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>setSysParamTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSysParamTree"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>setSysState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSysState"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>setSystemParams</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSystemParams"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>setText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AsetText"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>setTraceLevel</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetTraceLevel"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetTraceLevel"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>setUriMap</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AsetUriMap"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>setUserState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetUserState"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>showApos</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowApos"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowAttr"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showBlank</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowBlank"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showContent</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowContent"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showElemType</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowElemType"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showEntity</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowEntity"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showEntityValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowEntityValue"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showEq</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowEq"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showExternalId</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowExternalId"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showGt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowGt"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showLpar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowLpar"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showLt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowLt"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showNData</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowNData"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showNL</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowNL"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showOptions</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AshowOptions"+>Text.XML.HXT.DOM.XmlOptions</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>showPEAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowPEAttr"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowQName"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showQuot</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowQuot"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showQuoteString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowQuoteString"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showRpar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowRpar"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showSlash</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowSlash"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showXCharRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowXCharRef"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showXEntityRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowXEntityRef"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showXErrors</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowXErrors"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showXText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowXText"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showXmlDTD</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowXmlDTD"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showXmlTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowXmlTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showXmlTrees</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowXmlTrees"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showXmlTrees'</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowXmlTrees%27"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>single</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3Asingle"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>singleChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsingleChar"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>singleChars</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsingleChars"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>singleCharsT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsingleCharsT"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>singles</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3Asingles"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>skipS</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AskipS"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>skipS0</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AskipS0"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>spanA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3AspanA"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>spi</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aspi"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aspi"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>splitExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AsplitExpr"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>splitMatchByPrio</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AsplitMatchByPrio"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>sq</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Asq"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>sqattr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Asqattr"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>stag</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Astag"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>statusOk</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AstatusOk"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>strict</TD+><TD CLASS="indexlinks"+><A HREF="Control-Strategies-DeepSeq.html#v%3Astrict"+>Control.Strategies.DeepSeq</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>strictA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowStrict.html#v%3AstrictA"+>Control.Arrow.ArrowStrict</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>stringEscapeXml</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringEscapeXml"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>stringProtocol</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AstringProtocol"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>stringToHexString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringToHexString"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>stringToInt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringToInt"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>stringToUpper</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringToUpper"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>stringTrim</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringTrim"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>stringValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AstringValue"+>Text.XML.HXT.XPath.XPathFct</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>stripDocument</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AstripDocument"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>stripSpaces</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AstripSpaces"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>stripStylesheet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AstripStylesheet"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>substChildren</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AsubstChildren"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>substHtmlEntities</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AsubstHtmlEntities"+>Text.XML.HXT.Parser.HtmlParsec</A+>, Text.XML.HXT.Parser.HtmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>substHtmlEntityRefs</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AsubstHtmlEntityRefs"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>substXmlEntities</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AsubstXmlEntities"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>substXmlEntityRefs</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AsubstXmlEntityRefs"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>subtreeNT</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3AsubtreeNT"+>Data.NavTree</A+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>sysState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsysState"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>sysStateAttrs</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsysStateAttrs"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>sysStateErrorHandler</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsysStateErrorHandler"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>systemLiteral</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsystemLiteral"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/doc-index-T.html view
@@ -0,0 +1,900 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The complete API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (T)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>TFilter</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>TSFilter</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#t%3ATSFilter"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>TagName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"+>Text.XML.HXT.DOM.XmlTreeTypes</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>TemplApply</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplApply"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>TemplApplyImports</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplApplyImports"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>TemplAttribute</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplAttribute"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>TemplCall</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplCall"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>TemplChoose</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplChoose"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>TemplComment</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplComment"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>TemplComposite</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplComposite"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>TemplCopy</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplCopy"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>TemplCopyOf</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplCopyOf"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>TemplElement</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplElement"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>TemplForEach</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplForEach"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>TemplMessage</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplMessage"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>TemplProcInstr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplProcInstr"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>TemplText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplText"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>TemplValueOf</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplValueOf"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>TemplVariable</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplVariable"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Template</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>TestExpr</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATestExpr"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATestExpr"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Text</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AText"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>Tree</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#t%3ATree"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>TypeTest</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ATypeTest"+>Text.XML.HXT.XPath.XPathDataTypes</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>tName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AtName"+>Text.XML.HXT.DOM.XmlTreeTypes</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>t_root</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3At_root"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>t_xml</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3At_xml"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>tag</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Atag"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>tagA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3AtagA"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>textDecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AtextDecl"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>textEscapeXml</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AtextEscapeXml"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>this</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3Athis"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3Athis"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>thisM</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AthisM"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>thisNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AthisNode"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>toAttrl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AtoAttrl"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>toTreel</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AtoTreel"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>toXPathTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathToString.html#v%3AtoXPathTree"+>Text.XML.HXT.XPath.XPathToString</A+>, Text.XML.HXT.XPath</TD+></TR+><TR+><TD CLASS="indexentry"+>toXValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AtoXValue"+>Text.XML.HXT.XPath.XPathFct</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>trace</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Atrace"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3Atrace"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>traceCmd</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AtraceCmd"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>traceDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AtraceDoc"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>traceF</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AtraceF"+>Text.XML.HXT.Parser.XmlOutput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>traceMsg</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AtraceMsg"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AtraceMsg"+>Text.XML.HXT.Parser.XmlOutput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>traceSource</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AtraceSource"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AtraceSource"+>Text.XML.HXT.Parser.XmlOutput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>traceState</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AtraceState"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AtraceState"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>traceString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AtraceString"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>traceTree</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AtraceTree"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AtraceTree"+>Text.XML.HXT.Parser.XmlOutput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>trans</TD+><TD CLASS="indexlinks"+><A HREF="Control-Monad-MonadStateIO.html#v%3Atrans"+>Control.Monad.MonadStateIO</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>transfAllCdata</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AtransfAllCdata"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtransfAllCdata"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>transfAllCdataEscaped</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtransfAllCdataEscaped"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>transfAllCharRef</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AtransfAllCharRef"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtransfAllCharRef"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>transfCdata</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AtransfCdata"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtransfCdata"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>transfCdataEscaped</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtransfCdataEscaped"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>transfCharRef</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AtransfCharRef"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtransfCharRef"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>transferDefaultURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferDefaultURI"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>transferEncoding</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferEncoding"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>transferMessage</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferMessage"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>transferMimeType</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferMimeType"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>transferPrefix</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferPrefix"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>transferProtocol</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferProtocol"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>transferStatus</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferStatus"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>transferURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferURI"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>transferVersion</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferVersion"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>transform</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-DocTransformation.html#v%3Atransform"+>Text.XML.HXT.Validator.DocTransformation</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-ValidationFilter.html#v%3Atransform"+>Text.XML.HXT.Validator.ValidationFilter</A+>, Text.XML.HXT.Validator.Validation, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>transformDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AtransformDoc"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>trcState</TD+><TD CLASS="indexlinks"+><A HREF="Control-Monad-MonadStateIO.html#v%3AtrcState"+>Control.Monad.MonadStateIO</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>treeRepOfXmlDoc</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AtreeRepOfXmlDoc"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtreeRepOfXmlDoc"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>tryFetchAttribute</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AtryFetchAttribute"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>txt</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Atxt"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Atxt"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/doc-index-U.html view
@@ -0,0 +1,526 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The complete API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (U)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>UString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>UTF8Char</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8Char"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>UTF8String</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Unary</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AUnary"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Unicode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Union</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AUnion"+>Text.XML.HXT.XPath.XPathDataTypes</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>Uri</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>UriMapping</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>UsedAttribSets</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AUsedAttribSets"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AUsedAttribSets"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>ucs2</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aucs2"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>ucs2BigEndianToUnicode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Aucs2BigEndianToUnicode"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>ucs2LittleEndianToUnicode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Aucs2LittleEndianToUnicode"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>ucs2ToUnicode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Aucs2ToUnicode"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>unicodeCharToUtf8</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeCharToUtf8"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>unicodeRemoveNoneAscii</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeRemoveNoneAscii"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>unicodeRemoveNoneLatin1</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeRemoveNoneLatin1"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>unicodeString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AunicodeString"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>unicodeToLatin1</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToLatin1"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>unicodeToUtf8</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToUtf8"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>unicodeToXmlEntity</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToXmlEntity"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>unionExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AunionExpr"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>uniqueNamespaces</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AuniqueNamespaces"+>Text.XML.HXT.Arrow.Namespace</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>uniqueNamespacesFromDeclAndQNames</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AuniqueNamespacesFromDeclAndQNames"+>Text.XML.HXT.Arrow.Namespace</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>universalName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AuniversalName"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>universalNameOf</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AuniversalNameOf"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>universalUri</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AuniversalUri"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>unparseXmlDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AunparseXmlDoc"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>unsetParam</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AunsetParam"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>unzipTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AunzipTree"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>upNT</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3AupNT"+>Data.NavTree</A+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>uriMap2Attrs</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AuriMap2Attrs"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>usAscii</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AusAscii"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>userState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AuserState"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>utf16</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf16"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>utf16be</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf16be"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>utf16beToUnicode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Autf16beToUnicode"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>utf16le</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf16le"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>utf16leToUnicode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Autf16leToUnicode"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>utf8</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf8"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>utf8ToUnicode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Autf8ToUnicode"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>utf8ToUnicodeChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Autf8ToUnicodeChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>utf8WithByteMarkToUnicode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Autf8WithByteMarkToUnicode"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/doc-index-V.html view
@@ -0,0 +1,580 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The complete API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (V)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>Value</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AValue"+>Text.XML.HXT.RelaxNG.DataTypes</A+>, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>VarExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AVarExpr"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>VarName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarName"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>VarTab</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarTab"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Variable</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>v_0</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_0"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>v_1</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_1"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>v_any</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_any"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>v_children</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_children"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>v_choice</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_choice"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>v_empty</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_empty"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>v_mixed</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_mixed"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>v_no</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_no"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>v_null</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_null"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>v_option</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_option"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>v_pcdata</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_pcdata"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>v_plus</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_plus"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>v_seq</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_seq"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>v_star</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_star"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>v_yes</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_yes"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>validate</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3Avalidate"+>Text.XML.HXT.RelaxNG.Validator</A+>, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-ValidationFilter.html#v%3Avalidate"+>Text.XML.HXT.Validator.ValidationFilter</A+>, Text.XML.HXT.Validator.Validation, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>validate1Namespaces</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3Avalidate1Namespaces"+>Text.XML.HXT.DOM.NamespaceFilter</A+>, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>validateDTD</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-DTDValidation.html#v%3AvalidateDTD"+>Text.XML.HXT.Validator.DTDValidation</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-ValidationFilter.html#v%3AvalidateDTD"+>Text.XML.HXT.Validator.ValidationFilter</A+>, Text.XML.HXT.Validator.Validation, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>validateDoc</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AvalidateDoc"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-DocValidation.html#v%3AvalidateDoc"+>Text.XML.HXT.Validator.DocValidation</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>3 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-ValidationFilter.html#v%3AvalidateDoc"+>Text.XML.HXT.Validator.ValidationFilter</A+>, Text.XML.HXT.Validator.Validation, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>validateDocWithRelax</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Validation.html#v%3AvalidateDocWithRelax"+>Text.XML.HXT.RelaxNG.Validation</A+>, Text.XML.HXT.RelaxNG.Validator, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>validateDocument</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ProcessDocument.html#v%3AvalidateDocument"+>Text.XML.HXT.Arrow.ProcessDocument</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>validateDocumentWithRelax</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateDocumentWithRelax"+>Text.XML.HXT.RelaxNG.Validator</A+>, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>validateDocumentWithRelaxSchema</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateDocumentWithRelaxSchema"+>Text.XML.HXT.RelaxNG.Validator</A+>, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>validateIds</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-IdValidation.html#v%3AvalidateIds"+>Text.XML.HXT.Validator.IdValidation</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>validateNamespaces</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3AvalidateNamespaces"+>Text.XML.HXT.DOM.NamespaceFilter</A+>, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AvalidateNamespaces"+>Text.XML.HXT.Arrow.Namespace</A+>, <A HREF="Text-XML-HXT-Arrow.html#v%3AvalidateNamespaces"+>Text.XML.HXT.Arrow</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>validateRelax</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Validation.html#v%3AvalidateRelax"+>Text.XML.HXT.RelaxNG.Validation</A+>, Text.XML.HXT.RelaxNG.Validator, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>validateSchema</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateSchema"+>Text.XML.HXT.RelaxNG.Validator</A+>, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>validateSchemaWithSpezification</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateSchemaWithSpezification"+>Text.XML.HXT.RelaxNG.Validator</A+>, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>validateWithRelaxAndHandleErrors</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Validation.html#v%3AvalidateWithRelaxAndHandleErrors"+>Text.XML.HXT.RelaxNG.Validation</A+>, Text.XML.HXT.RelaxNG.Validator, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>validateWithSpezification</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateWithSpezification"+>Text.XML.HXT.RelaxNG.Validator</A+>, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>validateWithoutSpezification</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateWithoutSpezification"+>Text.XML.HXT.RelaxNG.Validator</A+>, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>validateXMLDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Validation.html#v%3AvalidateXMLDoc"+>Text.XML.HXT.RelaxNG.Validation</A+>, Text.XML.HXT.RelaxNG.Validator, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>valueOf</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AvalueOf"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>valueOfDTD</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AvalueOfDTD"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>varEnv</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AvarEnv"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>versionInfo</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AversionInfo"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>versionNum</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AversionNum"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>versionOptions</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AversionOptions"+>Text.XML.HXT.DOM.XmlOptions</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/doc-index-W.html view
@@ -0,0 +1,362 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The complete API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (W)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>When</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AWhen"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>WhenPart</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AWhenPart"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>w3cDatatypeLib</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibW3C.html#v%3Aw3cDatatypeLib"+>Text.XML.HXT.RelaxNG.DataTypeLibW3C</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>w3cNS</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibW3C.html#v%3Aw3cNS"+>Text.XML.HXT.RelaxNG.DataTypeLibW3C</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>warn</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Awarn"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Awarn"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>when</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3Awhen"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3Awhen"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>whenM</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenM"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>whenNot</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3AwhenNot"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNot"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>whenNotM</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNotM"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>whenNotP</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3AwhenNotP"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>whenP</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3AwhenP"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>withDefault</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3AwithDefault"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>withExtendedUserState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AwithExtendedUserState"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>withOtherUserState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AwithOtherUserState"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>withTraceLevel</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AwithTraceLevel"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>writeDocument</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-WriteDocument.html#v%3AwriteDocument"+>Text.XML.HXT.Arrow.WriteDocument</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AwriteDocument"+>Text.XML.HXT.Parser.MainFunctions</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>writeDocumentToString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-WriteDocument.html#v%3AwriteDocumentToString"+>Text.XML.HXT.Arrow.WriteDocument</A+>, Text.XML.HXT.Arrow</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/doc-index-X.html view
@@ -0,0 +1,1418 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The complete API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (X)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>XAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXAttr"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>XCdata</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXCdata"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>XCharRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXCharRef"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>XCmt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXCmt"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>XDTD</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXDTD"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>XEntityRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXEntityRef"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>XError</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXError"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>XFct</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"+>Text.XML.HXT.XPath.XPathFct</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>XIOState</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOState"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AXIOState"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>XIOSys</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AXIOSys"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>XIOSysState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>XNS</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXNS"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>XNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>XPCommentNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPCommentNode"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>XPNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPNode"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>XPNumber</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>XPPINode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPPINode"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>XPTextNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPTextNode"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>XPVBool</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPVBool"+>Text.XML.HXT.XPath.XPathDataTypes</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>XPVError</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPVError"+>Text.XML.HXT.XPath.XPathDataTypes</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>XPVNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPVNode"+>Text.XML.HXT.XPath.XPathDataTypes</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>XPVNumber</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPVNumber"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>XPVString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPVString"+>Text.XML.HXT.XPath.XPathDataTypes</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>XPathFilter</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>XPathNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathNode"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>XPathParams</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Application.html#t%3AXPathParams"+>Text.XML.HXT.XSLT.Application</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>XPathValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>Text.XML.HXT.XPath.XPathDataTypes</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>XPi</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXPi"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>XState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>XStep</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXStep"+>Text.XML.HXT.XPath.XPathDataTypes</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>XTag</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXTag"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>XText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXText"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>XmlFilter</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>Text.XML.HXT.DOM.XmlTreeTypes</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>XmlNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>XmlNodeSet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>XmlSFilter</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlSFilter"+>Text.XML.HXT.DOM.XmlTreeTypes</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>XmlState</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlState"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AXmlState"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>XmlStateFilter</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>XmlTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>XmlTrees</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xMLDecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AxMLDecl"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>xMLDecl'</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AxMLDecl%27"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>xPValue2NodeSet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathToNodeSet.html#v%3AxPValue2NodeSet"+>Text.XML.HXT.XPath.XPathToNodeSet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xPValue2String</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathToString.html#v%3AxPValue2String"+>Text.XML.HXT.XPath.XPathToString</A+>, Text.XML.HXT.XPath</TD+></TR+><TR+><TD CLASS="indexentry"+>xPValue2XmlTrees</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathToString.html#v%3AxPValue2XmlTrees"+>Text.XML.HXT.XPath.XPathToString</A+>, Text.XML.HXT.XPath, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>xPathAdd</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathArithmetic.html#v%3AxPathAdd"+>Text.XML.HXT.XPath.XPathArithmetic</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xPathDiv</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathArithmetic.html#v%3AxPathDiv"+>Text.XML.HXT.XPath.XPathArithmetic</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xPathMod</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathArithmetic.html#v%3AxPathMod"+>Text.XML.HXT.XPath.XPathArithmetic</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xPathMulti</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathArithmetic.html#v%3AxPathMulti"+>Text.XML.HXT.XPath.XPathArithmetic</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xPathUnary</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathArithmetic.html#v%3AxPathUnary"+>Text.XML.HXT.XPath.XPathArithmetic</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xattr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axattr"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>xboolean</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3Axboolean"+>Text.XML.HXT.XPath.XPathFct</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xcmt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axcmt"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>xerr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axerr"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>xhtmlEntities</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AxhtmlEntities"+>Text.XML.HXT.Parser.HtmlParsec</A+>, Text.XML.HXT.Parser.HtmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>xio_attrList</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_attrList"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xio_baseURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_baseURI"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xio_defaultBaseURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_defaultBaseURI"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xio_errorModule</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_errorModule"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xio_errorMsgCollect</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_errorMsgCollect"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xio_errorMsgHandler</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_errorMsgHandler"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xio_errorMsgList</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_errorMsgList"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xio_errorStatus</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_errorStatus"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xio_sysState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_sysState"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xio_trace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_trace"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xio_userState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_userState"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xmlChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlCharParser.html#v%3AxmlChar"+>Text.XML.HXT.Parser.XmlCharParser</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xmlContentModelToString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AxmlContentModelToString"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>xmlEntities</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AxmlEntities"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>xmlLetter</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlCharParser.html#v%3AxmlLetter"+>Text.XML.HXT.Parser.XmlCharParser</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xmlNCNameChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlCharParser.html#v%3AxmlNCNameChar"+>Text.XML.HXT.Parser.XmlCharParser</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xmlNCNameStartChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlCharParser.html#v%3AxmlNCNameStartChar"+>Text.XML.HXT.Parser.XmlCharParser</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xmlNameChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlCharParser.html#v%3AxmlNameChar"+>Text.XML.HXT.Parser.XmlCharParser</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xmlNameStartChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlCharParser.html#v%3AxmlNameStartChar"+>Text.XML.HXT.Parser.XmlCharParser</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xmlNamespace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AxmlNamespace"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xmlSpace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxmlSpace"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xmlSpaceChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlCharParser.html#v%3AxmlSpaceChar"+>Text.XML.HXT.Parser.XmlCharParser</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xmlTreeToPatternFormatedString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-PatternToString.html#v%3AxmlTreeToPatternFormatedString"+>Text.XML.HXT.RelaxNG.PatternToString</A+>, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>xmlTreeToPatternString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-PatternToString.html#v%3AxmlTreeToPatternString"+>Text.XML.HXT.RelaxNG.PatternToString</A+>, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>xmlTreeToPatternStringTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-PatternToString.html#v%3AxmlTreeToPatternStringTree"+>Text.XML.HXT.RelaxNG.PatternToString</A+>, Text.XML.HXT.RelaxNG</TD+></TR+><TR+><TD CLASS="indexentry"+>xmlTreesToString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AxmlTreesToString"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>xmlTreesToText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AxmlTreesToText"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>xmlnsNamespace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AxmlnsNamespace"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xmlnsQN</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AxmlnsQN"+>Text.XML.HXT.DOM.NamespacePredicates</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xnumber</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3Axnumber"+>Text.XML.HXT.XPath.XPathFct</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>xread</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3Axread"+>Text.XML.HXT.Arrow.ReadDocument</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Axread"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>xshow</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Axshow"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axshow"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>xsltApplyImports</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltApplyImports"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltApplyStylesheet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-XsltArrows.html#v%3AxsltApplyStylesheet"+>Text.XML.HXT.XSLT.XsltArrows</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xsltApplyStylesheetFromURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-XsltArrows.html#v%3AxsltApplyStylesheetFromURI"+>Text.XML.HXT.XSLT.XsltArrows</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xsltApplyTemplates</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltApplyTemplates"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltAttribute</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltAttribute"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltAttributeSet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltAttributeSet"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltCallTemplate</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltCallTemplate"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltChoose</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltChoose"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltComment</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltComment"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltCompileStylesheet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-XsltArrows.html#v%3AxsltCompileStylesheet"+>Text.XML.HXT.XSLT.XsltArrows</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xsltCompileStylesheetFromURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-XsltArrows.html#v%3AxsltCompileStylesheetFromURI"+>Text.XML.HXT.XSLT.XsltArrows</A+>, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xsltCopy</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltCopy"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltCopyOf</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltCopyOf"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltDataType</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltDataType"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltElement</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltElement"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltElements</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltElements"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltExlcudeResultPrefixes</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltExlcudeResultPrefixes"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltExlcudeResultPrefixesLRE</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltExlcudeResultPrefixesLRE"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltExtensionElementPrefixes</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltExtensionElementPrefixes"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltExtensionElementPrefixesLRE</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltExtensionElementPrefixesLRE"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltForEach</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltForEach"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltHRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltHRef"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltIf</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltIf"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltImport</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltImport"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltInclude</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltInclude"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltMatch</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltMatch"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltMessage</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltMessage"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltMode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltMode"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltName"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltNamespace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltNamespace"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltNamespaceAlias</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltNamespaceAlias"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltOrder</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltOrder"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltOtherwise</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltOtherwise"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltParam</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltParam"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltPrefix</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltPrefix"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltPreserveSpace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltPreserveSpace"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltPriority</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltPriority"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltProcInstr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltProcInstr"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltResultPrefix</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltResultPrefix"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltSelect</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltSelect"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltSort</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltSort"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltStripSpace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltStripSpace"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltStylesheet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltStylesheet"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltStylesheetPrefix</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltStylesheetPrefix"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltTemplate</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltTemplate"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltTerminate</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltTerminate"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltTest</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltTest"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltText"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltTransform</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltTransform"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltUri</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltUri"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltUseAttributeSets</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltUseAttributeSets"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltUseAttributeSetsLRE</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltUseAttributeSetsLRE"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltValueOf</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltValueOf"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltVariable</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltVariable"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltVersion</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltVersion"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltVersionLRE</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltVersionLRE"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltWhen</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltWhen"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltWithParam</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltWithParam"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xstring</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3Axstring"+>Text.XML.HXT.XPath.XPathFct</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xtag</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axtag"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>xtext</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axtext"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>xwarn</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axwarn"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/doc-index-Z.html view
@@ -0,0 +1,194 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The complete API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (Z)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>zipTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AzipTree"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>zipTreeWith</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AzipTreeWith"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/doc-index.html view
@@ -0,0 +1,172 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The complete API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/haddock.css view
@@ -0,0 +1,235 @@+/* -------- Global things --------- */++BODY { +  background-color: #ffffff;+  color: #000000;+  font-family: sans-serif;+  } ++A:link    { color: #0000e0; text-decoration: none }+A:visited { color: #0000a0; text-decoration: none }+A:hover   { background-color: #e0e0ff; text-decoration: none }++TABLE.vanilla {+  width: 100%;+  border-width: 0px;+  /* I can't seem to specify cellspacing or cellpadding properly using CSS... */+}++TABLE.vanilla2 {+  border-width: 0px;+}++/* <TT> font is a little too small in MSIE */+TT  { font-size: 100%; }+PRE { font-size: 100%; }++LI P { margin: 0pt } ++TD {+  border-width: 0px;+}++TABLE.narrow {+  border-width: 0px;+}++TD.s8  {  height: 8px;  }+TD.s15 {  height: 15px; }++SPAN.keyword { text-decoration: underline; }++/* Resize the buttom image to match the text size */+IMG.coll { width : 0.75em; height: 0.75em; margin-bottom: 0; margin-right: 0.5em }++/* --------- Contents page ---------- */++DIV.node {+  padding-left: 3em;+}++DIV.cnode {+  padding-left: 1.75em;+}++SPAN.pkg {+  position: absolute;+  left: 50em;+}++/* --------- Documentation elements ---------- */++TD.children {+  padding-left: 25px;+  }++TD.synopsis {+  padding: 2px;+  background-color: #f0f0f0;+  font-family: monospace+ }++TD.decl { +  padding: 2px;+  background-color: #f0f0f0; +  font-family: monospace;+  vertical-align: top;+  }++/* +  arg is just like decl, except that wrapping is not allowed.  It is+  used for function and constructor arguments which have a text box+  to the right, where if wrapping is allowed the text box squashes up+  the declaration by wrapping it.+*/+TD.arg { +  padding: 2px;+  background-color: #f0f0f0; +  font-family: monospace;+  vertical-align: top;+  white-space: nowrap;+  }++TD.recfield { padding-left: 20px }++TD.doc  { +  padding-top: 2px;+  padding-left: 10px;+  }++TD.ndoc  { +  padding: 2px;+  }++TD.rdoc  { +  padding: 2px;+  padding-left: 10px;+  width: 100%;+  }++TD.body  { +  padding-left: 10px+  }++TD.pkg {+  width: 100%;+  padding-left: 10px+}++TD.indexentry {+  vertical-align: top;+  padding-right: 10px+  }++TD.indexannot {+  vertical-align: top;+  padding-left: 20px;+  white-space: nowrap+  }++TD.indexlinks {+  width: 100%+  }++/* ------- Section Headings ------- */++TD.section1 {+  padding-top: 15px;+  font-weight: bold;+  font-size: 150%+  }++TD.section2 {+  padding-top: 10px;+  font-weight: bold;+  font-size: 130%+  }++TD.section3 {+  padding-top: 5px;+  font-weight: bold;+  font-size: 110%+  }++TD.section4 {+  font-weight: bold;+  font-size: 100%+  }++/* -------------- The title bar at the top of the page */++TD.infohead {+  color: #ffffff;+  font-weight: bold;+  padding-right: 10px;+  text-align: left;+}++TD.infoval {+  color: #ffffff;+  padding-right: 10px;+  text-align: left;+}++TD.topbar {+  background-color: #000099;+  padding: 5px;+}++TD.title {+  color: #ffffff;+  padding-left: 10px;+  width: 100%+  }++TD.topbut {+  padding-left: 5px;+  padding-right: 5px;+  border-left-width: 1px;+  border-left-color: #ffffff;+  border-left-style: solid;+  white-space: nowrap;+  }++TD.topbut A:link {+  color: #ffffff+  }++TD.topbut A:visited {+  color: #ffff00+  }++TD.topbut A:hover {+  background-color: #6060ff;+  }++TD.topbut:hover {+  background-color: #6060ff+  }++TD.modulebar { +  background-color: #0077dd;+  padding: 5px;+  border-top-width: 1px;+  border-top-color: #ffffff;+  border-top-style: solid;+  }++/* --------- The page footer --------- */++TD.botbar {+  background-color: #000099;+  color: #ffffff;+  padding: 5px+  }+TD.botbar A:link {+  color: #ffffff;+  text-decoration: underline+  }+TD.botbar A:visited {+  color: #ffff00+  }+TD.botbar A:hover {+  background-color: #6060ff+  }+
+ doc/hdoc/haddock.js view
@@ -0,0 +1,15 @@+// Haddock JavaScript utilities+function toggle(button,id)+{+   var n = document.getElementById(id).style;+   if (n.display == "none")+   {+	button.src = "minus.gif";+	n.display = "block";+   }+   else+   {+	button.src = "plus.gif";+	n.display = "none";+   }+}
+ doc/hdoc/haskell_icon.gif view

binary file changed (absent → 911 bytes)

+ doc/hdoc/index.html view
@@ -0,0 +1,1443 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The complete API</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The complete API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Modules</TD+></TR+><TR+><TD+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0"+><TR+><TD STYLE="width: 50em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:0')" ALT="show/hide"+>Control</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:0" STYLE="display:block;"+><TR+><TD STYLE="width: 48em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:1')" ALT="show/hide"+>Arrow</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:1" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 46em"+><A HREF="Control-Arrow-ArrowIO.html"+>Control.Arrow.ArrowIO</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 46em"+><A HREF="Control-Arrow-ArrowIf.html"+>Control.Arrow.ArrowIf</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 46em"+><A HREF="Control-Arrow-ArrowList.html"+>Control.Arrow.ArrowList</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 46em"+><A HREF="Control-Arrow-ArrowState.html"+>Control.Arrow.ArrowState</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 46em"+><A HREF="Control-Arrow-ArrowStrict.html"+>Control.Arrow.ArrowStrict</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 46em"+><A HREF="Control-Arrow-ArrowTree.html"+>Control.Arrow.ArrowTree</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 46em"+><A HREF="Control-Arrow-IOListArrow.html"+>Control.Arrow.IOListArrow</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 46em"+><A HREF="Control-Arrow-IOStateListArrow.html"+>Control.Arrow.IOStateListArrow</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 46em"+><A HREF="Control-Arrow-ListArrow.html"+>Control.Arrow.ListArrow</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 46em"+><A HREF="Control-Arrow-ListArrows.html"+>Control.Arrow.ListArrows</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 46em"+><A HREF="Control-Arrow-StateListArrow.html"+>Control.Arrow.StateListArrow</A+></TD+><TD+></TD+><TD+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD STYLE="width: 48em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:2')" ALT="show/hide"+>Monad</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:2" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 46em"+><A HREF="Control-Monad-MonadStateIO.html"+>Control.Monad.MonadStateIO</A+></TD+><TD+></TD+><TD+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD STYLE="width: 48em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:3')" ALT="show/hide"+>Strategies</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:3" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 46em"+><A HREF="Control-Strategies-DeepSeq.html"+>Control.Strategies.DeepSeq</A+></TD+><TD+></TD+><TD+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD STYLE="width: 50em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:4')" ALT="show/hide"+>Data</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:4" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 48em"+><A HREF="Data-AssocList.html"+>Data.AssocList</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 48em"+><A HREF="Data-NavTree.html"+>Data.NavTree</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="width: 48em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:5')" ALT="show/hide"+>Tree</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:5" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 46em"+><A HREF="Data-Tree-Class.html"+>Data.Tree.Class</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="width: 46em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:6')" ALT="show/hide"+>NTree</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:6" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 44em"+><A HREF="Data-Tree-NTree-Filter.html"+>Data.Tree.NTree.Filter</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 44em"+><A HREF="Data-Tree-NTree-TypeDefs.html"+>Data.Tree.NTree.TypeDefs</A+></TD+><TD+></TD+><TD+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD STYLE="width: 50em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:7')" ALT="show/hide"+>System</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:7" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 48em"+><A HREF="System-PipeOpen.html"+>System.PipeOpen</A+></TD+><TD+></TD+><TD+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD STYLE="width: 50em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:8')" ALT="show/hide"+>Text</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:8" STYLE="display:block;"+><TR+><TD STYLE="width: 48em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:9')" ALT="show/hide"+>XML</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:9" STYLE="display:block;"+><TR+><TD STYLE="width: 46em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:10')" ALT="show/hide"+>HXT</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:10" STYLE="display:block;"+><TR+><TD STYLE="width: 44em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:11')" ALT="show/hide"+><A HREF="Text-XML-HXT-Arrow.html"+>Text.XML.HXT.Arrow</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:11" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Arrow-DOMInterface.html"+>Text.XML.HXT.Arrow.DOMInterface</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Arrow-DTDProcessing.html"+>Text.XML.HXT.Arrow.DTDProcessing</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Arrow-DocumentInput.html"+>Text.XML.HXT.Arrow.DocumentInput</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Arrow-DocumentOutput.html"+>Text.XML.HXT.Arrow.DocumentOutput</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Arrow-Edit.html"+>Text.XML.HXT.Arrow.Edit</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Arrow-GeneralEntitySubstitution.html"+>Text.XML.HXT.Arrow.GeneralEntitySubstitution</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Arrow-Namespace.html"+>Text.XML.HXT.Arrow.Namespace</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Arrow-ProcessDocument.html"+>Text.XML.HXT.Arrow.ProcessDocument</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html"+>Text.XML.HXT.Arrow.ReadDocument</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Arrow-WriteDocument.html"+>Text.XML.HXT.Arrow.WriteDocument</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html"+>Text.XML.HXT.Arrow.XmlArrow</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html"+>Text.XML.HXT.Arrow.XmlNode</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html"+>Text.XML.HXT.Arrow.XmlNodeSet</A+></TD+><TD+></TD+><TD+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD STYLE="width: 44em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:12')" ALT="show/hide"+><A HREF="Text-XML-HXT-DOM.html"+>Text.XML.HXT.DOM</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:12" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-EditFilters.html"+>Text.XML.HXT.DOM.EditFilters</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-FormatXmlTree.html"+>Text.XML.HXT.DOM.FormatXmlTree</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-Namespace.html"+>Text.XML.HXT.DOM.Namespace</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html"+>Text.XML.HXT.DOM.NamespaceFilter</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html"+>Text.XML.HXT.DOM.NamespacePredicates</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html"+>Text.XML.HXT.DOM.TypeDefs</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-Unicode.html"+>Text.XML.HXT.DOM.Unicode</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-Util.html"+>Text.XML.HXT.DOM.Util</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html"+>Text.XML.HXT.DOM.XmlKeywords</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-XmlOptions.html"+>Text.XML.HXT.DOM.XmlOptions</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-XmlState.html"+>Text.XML.HXT.DOM.XmlState</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-XmlTree.html"+>Text.XML.HXT.DOM.XmlTree</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html"+>Text.XML.HXT.DOM.XmlTreeFilter</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html"+>Text.XML.HXT.DOM.XmlTreeTypes</A+></TD+><TD+></TD+><TD+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD STYLE="width: 44em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:13')" ALT="show/hide"+>IO</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:13" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-IO-GetFILE.html"+>Text.XML.HXT.IO.GetFILE</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-IO-GetHTTPCurl.html"+>Text.XML.HXT.IO.GetHTTPCurl</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-IO-GetHTTPNative.html"+>Text.XML.HXT.IO.GetHTTPNative</A+></TD+><TD+></TD+><TD+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD STYLE="width: 44em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:14')" ALT="show/hide"+><A HREF="Text-XML-HXT-Parser.html"+>Text.XML.HXT.Parser</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:14" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-DTDProcessing.html"+>Text.XML.HXT.Parser.DTDProcessing</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-DefaultURI.html"+>Text.XML.HXT.Parser.DefaultURI</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-HtmlParsec.html"+>Text.XML.HXT.Parser.HtmlParsec</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-HtmlParser.html"+>Text.XML.HXT.Parser.HtmlParser</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-MainFunctions.html"+>Text.XML.HXT.Parser.MainFunctions</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-ProtocolHandler.html"+>Text.XML.HXT.Parser.ProtocolHandler</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-ProtocolHandlerFile.html"+>Text.XML.HXT.Parser.ProtocolHandlerFile</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html"+>Text.XML.HXT.Parser.ProtocolHandlerHttpCurl</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html"+>Text.XML.HXT.Parser.ProtocolHandlerHttpNative</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html"+>Text.XML.HXT.Parser.ProtocolHandlerHttpNativeOrCurl</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-ProtocolHandlerUtil.html"+>Text.XML.HXT.Parser.ProtocolHandlerUtil</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-XmlCharParser.html"+>Text.XML.HXT.Parser.XmlCharParser</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html"+>Text.XML.HXT.Parser.XmlDTDParser</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html"+>Text.XML.HXT.Parser.XmlDTDTokenParser</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-XmlInput.html"+>Text.XML.HXT.Parser.XmlInput</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-XmlOutput.html"+>Text.XML.HXT.Parser.XmlOutput</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html"+>Text.XML.HXT.Parser.XmlParsec</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-XmlParser.html"+>Text.XML.HXT.Parser.XmlParser</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html"+>Text.XML.HXT.Parser.XmlTokenParser</A+></TD+><TD+></TD+><TD+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD STYLE="width: 44em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:15')" ALT="show/hide"+><A HREF="Text-XML-HXT-RelaxNG.html"+>Text.XML.HXT.RelaxNG</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:15" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-RelaxNG-CreatePattern.html"+>Text.XML.HXT.RelaxNG.CreatePattern</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibMysql.html"+>Text.XML.HXT.RelaxNG.DataTypeLibMysql</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html"+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibW3C.html"+>Text.XML.HXT.RelaxNG.DataTypeLibW3C</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibraries.html"+>Text.XML.HXT.RelaxNG.DataTypeLibraries</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html"+>Text.XML.HXT.RelaxNG.DataTypes</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-RelaxNG-PatternFunctions.html"+>Text.XML.HXT.RelaxNG.PatternFunctions</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-RelaxNG-PatternToString.html"+>Text.XML.HXT.RelaxNG.PatternToString</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-RelaxNG-Schema.html"+>Text.XML.HXT.RelaxNG.Schema</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-RelaxNG-SchemaGrammar.html"+>Text.XML.HXT.RelaxNG.SchemaGrammar</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-RelaxNG-Simplification.html"+>Text.XML.HXT.RelaxNG.Simplification</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-RelaxNG-Utils.html"+>Text.XML.HXT.RelaxNG.Utils</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-RelaxNG-Validation.html"+>Text.XML.HXT.RelaxNG.Validation</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-RelaxNG-Validator.html"+>Text.XML.HXT.RelaxNG.Validator</A+></TD+><TD+></TD+><TD+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD STYLE="width: 44em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:16')" ALT="show/hide"+>Validator</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:16" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Validator-AttributeValueValidation.html"+>Text.XML.HXT.Validator.AttributeValueValidation</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Validator-DTDValidation.html"+>Text.XML.HXT.Validator.DTDValidation</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Validator-DocTransformation.html"+>Text.XML.HXT.Validator.DocTransformation</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Validator-DocValidation.html"+>Text.XML.HXT.Validator.DocValidation</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Validator-IdValidation.html"+>Text.XML.HXT.Validator.IdValidation</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Validator-RE.html"+>Text.XML.HXT.Validator.RE</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Validator-Validation.html"+>Text.XML.HXT.Validator.Validation</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Validator-ValidationFilter.html"+>Text.XML.HXT.Validator.ValidationFilter</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Validator-XmlRE.html"+>Text.XML.HXT.Validator.XmlRE</A+></TD+><TD+></TD+><TD+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD STYLE="width: 44em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:17')" ALT="show/hide"+><A HREF="Text-XML-HXT-XPath.html"+>Text.XML.HXT.XPath</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:17" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-XPath-NavTree.html"+>Text.XML.HXT.XPath.NavTree</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-XPath-XPathArithmetic.html"+>Text.XML.HXT.XPath.XPathArithmetic</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-XPath-XPathEval.html"+>Text.XML.HXT.XPath.XPathEval</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-XPath-XPathFct.html"+>Text.XML.HXT.XPath.XPathFct</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-XPath-XPathParser.html"+>Text.XML.HXT.XPath.XPathParser</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-XPath-XPathToNodeSet.html"+>Text.XML.HXT.XPath.XPathToNodeSet</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-XPath-XPathToString.html"+>Text.XML.HXT.XPath.XPathToString</A+></TD+><TD+></TD+><TD+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD STYLE="width: 44em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:18')" ALT="show/hide"+>XSLT</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:18" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-XSLT-Application.html"+>Text.XML.HXT.XSLT.Application</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-XSLT-Common.html"+>Text.XML.HXT.XSLT.Common</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-XSLT-Compilation.html"+>Text.XML.HXT.XSLT.Compilation</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-XSLT-Names.html"+>Text.XML.HXT.XSLT.Names</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-XSLT-XsltArrows.html"+>Text.XML.HXT.XSLT.XsltArrows</A+></TD+><TD+></TD+><TD+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc/minus.gif view

binary file changed (absent → 56 bytes)

+ doc/hdoc/plus.gif view

binary file changed (absent → 59 bytes)

+ doc/hdoc_arrow/Control-Arrow-ArrowIO.html view
@@ -0,0 +1,482 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Control.Arrow.ArrowIO</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowIO.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Control.Arrow.ArrowIO</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: ArrowIO.hs,v 1.6 2005<EM+>09</EM+>02 17:09:39 hxml Exp $+</P+><P+>Lifting of IO actions to arrows+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> Arrow a =&gt; <A HREF="#t%3AArrowIO"+>ArrowIO</A+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AarrIO"+>arrIO</A+> :: (b -&gt; IO c) -&gt; a b c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AarrIO0"+>arrIO0</A+> :: IO c -&gt; a b c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AarrIO2"+>arrIO2</A+> :: (b1 -&gt; b2 -&gt; IO c) -&gt; a (b1, b2) c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AarrIO3"+>arrIO3</A+> :: (b1 -&gt; b2 -&gt; b3 -&gt; IO c) -&gt; a (b1, (b2, b3)) c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AarrIO4"+>arrIO4</A+> :: (b1 -&gt; b2 -&gt; b3 -&gt; b4 -&gt; IO c) -&gt; a (b1, (b2, (b3, b4))) c</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> (Arrow a, <A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIO"+>ArrowIO</A+> a) =&gt; <A HREF="#t%3AArrowIOIf"+>ArrowIOIf</A+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AisIOA"+>isIOA</A+> :: (b -&gt; IO Bool) -&gt; a b b</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> Arrow a =&gt; <A NAME="t%3AArrowIO"+></A+><B+>ArrowIO</B+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>the interface for converting an IO action into an arrow+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+>Methods</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A NAME="v%3AarrIO"+></A+><B+>arrIO</B+> :: (b -&gt; IO c) -&gt; a b c</TD+></TR+><TR+><TD CLASS="doc"+>construct an arrow from an IO action+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AarrIO0"+></A+><B+>arrIO0</B+> :: IO c -&gt; a b c</TD+></TR+><TR+><TD CLASS="doc"+>construct an arrow from an IO action without any parameter+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AarrIO2"+></A+><B+>arrIO2</B+> :: (b1 -&gt; b2 -&gt; IO c) -&gt; a (b1, b2) c</TD+></TR+><TR+><TD CLASS="doc"+>construction of a 2 argument arrow from a binary IO action+ |+ | example: <TT+> a1 &amp;&amp;&amp; a2 &gt;&gt;&gt; arr2 f </TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AarrIO3"+></A+><B+>arrIO3</B+> :: (b1 -&gt; b2 -&gt; b3 -&gt; IO c) -&gt; a (b1, (b2, b3)) c</TD+></TR+><TR+><TD CLASS="doc"+>construction of a 3 argument arrow from a 3-ary IO action+ |+ | example: <TT+> a1 &amp;&amp;&amp; a2 &amp;&amp;&amp; a3 &gt;&gt;&gt; arr3 f </TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AarrIO4"+></A+><B+>arrIO4</B+> :: (b1 -&gt; b2 -&gt; b3 -&gt; b4 -&gt; IO c) -&gt; a (b1, (b2, (b3, b4))) c</TD+></TR+><TR+><TD CLASS="doc"+>construction of a 4 argument arrow from a 4-ary IO action+ |+ | example: <TT+> a1 &amp;&amp;&amp; a2 &amp;&amp;&amp; a3 &amp;&amp;&amp; a4 &gt;&gt;&gt; arr4 f </TT+>+</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ArrowIO')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:ArrowIO" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIO"+>ArrowIO</A+> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIO"+>ArrowIO</A+> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> (Arrow a, <A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIO"+>ArrowIO</A+> a) =&gt; <A NAME="t%3AArrowIOIf"+></A+><B+>ArrowIOIf</B+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>the interface for converting an IO predicate into a list arrow+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+>Methods</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A NAME="v%3AisIOA"+></A+><B+>isIOA</B+> :: (b -&gt; IO Bool) -&gt; a b b</TD+></TR+><TR+><TD CLASS="doc"+><P+>builds an arrow from an IO predicate+</P+><P+>if the predicate holds, the single list containing the input is returned, else the empty list,+ similar to <TT+><A HREF="Control-Arrow-ArrowList.html#v%3AisA"+>isA</A+></TT+>+</P+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ArrowIOIf')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:ArrowIOIf" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIOIf"+>ArrowIOIf</A+> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIOIf"+>ArrowIOIf</A+> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Control-Arrow-ArrowIf.html view
@@ -0,0 +1,782 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Control.Arrow.ArrowIf</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowIf.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Control.Arrow.ArrowIf</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: ArrowIf.hs,v 1.8 2006<EM+>05</EM+>04 14:17:53 hxml Exp $+</P+><P+>Conditionals for List Arrows+</P+><P+>This module defines conditional combinators for list arrows.+</P+><P+>The empty list as result represents False, none empty lists True.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; <A HREF="#t%3AArrowIf"+>ArrowIf</A+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AifA"+>ifA</A+> :: a b c -&gt; a b d -&gt; a b d -&gt; a b d</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AifP"+>ifP</A+> :: (b -&gt; Bool) -&gt; a b d -&gt; a b d -&gt; a b d</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aneg"+>neg</A+> :: a b c -&gt; a b b</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Awhen"+>when</A+> :: a b b -&gt; a b c -&gt; a b b</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AwhenP"+>whenP</A+> :: a b b -&gt; (b -&gt; Bool) -&gt; a b b</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AwhenNot"+>whenNot</A+> :: a b b -&gt; a b c -&gt; a b b</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AwhenNotP"+>whenNotP</A+> :: a b b -&gt; (b -&gt; Bool) -&gt; a b b</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aguards"+>guards</A+> :: a b c -&gt; a b d -&gt; a b d</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AguardsP"+>guardsP</A+> :: (b -&gt; Bool) -&gt; a b d -&gt; a b d</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Acontaining"+>containing</A+> :: a b c -&gt; a c d -&gt; a b c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnotContaining"+>notContaining</A+> :: a b c -&gt; a c d -&gt; a b c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AorElse"+>orElse</A+> :: a b c -&gt; a b c -&gt; a b c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchoiceA"+>choiceA</A+> :: [<A HREF="Control-Arrow-ArrowIf.html#t%3AIfThen"+>IfThen</A+> (a b c) (a b d)] -&gt; a b d</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtagA"+>tagA</A+> :: a b c -&gt; a b (Either b b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AspanA"+>spanA</A+> :: a b b -&gt; a [b] ([b], [b])</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ApartitionA"+>partitionA</A+> :: a b b -&gt; a [b] ([b], [b])</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AIfThen"+>IfThen</A+> a b = <A HREF="#v%3A%3A-%3E"+>(:-&gt;)</A+> a b</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; <A NAME="t%3AArrowIf"+></A+><B+>ArrowIf</B+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+><P+>The interface for arrows as conditionals.+</P+><P+>Requires list arrows because False is represented as empty list, True as none empty lists.+</P+><P+>Only <TT+><A HREF="Control-Arrow-ArrowIf.html#v%3AifA"+>ifA</A+></TT+> and <TT+><A HREF="Control-Arrow-ArrowIf.html#v%3AorElse"+>orElse</A+></TT+> don't have default implementations+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+>Methods</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A NAME="v%3AifA"+></A+><B+>ifA</B+> :: a b c -&gt; a b d -&gt; a b d -&gt; a b d</TD+></TR+><TR+><TD CLASS="doc"+>if lifted to arrows+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AifP"+></A+><B+>ifP</B+> :: (b -&gt; Bool) -&gt; a b d -&gt; a b d -&gt; a b d</TD+></TR+><TR+><TD CLASS="doc"+>shortcut: <TT+> ifP p = ifA (isA p) </TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aneg"+></A+><B+>neg</B+> :: a b c -&gt; a b b</TD+></TR+><TR+><TD CLASS="doc"+>negation: <TT+> neg f = ifA f none this </TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Awhen"+></A+><B+>when</B+> :: a b b -&gt; a b c -&gt; a b b</TD+></TR+><TR+><TD CLASS="doc"+><TT+> f `when` g </TT+> : when the predicate g holds, f is applied, else the identity filter this+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AwhenP"+></A+><B+>whenP</B+> :: a b b -&gt; (b -&gt; Bool) -&gt; a b b</TD+></TR+><TR+><TD CLASS="doc"+>shortcut: <TT+> f `whenP` p = f `when` (isA p) </TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AwhenNot"+></A+><B+>whenNot</B+> :: a b b -&gt; a b c -&gt; a b b</TD+></TR+><TR+><TD CLASS="doc"+><TT+> f `whenNot` g </TT+> : when the predicate g does not hold, f is applied, else the identity filter this+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AwhenNotP"+></A+><B+>whenNotP</B+> :: a b b -&gt; (b -&gt; Bool) -&gt; a b b</TD+></TR+><TR+><TD CLASS="doc"+>like <TT+><A HREF="Control-Arrow-ArrowIf.html#v%3AwhenP"+>whenP</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aguards"+></A+><B+>guards</B+> :: a b c -&gt; a b d -&gt; a b d</TD+></TR+><TR+><TD CLASS="doc"+><TT+> g `guards` f </TT+> : when the predicate g holds, f is applied, else none+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AguardsP"+></A+><B+>guardsP</B+> :: (b -&gt; Bool) -&gt; a b d -&gt; a b d</TD+></TR+><TR+><TD CLASS="doc"+>like <TT+><A HREF="Control-Arrow-ArrowIf.html#v%3AwhenP"+>whenP</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Acontaining"+></A+><B+>containing</B+> :: a b c -&gt; a c d -&gt; a b c</TD+></TR+><TR+><TD CLASS="doc"+><P+><TT+> f `containing` g </TT+> : keep only those results from f for which g holds+</P+><P+>definition: <TT+> f `containing` g = f &gt;&gt;&gt; g `guards` this </TT+>+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnotContaining"+></A+><B+>notContaining</B+> :: a b c -&gt; a c d -&gt; a b c</TD+></TR+><TR+><TD CLASS="doc"+><P+><TT+> f `notContaining` g </TT+> : keep only those results from f for which g does not hold+</P+><P+>definition: <TT+> f `notContaining` g = f &gt;&gt;&gt; ifA g none this </TT+>+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AorElse"+></A+><B+>orElse</B+> :: a b c -&gt; a b c -&gt; a b c</TD+></TR+><TR+><TD CLASS="doc"+><TT+> f `orElse` g </TT+> : directional choice: if f succeeds, the result of f is the result, else g is applied+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchoiceA"+></A+><B+>choiceA</B+> :: [<A HREF="Control-Arrow-ArrowIf.html#t%3AIfThen"+>IfThen</A+> (a b c) (a b d)] -&gt; a b d</TD+></TR+><TR+><TD CLASS="doc"+><P+>generalisation of <TT+><A HREF="Control-Arrow-ArrowIf.html#v%3AorElse"+>orElse</A+></TT+> for multi way branches like in case expressions.+</P+><P+>An auxiliary data type <TT+><A HREF="Control-Arrow-ArrowIf.html#t%3AIfThen"+>IfThen</A+></TT+> with an infix constructor ':-&gt;' is used for writing multi way branches+</P+><P+>example: <TT+> choiceA [ p1 :-&gt; e1, p2 :-&gt; e2, this :-&gt; default ] </TT+>+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtagA"+></A+><B+>tagA</B+> :: a b c -&gt; a b (Either b b)</TD+></TR+><TR+><TD CLASS="doc"+>tag a value with Left or Right, if arrow has success, input is tagged with Left, else with Right+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AspanA"+></A+><B+>spanA</B+> :: a b b -&gt; a [b] ([b], [b])</TD+></TR+><TR+><TD CLASS="doc"+><P+>split a list value with an arrow and returns a pair of lists.+ This is the arrow version of span. The arrow is deterministic.+</P+><P+>example: <TT+> runLA (spanA (isA (/= '-'))) &quot;abc-def&quot; </TT+> gives <TT+> [(&quot;abc&quot;,&quot;-def&quot;)] </TT+> as result+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ApartitionA"+></A+><B+>partitionA</B+> :: a b b -&gt; a [b] ([b], [b])</TD+></TR+><TR+><TD CLASS="doc"+><P+>partition a list of values into a pair of lists+</P+><P+>This is the arrow Version of <TT+><A HREF="Data-List.html#v%3Apartition"+>partition</A+></TT+>+</P+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ArrowIf')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:ArrowIf" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"+>ArrowIf</A+> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"+>ArrowIf</A+> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"+>ArrowIf</A+> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"+>ArrowIf</A+> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AIfThen"+></A+><B+>IfThen</B+> a b</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>an auxiliary data type for <TT+><A HREF="Control-Arrow-ArrowIf.html#v%3AchoiceA"+>choiceA</A+></TT+>+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3A%3A-%3E"+></A+><B+>(:-&gt;)</B+> a b</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Control-Arrow-ArrowList.html view
@@ -0,0 +1,1195 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Control.Arrow.ArrowList</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowList.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Control.Arrow.ArrowList</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: ArrowList.hs,v 1.11 2006<EM+>06</EM+>01 12:59:04 hxml Exp $+</P+><P+>The List Arrow Class+</P+><P+>This module defines the interface for list arrows.+</P+><P+>A list arrow is a function, that gives a list of results+for a given argument. A single element result represents a normal function.+An empty list oven indicates, the function is undefined for the given argument.+The empty list may also represent False, none empty lists True.+A list with more than one element gives all results for a nondeterministic function.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> (Arrow a, ArrowPlus a, ArrowZero a, ArrowApply a) =&gt; <A HREF="#t%3AArrowList"+>ArrowList</A+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3Aarr2"+>arr2</A+> :: (b1 -&gt; b2 -&gt; c) -&gt; a (b1, b2) c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aarr3"+>arr3</A+> :: (b1 -&gt; b2 -&gt; b3 -&gt; c) -&gt; a (b1, (b2, b3)) c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aarr4"+>arr4</A+> :: (b1 -&gt; b2 -&gt; b3 -&gt; b4 -&gt; c) -&gt; a (b1, (b2, (b3, b4))) c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aarr2A"+>arr2A</A+> :: (b -&gt; a c d) -&gt; a (b, c) d</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AarrL"+>arrL</A+> :: (b -&gt; [c]) -&gt; a b c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aarr2L"+>arr2L</A+> :: (b -&gt; c -&gt; [d]) -&gt; a (b, c) d</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AconstA"+>constA</A+> :: c -&gt; a b c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AconstL"+>constL</A+> :: [c] -&gt; a b c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisA"+>isA</A+> :: (b -&gt; Bool) -&gt; a b b</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%3E%3E."+>(&gt;&gt;.)</A+> :: a b c -&gt; ([c] -&gt; [d]) -&gt; a b d</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%3E."+>(&gt;.)</A+> :: a b c -&gt; ([c] -&gt; d) -&gt; a b d</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AlistA"+>listA</A+> :: a b c -&gt; a b [c]</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Athis"+>this</A+> :: a b b</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Anone"+>none</A+> :: a b c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AwithDefault"+>withDefault</A+> :: a b c -&gt; c -&gt; a b c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Asingle"+>single</A+> :: a b c -&gt; a b c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AapplyA"+>applyA</A+> :: a b (a b c) -&gt; a b c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%24%3C"+>($&lt;)</A+> :: (c -&gt; a b d) -&gt; a b c -&gt; a b d</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%24%3C%3C"+>($&lt;&lt;)</A+> :: (c1 -&gt; c2 -&gt; a b d) -&gt; a b (c1, c2) -&gt; a b d</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%24%3C%3C%3C"+>($&lt;&lt;&lt;)</A+> :: (c1 -&gt; c2 -&gt; c3 -&gt; a b d) -&gt; a b (c1, (c2, c3)) -&gt; a b d</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%24%3C%3C%3C%3C"+>($&lt;&lt;&lt;&lt;)</A+> :: (c1 -&gt; c2 -&gt; c3 -&gt; c4 -&gt; a b d) -&gt; a b (c1, (c2, (c3, c4))) -&gt; a b d</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%24%3C%24"+>($&lt;$)</A+> :: (c -&gt; a b b) -&gt; a b c -&gt; a b b</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aperform"+>perform</A+> :: a b c -&gt; a b b</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcatA"+>catA</A+> :: [a b c] -&gt; a b c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AseqA"+>seqA</A+> :: [a b b] -&gt; a b b</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> (Arrow a, ArrowPlus a, ArrowZero a, ArrowApply a) =&gt; <A NAME="t%3AArrowList"+></A+><B+>ArrowList</B+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+><P+>The interface for list arrows+</P+><P+>Only mkA, <TT+><A HREF="Control-Arrow-ArrowList.html#v%3Aarr2A"+>arr2A</A+></TT+>, <TT+><A HREF="Control-Arrow-ArrowList.html#v%3AisA"+>isA</A+></TT+> '(&gt;&gt;.)' don't have default implementations+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+>Methods</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A NAME="v%3Aarr2"+></A+><B+>arr2</B+> :: (b1 -&gt; b2 -&gt; c) -&gt; a (b1, b2) c</TD+></TR+><TR+><TD CLASS="doc"+>construction of a 2 argument arrow from a binary function+ |+ | example: <TT+> a1 &amp;&amp;&amp; a2 &gt;&gt;&gt; arr2 f </TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aarr3"+></A+><B+>arr3</B+> :: (b1 -&gt; b2 -&gt; b3 -&gt; c) -&gt; a (b1, (b2, b3)) c</TD+></TR+><TR+><TD CLASS="doc"+>construction of a 3 argument arrow from a 3-ary function+ |+ | example: <TT+> a1 &amp;&amp;&amp; a2 &amp;&amp;&amp; a3 &gt;&gt;&gt; arr3 f </TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aarr4"+></A+><B+>arr4</B+> :: (b1 -&gt; b2 -&gt; b3 -&gt; b4 -&gt; c) -&gt; a (b1, (b2, (b3, b4))) c</TD+></TR+><TR+><TD CLASS="doc"+>construction of a 4 argument arrow from a 4-ary function+ |+ | example: <TT+> a1 &amp;&amp;&amp; a2 &amp;&amp;&amp; a3 &amp;&amp;&amp; a4 &gt;&gt;&gt; arr4 f </TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aarr2A"+></A+><B+>arr2A</B+> :: (b -&gt; a c d) -&gt; a (b, c) d</TD+></TR+><TR+><TD CLASS="doc"+>construction of a 2 argument arrow from a singe argument arrow+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AarrL"+></A+><B+>arrL</B+> :: (b -&gt; [c]) -&gt; a b c</TD+></TR+><TR+><TD CLASS="doc"+>constructor for a list arrow from a function with a list as result+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aarr2L"+></A+><B+>arr2L</B+> :: (b -&gt; c -&gt; [d]) -&gt; a (b, c) d</TD+></TR+><TR+><TD CLASS="doc"+>constructor for a list arrow with 2 arguments+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AconstA"+></A+><B+>constA</B+> :: c -&gt; a b c</TD+></TR+><TR+><TD CLASS="doc"+>constructor for a const arrow: <TT+> constA = arr . const </TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AconstL"+></A+><B+>constL</B+> :: [c] -&gt; a b c</TD+></TR+><TR+><TD CLASS="doc"+>constructor for a const arrow: <TT+> constL = arrL . const </TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisA"+></A+><B+>isA</B+> :: (b -&gt; Bool) -&gt; a b b</TD+></TR+><TR+><TD CLASS="doc"+>builds an arrow from a predicate.+ If the predicate holds, the single list containing the input is returned, else the empty list+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%3E%3E."+></A+><B+>(&gt;&gt;.)</B+> :: a b c -&gt; ([c] -&gt; [d]) -&gt; a b d</TD+></TR+><TR+><TD CLASS="doc"+><P+>combinator for converting the result of a list arrow into another list+</P+><P+>example: <TT+> foo &gt;&gt;. reverse </TT+> reverses the the result of foo+</P+><P+>example: <TT+> foo &gt;&gt;. take 1 </TT+> constructs a deterministic version of foo by deleting all further results+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%3E."+></A+><B+>(&gt;.)</B+> :: a b c -&gt; ([c] -&gt; d) -&gt; a b d</TD+></TR+><TR+><TD CLASS="doc"+>combinator for converting the result of an arrow into a single element result+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AlistA"+></A+><B+>listA</B+> :: a b c -&gt; a b [c]</TD+></TR+><TR+><TD CLASS="doc"+><P+>combinator for converting an arrow into a determinstic version with all results collected in a single element list+</P+><PRE+> listA af = af &gt;&gt;. (:[]) </PRE+><P+>this is useful when the list of results computed by an arrow must be manipulated (e.g. sorted)+</P+><P+>example for sorting the results of a filter+</P+><PRE+> collectAndSort         :: a b c -&gt; a b c++ collectAndSort collect = listA collect &gt;&gt;&gt; arrL sort+</PRE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Athis"+></A+><B+>this</B+> :: a b b</TD+></TR+><TR+><TD CLASS="doc"+>the identity arrow, alias for returnA+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Anone"+></A+><B+>none</B+> :: a b c</TD+></TR+><TR+><TD CLASS="doc"+>the zero arrow, alias for zeroArrow+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AwithDefault"+></A+><B+>withDefault</B+> :: a b c -&gt; c -&gt; a b c</TD+></TR+><TR+><TD CLASS="doc"+><P+>converts an arrow, that may fail, into an arrow that always succeeds+</P+><P+>example: <TT+> withDefault none &quot;abc&quot; </TT+> is equivalent to <TT+> constA &quot;abc&quot; </TT+>+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Asingle"+></A+><B+>single</B+> :: a b c -&gt; a b c</TD+></TR+><TR+><TD CLASS="doc"+><P+>makes a list arrow deterministic, the number of results is at most 1+</P+><P+>definition+</P+><PRE+> single f = f &gt;&gt;. take 1+</PRE+><P+>examples with strings:+</P+><PRE+> runLA ( single none ) &quot;x&quot; == []+ runLA ( single this ) &quot;x&quot; == [&quot;x&quot;]+ runLA ( single+         (constA &quot;y&quot;+          &lt;+&gt; this ) ) &quot;x&quot; == [&quot;y&quot;]+</PRE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AapplyA"+></A+><B+>applyA</B+> :: a b (a b c) -&gt; a b c</TD+></TR+><TR+><TD CLASS="doc"+><P+>compute an arrow from the input and apply the arrow to this input+</P+><P+>definition: <TT+> (f &amp;&amp;&amp; this) &gt;&gt;&gt; app </TT+>+</P+><P+>in a point free style, there is no way to use an argument in 2 places,+ this is a combinator for simulating this. first the argument is used to compute an arrow,+ then this new arrow is applied to the input+</P+><P+>applyA coresponds to: <TT+> apply f x = let g = f x in g x </TT+>+</P+><P+>see also: <TT+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C"+>$&lt;</A+></TT+>, <TT+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C"+>$&lt;&lt;</A+></TT+>, <TT+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C%3C"+>$&lt;&lt;&lt;</A+></TT+>, <TT+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C%3C%3C"+>$&lt;&lt;&lt;&lt;</A+></TT+>, <TT+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%24"+>$&lt;$</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%24%3C"+></A+><B+>($&lt;)</B+> :: (c -&gt; a b d) -&gt; a b c -&gt; a b d</TD+></TR+><TR+><TD CLASS="doc"+><P+>compute the parameter for an arrow with extra parameters from the input+ and apply the arrow for all parameter values to the input+</P+><P+>a kind of &quot;function call&quot; for arrows, useful for joining arrows+</P+><PRE+> infixl 2 ($&lt;)+</PRE+><P+>definition:+</P+><PRE+> g $&lt; f = applyA (f &gt;&gt;&gt; arr g)+</PRE+><P+>if <TT+>f</TT+> fails, the whole arrow fails, e.g. <TT+> g $&lt; none == none </TT+>+</P+><P+>if <TT+>f</TT+> computes n values and <TT+>g</TT+> is deterministic, the whole arrow computes n values+</P+><P+>examples with simple list arrows with strings+</P+><PRE+> prefixString   :: String -&gt; a String String+ prefixString s =  arr (s++)++ runLA ( prefixString $&lt; none           ) &quot;x&quot; == []+ runLA ( prefixString $&lt; constA &quot;y&quot;     ) &quot;x&quot; == [&quot;yx&quot;]+ runLA ( prefixString $&lt; this           ) &quot;x&quot; == [&quot;xx&quot;]+ runLA ( prefixString $&lt; constA &quot;y&quot;+                         &lt;+&gt; constA &quot;z&quot; ) &quot;x&quot; == [&quot;yx&quot;,&quot;zx&quot;]+ runLA ( prefixString $&lt; constA &quot;y&quot;+                         &lt;+&gt; this+                         &lt;+&gt; constA &quot;z&quot; ) &quot;x&quot; == [&quot;yx&quot;,&quot;xx&quot;,&quot;zx&quot;]+</PRE+><P+>see also: <TT+><A HREF="Control-Arrow-ArrowList.html#v%3AapplyA"+>applyA</A+></TT+>, <TT+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C"+>$&lt;&lt;</A+></TT+>, <TT+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C%3C"+>$&lt;&lt;&lt;</A+></TT+>, <TT+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C%3C%3C"+>$&lt;&lt;&lt;&lt;</A+></TT+>, <TT+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%24"+>$&lt;$</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%24%3C%3C"+></A+><B+>($&lt;&lt;)</B+> :: (c1 -&gt; c2 -&gt; a b d) -&gt; a b (c1, c2) -&gt; a b d</TD+></TR+><TR+><TD CLASS="doc"+><P+>binary version of <TT+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C"+>$&lt;</A+></TT+>+</P+><P+>example with simple list arrows with strings+</P+><PRE+> infixString    :: String -&gt; String -&gt; a String String+ infixString s1 s2+                = arr (\ s -&gt; s1 ++ s ++ s2)++ runLA ( infixString $&lt;&lt; constA &quot;y&quot; &amp;&amp;&amp; constA &quot;z&quot; ) &quot;x&quot; = [&quot;yxz&quot;]+ runLA ( infixString $&lt;&lt; this &amp;&amp;&amp; this             ) &quot;x&quot; = [&quot;xxx&quot;]+ runLA ( infixString $&lt;&lt; constA &quot;y&quot;+                         &amp;&amp;&amp; (constA &quot;z&quot; &lt;+&gt; this) ) &quot;x&quot; = [&quot;yxz&quot;, &quot;yxx&quot;]+</PRE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%24%3C%3C%3C"+></A+><B+>($&lt;&lt;&lt;)</B+> :: (c1 -&gt; c2 -&gt; c3 -&gt; a b d) -&gt; a b (c1, (c2, c3)) -&gt; a b d</TD+></TR+><TR+><TD CLASS="doc"+><P+>version of <TT+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C"+>$&lt;</A+></TT+> for arrows with 3 extra parameters+</P+><P+>typical usage+</P+><PRE+> f $&lt;&lt;&lt; g1 &amp;&amp;&amp; g2 &amp;&amp;&amp; g3+</PRE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%24%3C%3C%3C%3C"+></A+><B+>($&lt;&lt;&lt;&lt;)</B+> :: (c1 -&gt; c2 -&gt; c3 -&gt; c4 -&gt; a b d) -&gt; a b (c1, (c2, (c3, c4))) -&gt; a b d</TD+></TR+><TR+><TD CLASS="doc"+><P+>version of <TT+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C"+>$&lt;</A+></TT+> for arrows with 4 extra parameters+</P+><P+>typical usage+</P+><PRE+> f $&lt;&lt;&lt;&lt; g1 &amp;&amp;&amp; g2 &amp;&amp;&amp; g3 &amp;&amp;&amp; g4+</PRE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%24%3C%24"+></A+><B+>($&lt;$)</B+> :: (c -&gt; a b b) -&gt; a b c -&gt; a b b</TD+></TR+><TR+><TD CLASS="doc"+><P+>compute the parameter for an arrow <TT+>f</TT+> with an extra parameter by an arrow <TT+>g</TT+>+ and apply all the results from <TT+>g</TT+> sequentially to the input+</P+><PRE+> infixl 2 ($&lt;$)+</PRE+><P+>typical usage:+</P+><PRE+> g :: a b c+ g = ...++ f :: c -&gt; a b b+ f x = ... x ...++ f $&lt;$ g+</PRE+><P+><TT+>f</TT+> computes the extra parameters for <TT+>g</TT+> from the input of type <TT+>b</TT+> and <TT+>g</TT+> is applied with this+ parameter to the input. This allows programming in a point wise style in <TT+>g</TT+>, which becomes+ neccessary, when a value is needed more than once.+</P+><P+>this combinator is useful, when transforming a single value (document) step by step,+ with <TT+>g</TT+> for collecting the data for all steps, and <TT+>f</TT+> for transforming the input step by step+</P+><P+>if <TT+>g</TT+> is deterministic (computes exactly one result),+ <TT+> g $&lt;$ f == g $&lt; f </TT+> holds+</P+><P+>if <TT+>g</TT+> fails, <TT+> f $&lt;$ g == this </TT+>+</P+><P+>if <TT+>g</TT+> computes more than one result, <TT+>f</TT+> is applied sequentially to the input for every result from <TT+>g</TT+>+</P+><P+>examples with simple list arrows with strings+</P+><PRE+> prefixString   :: String -&gt; a String String+ prefixString s =  arr (s++)++ runLA ( prefixString $&lt;$ none                      ) &quot;x&quot; == [&quot;x&quot;]+ runLA ( prefixString $&lt;$ constA &quot;y&quot;                ) &quot;x&quot; == [&quot;yx&quot;]+ runLA ( prefixString $&lt;$ constA &quot;y&quot; &lt;+&gt; constA &quot;z&quot; ) &quot;x&quot; == [&quot;zyx&quot;]+ runLA ( prefixString $&lt;$ constA &quot;y&quot; &lt;+&gt; this+                          &lt;+&gt; constA &quot;z&quot;            ) &quot;x&quot; == [&quot;zxyx&quot;]+</PRE+><P+>example with two extra parameter+</P+><PRE+> g1 :: a b c1+ g2 :: a b c2++ f          :: (c1, c2) -&gt; a b b+ f (x1, x2) =  ... x1 ... x2 ... ++ f $&lt;$ g1 &amp;&amp;&amp; g2+</PRE+><P+>see also: <TT+><A HREF="Control-Arrow-ArrowList.html#v%3AapplyA"+>applyA</A+></TT+>, <TT+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C"+>$&lt;</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aperform"+></A+><B+>perform</B+> :: a b c -&gt; a b b</TD+></TR+><TR+><TD CLASS="doc"+><P+>useful only for arrows with side effects: perform applies an arrow to the input+ ignores the result and returns the input+</P+><P+>example: <TT+> ... &gt;&gt;&gt; perform someTraceArrow &gt;&gt;&gt; ... </TT+>+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcatA"+></A+><B+>catA</B+> :: [a b c] -&gt; a b c</TD+></TR+><TR+><TD CLASS="doc"+><P+>generalization of arrow combinator &lt;+&gt;+</P+><P+>definition: <TT+> catA = foldl (<A HREF="+"+>+</A+>) none </TT+>+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AseqA"+></A+><B+>seqA</B+> :: [a b b] -&gt; a b b</TD+></TR+><TR+><TD CLASS="doc"+><P+>generalization of arrow combinator &gt;&gt;&gt;+</P+><P+>definition: <TT+> seqA = foldl (&gt;&gt;&gt;) this </TT+>+</P+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ArrowList')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:ArrowList" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Control-Arrow-ArrowState.html view
@@ -0,0 +1,387 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Control.Arrow.ArrowState</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowState.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Control.Arrow.ArrowState</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: ArrowState.hs,v 1.5 2005<EM+>09</EM+>02 17:09:39 hxml Exp $+</P+><P+>Arrows for managing an explicit state+</P+><P+>State arrows work similar to state monads.+   A state value is threaded through the application of arrows.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> Arrow a =&gt; <A HREF="#t%3AArrowState"+>ArrowState</A+> s a | a -&gt; s <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeState"+>changeState</A+> :: (s -&gt; b -&gt; s) -&gt; a b b</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaccessState"+>accessState</A+> :: (s -&gt; b -&gt; c) -&gt; a b c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetState"+>getState</A+> :: a b s</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetState"+>setState</A+> :: a s s</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnextState"+>nextState</A+> :: (s -&gt; s) -&gt; a b s</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> Arrow a =&gt; <A NAME="t%3AArrowState"+></A+><B+>ArrowState</B+> s a | a -&gt; s <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+><P+>The interface for accessing and changing the state component.+</P+><P+>Multi parameter classes and functional dependencies are required.+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+>Methods</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeState"+></A+><B+>changeState</B+> :: (s -&gt; b -&gt; s) -&gt; a b b</TD+></TR+><TR+><TD CLASS="doc"+>change the state of a state arrow by applying a function+ for computing a new state from the old and the arrow input.+ Result is the arrow input+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaccessState"+></A+><B+>accessState</B+> :: (s -&gt; b -&gt; c) -&gt; a b c</TD+></TR+><TR+><TD CLASS="doc"+>access the state with a function using the arrow input+ as data for selecting state components.+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetState"+></A+><B+>getState</B+> :: a b s</TD+></TR+><TR+><TD CLASS="doc"+><P+>read the complete state, ignore arrow input+</P+><P+>definition: <TT+> getState = accessState (\ s x -&gt; s) </TT+> +</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetState"+></A+><B+>setState</B+> :: a s s</TD+></TR+><TR+><TD CLASS="doc"+><P+>overwrite the old state+</P+><P+>definition: <TT+> setState = changeState (\ s x -&gt; x) </TT+>+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnextState"+></A+><B+>nextState</B+> :: (s -&gt; s) -&gt; a b s</TD+></TR+><TR+><TD CLASS="doc"+><P+>change state (and ignore input) and return new state+</P+><P+>convenience function,+ usefull for generating e.g. unique identifiers:+</P+><P+>example with SLA state list arrows+</P+><PRE+> newId :: SLA Int b String+ newId = nextState (+1)+         &gt;&gt;&gt;+         arr (('#':) . show)+ + runSLA 0 (newId &lt;+&gt; newId &lt;+&gt; newId) undefined+   = [&quot;#1&quot;, &quot;#2&quot;, &quot;#3&quot;]+</PRE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ArrowState')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:ArrowState" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowState.html#t%3AArrowState"+>ArrowState</A+> s (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowState.html#t%3AArrowState"+>ArrowState</A+> s (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Control-Arrow-ArrowStrict.html view
@@ -0,0 +1,183 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Control.Arrow.ArrowStrict</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowStrict.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Control.Arrow.ArrowStrict</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id$+</P+><P+>Arrows for complete evaluation of result+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AstrictA"+>strictA</A+> :: (Arrow a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> b) =&gt; a b b</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AstrictA"+></A+><B+>strictA</B+> :: (Arrow a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> b) =&gt; a b b</TD+></TR+><TR+><TD CLASS="doc"+><P+>complete evaluation of an arrow result using <TT+><A HREF="Control-Strategies-DeepSeq.html#v%3AdeepSeq"+>deepSeq</A+></TT+>+ and <TT+><A HREF="Control-Strategies-DeepSeq.html#v%3Astrict"+>strict</A+></TT+>+</P+><P+>this is sometimes useful for preventing space leaks, especially after reading+ and validation of a document, all DTD stuff is not longer in use and can be+ recycled by the GC.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Control-Arrow-ArrowTree.html view
@@ -0,0 +1,1035 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Control.Arrow.ArrowTree</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowTree.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Control.Arrow.ArrowTree</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: ArrowTree.hs,v 1.12 2006<EM+>11</EM+>30 16:05:24 hxml Exp $+</P+><P+>List arrows for tree processing.+</P+><P+>Trees that implement the <A HREF="Data-Tree-Class.html"+>Data.Tree.Class</A+> interface, can be processed+with these arrows.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> (ArrowPlus a, <A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"+>ArrowIf</A+> a) =&gt; <A HREF="#t%3AArrowTree"+>ArrowTree</A+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetChildren"+>getChildren</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetNode"+>getNode</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) b</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetChildren"+>setChildren</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; [t b] -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetNode"+>setNode</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; b -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeChildren"+>changeChildren</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; ([t b] -&gt; [t b]) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeNode"+>changeNode</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; (b -&gt; b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessChildren"+>processChildren</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AreplaceChildren"+>replaceChildren</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%2F%3E"+>(/&gt;)</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%3C%2F"+>(&lt;/)</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Adeep"+>deep</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Adeepest"+>deepest</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Amulti"+>multi</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) c -&gt; a (t b) c</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessBottomUp"+>processBottomUp</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessTopDown"+>processTopDown</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessBottomUpWhenNot"+>processBottomUpWhenNot</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessTopDownUntil"+>processTopDownUntil</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AinsertChildrenAt"+>insertChildrenAt</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; Int -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AinsertChildrenAfter"+>insertChildrenAfter</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AinsertTreeTemplate"+>insertTreeTemplate</A+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; [<A HREF="Control-Arrow-ArrowIf.html#t%3AIfThen"+>IfThen</A+> (a (t b) c) (a (t b) (t b))] -&gt; a (t b) (t b)</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> <A HREF="#t%3ATree"+>Tree</A+> t </TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> (ArrowPlus a, <A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"+>ArrowIf</A+> a) =&gt; <A NAME="t%3AArrowTree"+></A+><B+>ArrowTree</B+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+><P+>The interface for tree arrows+</P+><P+>all functions have default implementations+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+>Methods</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A NAME="v%3AgetChildren"+></A+><B+>getChildren</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+>select the children of the root of a tree+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetNode"+></A+><B+>getNode</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) b</TD+></TR+><TR+><TD CLASS="doc"+>select the attribute of the root of a tree+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetChildren"+></A+><B+>setChildren</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; [t b] -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+>substitute the children of the root of a tree+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetNode"+></A+><B+>setNode</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; b -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+>substitute the attribute of the root of a tree+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeChildren"+></A+><B+>changeChildren</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; ([t b] -&gt; [t b]) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+>edit the children of the root of a tree+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeNode"+></A+><B+>changeNode</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; (b -&gt; b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+>edit the attribute of the root of a tree+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessChildren"+></A+><B+>processChildren</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+><P+>apply an arrow element wise to all children of the root of a tree+ collect these results and substitute the children with this result+</P+><P+>example: <TT+> processChildren isText </TT+> deletes all subtrees, for which isText does not hold+</P+><P+>example: <TT+> processChildren (none `when` isCmt) </TT+> removes all children, for which isCmt holds+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AreplaceChildren"+></A+><B+>replaceChildren</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+><P+>similar to processChildren, but the new children are computed by processing+ the whole input tree+</P+><P+>example: <TT+> replaceChildren (deep isText) </TT+> selects all subtrees for which isText holds+ and substitutes the children component of the root node with this list+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%2F%3E"+></A+><B+>(/&gt;)</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+><P+>pronounced &quot;slash&quot;, meaning g inside f+</P+><P+>defined as <TT+> f /&gt; g = f &gt;&gt;&gt; getChildren &gt;&gt;&gt; g </TT+>+</P+><P+>example: <TT+> hasName &quot;html&quot; /&gt; hasName &quot;body&quot; /&gt; hasName &quot;h1&quot; </TT+>+</P+><P+>This expression selects+ all &quot;h1&quot; elements in the &quot;body&quot; element of an &quot;html&quot; element, an expression, that+ corresponds 1-1 to the XPath selection path &quot;html/body/h1&quot; +</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%3C%2F"+></A+><B+>(&lt;/)</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+><P+>pronounced &quot;outside&quot; meaning f containing g+</P+><P+>defined as <TT+> f <A HREF="\/ g = f \`containing\` (getChildren >>"+>\/ g = f \`containing\` (getChildren &gt;&gt;</A+> g) </TT+>+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Adeep"+></A+><B+>deep</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+><P+>recursively searches a whole tree for subtrees, for which a predicate holds.+ The search is performed top down. When a tree is found, this becomes an element of the result+ list. The tree found is not further examined for any subtress, for which the predicate also could hold.+ See <TT+><A HREF="Control-Arrow-ArrowTree.html#v%3Amulti"+>multi</A+></TT+> for this kind of search.+</P+><P+>example: <TT+> deep isHtmlTable </TT+> selects all top level table elements in a document+ (with an appropriate definition for isHtmlTable) but no tables occuring within a table cell.+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Adeepest"+></A+><B+>deepest</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+><P+>recursively searches a whole tree for subrees, for which a predicate holds.+ The search is performed bottom up.+</P+><P+>example: <TT+> deepest isHtmlTable </TT+> selects all innermost table elements in a document+ but no table elements containing tables. See <TT+><A HREF="Control-Arrow-ArrowTree.html#v%3Adeep"+>deep</A+></TT+> and <TT+><A HREF="Control-Arrow-ArrowTree.html#v%3Amulti"+>multi</A+></TT+> for other search strategies.+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Amulti"+></A+><B+>multi</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) c -&gt; a (t b) c</TD+></TR+><TR+><TD CLASS="doc"+><P+>recursively searches a whole tree for subtrees, for which a predicate holds.+ The search is performed top down. All nodes of the tree are searched, even within the+ subtrees of trees for which the predicate holds.+</P+><P+>example: <TT+> multy isHtmlTable </TT+> selects all table elements, even nested ones.+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessBottomUp"+></A+><B+>processBottomUp</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+><P+>recursively transforms a whole tree by applying an arrow to all subtrees,+ this is done bottom up depth first, leaves first, root as last tree+</P+><P+>example: <TT+> processBottomUp (getChildren `when` isHtmlFont) </TT+> removes all font tags in a HTML document, even nested ones+ (with an appropriate definition of isHtmlFont)+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessTopDown"+></A+><B+>processTopDown</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+>similar to <TT+><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessBottomUp"+>processBottomUp</A+></TT+>, but recursively transforms a whole tree by applying an arrow to all subtrees+ with a top down depth first traversal strategie. In many cases <TT+><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessBottomUp"+>processBottomUp</A+></TT+> and <TT+><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessTopDown"+>processTopDown</A+></TT+>+ give same results.+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessBottomUpWhenNot"+></A+><B+>processBottomUpWhenNot</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+>recursively transforms a whole tree by applying an arrow to all subtrees,+ but transformation stops when a predicte does not hold for a subtree,+ leaves are transformed first+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessTopDownUntil"+></A+><B+>processTopDownUntil</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+><P+>recursively transforms a whole tree by applying an arrow to all subtrees,+ but transformation stops when a tree is successfully transformed.+ the transformation is done top down+</P+><P+>example: <TT+> processTopDownUntil (isHtmlTable `guards` tranformTable) </TT+>+ transforms all top level table elements into something else, but inner tables remain unchanged+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AinsertChildrenAt"+></A+><B+>insertChildrenAt</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; Int -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+><P+>computes a list of trees by applying an arrow to the input+ and inserts this list in front of index i in the list of children+</P+><P+>example: <TT+> insertChildrenAt 0 (deep isCmt) </TT+> selects all subtrees for which isCmt holds+ and copies theses in front of the existing children+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AinsertChildrenAfter"+></A+><B+>insertChildrenAfter</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; a (t b) (t b) -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+>similar to <TT+><A HREF="Control-Arrow-ArrowTree.html#v%3AinsertChildrenAt"+>insertChildrenAt</A+></TT+>, but the insertion position is searched with a predicate+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AinsertTreeTemplate"+></A+><B+>insertTreeTemplate</B+> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> t =&gt; a (t b) (t b) -&gt; [<A HREF="Control-Arrow-ArrowIf.html#t%3AIfThen"+>IfThen</A+> (a (t b) c) (a (t b) (t b))] -&gt; a (t b) (t b)</TD+></TR+><TR+><TD CLASS="doc"+><P+>an arrow for inserting a whole subtree with some holes in it (a template)+ into a document. The holes can be filled with contents from the input.+</P+><P+>Example+</P+><PRE+> insertTreeTemplateTest	:: ArrowXml a =&gt; a b XmlTree+ insertTreeTemplateTest+     = doc+       &gt;&gt;&gt;+       insertTemplate template pattern+     where+     doc								-- the input data+ 	= constA &quot;&lt;x&gt;&lt;y&gt;The Title&lt;/y&gt;&lt;z&gt;The content&lt;/z&gt;&lt;/x&gt;&quot;+ 	  &gt;&gt;&gt; xread+     template								-- the output template with 2 holes: xxx and yyy+ 	= constA &quot;&lt;html&gt;&lt;head&gt;&lt;title&gt;xxx&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;h1&gt;yyy&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;&quot;+ 	  &gt;&gt;&gt; xread+     pattern+ 	= [ hasText (== &quot;xxx&quot;)						-- fill the xxx hole with the input contents from element &quot;x/y&quot;+ 	    :-&gt; ( getChildren &gt;&gt;&gt; hasName &quot;y&quot; &gt;&gt;&gt; deep isText )+ + 	  , hasText (== &quot;yyy&quot;)						-- fill the yyy hole with the input contents from element &quot;x/z&quot;+ 	    :-&gt; ( getChildren &gt;&gt;&gt; hasName &quot;z&quot; &gt;&gt;&gt; getChildren )+ 	  ]+</PRE+><P+>computes the XML tree for the following document+</P+><PRE+> &quot;&lt;html&gt;&lt;head&gt;&lt;title&gt;The Title&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;h1&gt;The content&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;&quot;+</PRE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ArrowTree')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:ArrowTree" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"+>ArrowTree</A+> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"+>ArrowTree</A+> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"+>ArrowTree</A+> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"+>ArrowTree</A+> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> <A NAME="t%3ATree"+></A+><B+>Tree</B+> t </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>The interface for trees+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Tree')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:Tree" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Tree</A+> <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Control-Arrow-IOListArrow.html view
@@ -0,0 +1,320 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Control.Arrow.IOListArrow</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/IOListArrow.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Control.Arrow.IOListArrow</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: IOListArrow.hs,v 1.6 2005<EM+>09</EM+>02 17:09:39 hxml Exp $+</P+><P+>Implementation of pure list arrows with io+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>newtype</SPAN+> <A HREF="#t%3AIOLA"+>IOLA</A+> a b = <A HREF="#v%3AIOLA"+>IOLA</A+> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="recfield"+><A HREF="#v%3ArunIOLA"+>runIOLA</A+> :: (a -&gt; IO [b])</TD+></TR+></TABLE+>}</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>newtype</SPAN+> <A NAME="t%3AIOLA"+></A+><B+>IOLA</B+> a b</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>list arrow combined with IO monad+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AIOLA"+></A+><B+>IOLA</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="body" COLSPAN="2"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ArunIOLA"+></A+><B+>runIOLA</B+> :: (a -&gt; IO [b])</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:IOLA')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:IOLA" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Arrow <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+>ArrowApply <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+>ArrowChoice <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"+>ArrowDTD</A+> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIO"+>ArrowIO</A+> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIOIf"+>ArrowIOIf</A+> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"+>ArrowIf</A+> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+>ArrowPlus <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"+>ArrowTree</A+> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+>ArrowZero <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Control-Arrow-IOStateListArrow.html view
@@ -0,0 +1,411 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Control.Arrow.IOStateListArrow</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/IOStateListArrow.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Control.Arrow.IOStateListArrow</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: IOStateListArrow.hs,v 1.7 2005<EM+>09</EM+>02 17:09:39 hxml Exp $+</P+><P+>Implementation of arrows with IO and a state+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>newtype</SPAN+> <A HREF="#t%3AIOSLA"+>IOSLA</A+> s a b = <A HREF="#v%3AIOSLA"+>IOSLA</A+> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="recfield"+><A HREF="#v%3ArunIOSLA"+>runIOSLA</A+> :: (s -&gt; a -&gt; IO (s, [b]))</TD+></TR+></TABLE+>}</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AliftSt"+>liftSt</A+> :: <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s1 b c -&gt; <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> (s1, s2) b c</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ArunSt"+>runSt</A+> :: s2 -&gt; <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> (s1, s2) b c -&gt; <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s1 b c</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>newtype</SPAN+> <A NAME="t%3AIOSLA"+></A+><B+>IOSLA</B+> s a b</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>list arrow combined with a state and the IO monad+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AIOSLA"+></A+><B+>IOSLA</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="body" COLSPAN="2"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ArunIOSLA"+></A+><B+>runIOSLA</B+> :: (s -&gt; a -&gt; IO (s, [b]))</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:IOSLA')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:IOSLA" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowState.html#t%3AArrowState"+>ArrowState</A+> s (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+>Arrow (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+>ArrowApply (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+>ArrowChoice (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"+>ArrowDTD</A+> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIO"+>ArrowIO</A+> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIOIf"+>ArrowIOIf</A+> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"+>ArrowIf</A+> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+>ArrowPlus (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"+>ArrowTree</A+> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+>ArrowZero (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AliftSt"+></A+><B+>liftSt</B+> :: <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s1 b c -&gt; <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> (s1, s2) b c</TD+></TR+><TR+><TD CLASS="doc"+><P+>lift the state of an IOSLA arrow to a state with an additional component.+</P+><P+>This is uesful, when running predefined IO arrows, e.g. for document input,+ in a context with a more complex state component.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArunSt"+></A+><B+>runSt</B+> :: s2 -&gt; <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> (s1, s2) b c -&gt; <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s1 b c</TD+></TR+><TR+><TD CLASS="doc"+><P+>run an arrow with augmented state in the context of a simple state arrow.+ An initial value for the new state component is needed.+</P+><P+>This is useful, when running an arrow with an extra environment component, e.g.+ for namespace handling in XML.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Control-Arrow-ListArrow.html view
@@ -0,0 +1,340 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Control.Arrow.ListArrow</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ListArrow.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Control.Arrow.ListArrow</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: ListArrow.hs,v 1.7 2006<EM+>05</EM+>04 14:17:53 hxml Exp $+</P+><P+>Implementation of pure list arrows+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>newtype</SPAN+> <A HREF="#t%3ALA"+>LA</A+> a b = <A HREF="#v%3ALA"+>LA</A+> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="recfield"+><A HREF="#v%3ArunLA"+>runLA</A+> :: (a -&gt; [b])</TD+></TR+></TABLE+>}</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AfromLA"+>fromLA</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+> b c -&gt; a b c</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>newtype</SPAN+> <A NAME="t%3ALA"+></A+><B+>LA</B+> a b</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>pure list arrow data type+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ALA"+></A+><B+>LA</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="body" COLSPAN="2"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ArunLA"+></A+><B+>runLA</B+> :: (a -&gt; [b])</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:LA')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:LA" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Arrow <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+></TD+></TR+><TR+><TD CLASS="decl"+>ArrowApply <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+></TD+></TR+><TR+><TD CLASS="decl"+>ArrowChoice <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"+>ArrowDTD</A+> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"+>ArrowIf</A+> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+></TD+></TR+><TR+><TD CLASS="decl"+>ArrowPlus <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"+>ArrowTree</A+> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+></TD+></TR+><TR+><TD CLASS="decl"+>ArrowZero <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfromLA"+></A+><B+>fromLA</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+> b c -&gt; a b c</TD+></TR+><TR+><TD CLASS="doc"+>conversion of pure list arrows into other possibly more complex+ list arrows+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Control-Arrow-ListArrows.html view
@@ -0,0 +1,228 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Control.Arrow.ListArrows</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ListArrows.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Control.Arrow.ListArrows</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: ListArrows.hs,v 1.1 2005<EM+>09</EM+>30 14:41:44 hxml Exp $+</P+><P+>Module for importing all list arrows+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Control-Arrow-ArrowStrict.html"+>Control.Arrow.ArrowStrict</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Control-Arrow-ArrowList.html"+>Control.Arrow.ArrowList</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Control-Arrow-ArrowIf.html"+>Control.Arrow.ArrowIf</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Control-Arrow-ArrowState.html"+>Control.Arrow.ArrowState</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Control-Arrow-ArrowTree.html"+>Control.Arrow.ArrowTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Control-Arrow-ArrowIO.html"+>Control.Arrow.ArrowIO</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Control-Arrow-ListArrow.html"+>Control.Arrow.ListArrow</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Control-Arrow-StateListArrow.html"+>Control.Arrow.StateListArrow</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Control-Arrow-IOListArrow.html"+>Control.Arrow.IOListArrow</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Control-Arrow-IOStateListArrow.html"+>Control.Arrow.IOStateListArrow</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Control-Arrow-StateListArrow.html view
@@ -0,0 +1,363 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Control.Arrow.StateListArrow</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/StateListArrow.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Control.Arrow.StateListArrow</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: StateListArrow.hs,v 1.7 2005<EM+>09</EM+>02 17:09:39 hxml Exp $+</P+><P+>Implementation of list arrows with a state+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>newtype</SPAN+> <A HREF="#t%3ASLA"+>SLA</A+> s a b = <A HREF="#v%3ASLA"+>SLA</A+> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="recfield"+><A HREF="#v%3ArunSLA"+>runSLA</A+> :: (s -&gt; a -&gt; (s, [b]))</TD+></TR+></TABLE+>}</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AfromSLA"+>fromSLA</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; s -&gt; <A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s b c -&gt; a b c</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>newtype</SPAN+> <A NAME="t%3ASLA"+></A+><B+>SLA</B+> s a b</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>list arrow combined with a state+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ASLA"+></A+><B+>SLA</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="body" COLSPAN="2"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ArunSLA"+></A+><B+>runSLA</B+> :: (s -&gt; a -&gt; (s, [b]))</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:SLA')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:SLA" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowState.html#t%3AArrowState"+>ArrowState</A+> s (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+>Arrow (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+>ArrowApply (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+>ArrowChoice (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"+>ArrowDTD</A+> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"+>ArrowIf</A+> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+>ArrowPlus (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"+>ArrowTree</A+> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+>ArrowZero (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfromSLA"+></A+><B+>fromSLA</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; s -&gt; <A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s b c -&gt; a b c</TD+></TR+><TR+><TD CLASS="doc"+><P+>conversion of state list arrows into arbitray other+ list arrows.+</P+><P+>allows running a state list arrow within another arrow:+</P+><P+>example:+</P+><PRE+> ... &gt;&gt;&gt; fromSLA 0 (... setState ... getState ... ) &gt;&gt;&gt; ...+</PRE+><P+>runs a state arrow with initial state 0 (e..g. an Int) within+ another arrow sequence+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Control-Monad-MonadStateIO.html view
@@ -0,0 +1,408 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Control.Monad.MonadStateIO</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Monad/MonadStateIO.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Control.Monad.MonadStateIO</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>general usefull state monad for a local state and IO+</P+><P+>Version : $Id: MonadStateIO.hs,v 1.1 2004<EM+>09</EM+>02 19:11:55 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>newtype</SPAN+> <A HREF="#t%3AStateIO"+>StateIO</A+> state res = <A HREF="#v%3ASTIO"+>STIO</A+> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="recfield"+><A HREF="#v%3Atrans"+>trans</A+> :: (state -&gt; IO (res, state))</TD+></TR+></TABLE+>}</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aio"+>io</A+> :: IO a -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtrcState"+>trcState</A+> :: (state -&gt; String) -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state ()</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeState"+>changeState</A+> :: (state -&gt; state) -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetState"+>setState</A+> :: state -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetState"+>getState</A+> :: <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Arun"+>run</A+> :: state -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state res -&gt; IO res</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>newtype</SPAN+> <A NAME="t%3AStateIO"+></A+><B+>StateIO</B+> state res</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ASTIO"+></A+><B+>STIO</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="body" COLSPAN="2"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3Atrans"+></A+><B+>trans</B+> :: (state -&gt; IO (res, state))</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:StateIO')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:StateIO" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Monad (<A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aio"+></A+><B+>io</B+> :: IO a -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state a</TD+></TR+><TR+><TD CLASS="doc"+>lift IO command to <TT+><A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtrcState"+></A+><B+>trcState</B+> :: (state -&gt; String) -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state ()</TD+></TR+><TR+><TD CLASS="doc"+>state inspection command: a &quot;show&quot;-like function is applied to the state+ and the result is written to stderr.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeState"+></A+><B+>changeState</B+> :: (state -&gt; state) -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state state</TD+></TR+><TR+><TD CLASS="doc"+>change the state with a given function and return the new state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetState"+></A+><B+>setState</B+> :: state -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state state</TD+></TR+><TR+><TD CLASS="doc"+>set the state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetState"+></A+><B+>getState</B+> :: <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state state</TD+></TR+><TR+><TD CLASS="doc"+>read the state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Arun"+></A+><B+>run</B+> :: state -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state res -&gt; IO res</TD+></TR+><TR+><TD CLASS="doc"+>run a <TT+><A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+></TT+> command with an initial state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Control-Strategies-DeepSeq.html view
@@ -0,0 +1,447 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Control.Strategies.DeepSeq</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Strategies/DeepSeq.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Control.Strategies.DeepSeq</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>stolen from comp.lang.functional from Dean Herington+</P+><P+>DeepSeq.lhs  --  deep strict evaluation support+</P+><P+>The <TT+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+></TT+> class provides a method <TT+><A HREF="Control-Strategies-DeepSeq.html#v%3AdeepSeq"+>deepSeq</A+></TT+> that is similar to+seq except that it forces deep evaluation of its first argument+before returning its second argument.+</P+><P+>Instances of <TT+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+></TT+> are provided for Prelude types.  Other+instances must be supplied by users of this module.+</P+><P+>$Id: DeepSeq.lhs,v 1.5 2002<EM+>04</EM+>01 20:58:24 heringto Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> <A NAME="t%3ADeepSeq"+></A+><B+>DeepSeq</B+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+>Methods</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A NAME="v%3AdeepSeq"+></A+><B+>deepSeq</B+> :: a -&gt; b -&gt; b</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:DeepSeq')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:DeepSeq" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> Bool</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> Char</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> Double</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> Float</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> Int</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> Integer</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> Ordering</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"+>XIOSysState</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> ()</TD+></TR+><TR+><TD CLASS="decl"+>(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> b) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (a, b)</TD+></TR+><TR+><TD CLASS="decl"+>(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> b, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> c) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (a, b, c)</TD+></TR+><TR+><TD CLASS="decl"+>(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> b, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> c, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> d) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (a, b, c, d)</TD+></TR+><TR+><TD CLASS="decl"+>(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> b, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> c, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> d, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> e) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (a, b, c, d, e)</TD+></TR+><TR+><TD CLASS="decl"+>(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> b, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> c, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> d, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> e, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> f) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (a, b, c, d, e, f)</TD+></TR+><TR+><TD CLASS="decl"+>(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> b, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> c, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> d, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> e, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> f, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> g) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (a, b, c, d, e, f, g)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (a -&gt; b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (IO a)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (Maybe a)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> us =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (<A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOState"+>XIOState</A+> us)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> [a]</TD+></TR+><TR+><TD CLASS="decl"+>(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> b) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (Either a b)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%24%21%21"+></A+><B+>($!!)</B+> :: <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a =&gt; (a -&gt; b) -&gt; a -&gt; b</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Astrict"+></A+><B+>strict</B+> :: <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a =&gt; a -&gt; a</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Data-AssocList.html view
@@ -0,0 +1,388 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Data.AssocList</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/AssocList.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Data.AssocList</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>simple key value assocciation list+ implemented as unordered list of pairs+</P+><P+>Version : $Id: AssocList.hs,v 1.2 2005<EM+>05</EM+>27 13:15:23 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AAssocList"+>AssocList</A+> k v = [(k, v)]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AlookupDef"+>lookupDef</A+> :: Eq k =&gt; v -&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; v</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Alookup1"+>lookup1</A+> :: Eq k =&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k [e] -&gt; [e]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasEntry"+>hasEntry</A+> :: Eq k =&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddEntry"+>addEntry</A+> :: Eq k =&gt; k -&gt; v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddEntries"+>addEntries</A+> :: Eq k =&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AdelEntry"+>delEntry</A+> :: Eq k =&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AdelEntries"+>delEntries</A+> :: Eq k =&gt; [k] -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AAssocList"+></A+><B+>AssocList</B+> k v = [(k, v)]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AlookupDef"+></A+><B+>lookupDef</B+> :: Eq k =&gt; v -&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; v</TD+></TR+><TR+><TD CLASS="doc"+>lookup with default value+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Alookup1"+></A+><B+>lookup1</B+> :: Eq k =&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k [e] -&gt; [e]</TD+></TR+><TR+><TD CLASS="doc"+>lookup with empty list (empty string) as default value+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasEntry"+></A+><B+>hasEntry</B+> :: Eq k =&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test for existence of a key+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddEntry"+></A+><B+>addEntry</B+> :: Eq k =&gt; k -&gt; v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v</TD+></TR+><TR+><TD CLASS="doc"+>add an entry, remove an existing entry before adding the new one at the top of the list, addEntry is strict+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddEntries"+></A+><B+>addEntries</B+> :: Eq k =&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v</TD+></TR+><TR+><TD CLASS="doc"+>add a whole list of entries with <TT+><A HREF="Data-AssocList.html#v%3AaddEntry"+>addEntry</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdelEntry"+></A+><B+>delEntry</B+> :: Eq k =&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v</TD+></TR+><TR+><TD CLASS="doc"+>delete an entry, delEntry is strict+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdelEntries"+></A+><B+>delEntries</B+> :: Eq k =&gt; [k] -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v</TD+></TR+><TR+><TD CLASS="doc"+>delete a list of entries with <TT+><A HREF="Data-AssocList.html#v%3AdelEntry"+>delEntry</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Data-NavTree.html view
@@ -0,0 +1,588 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Data.NavTree</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/NavTree.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Data.NavTree</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>Navigable tree structure which allow a program to traverse+ up the tree as well as down.+ copied and modified from HXML (<A HREF="http://www.flightlab.com/~joe/hxml/"+>http://www.flightlab.com/~joe/hxml/</A+>)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3ANavTree"+>NavTree</A+> a = <A HREF="#v%3ANT"+>NT</A+> (NTree a) [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a] [NTree a] [NTree a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Antree"+>ntree</A+> :: NTree a -&gt; <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsubtreeNT"+>subtreeNT</A+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; NTree a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AdataNT"+>dataNT</A+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AupNT"+>upNT</A+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AdownNT"+>downNT</A+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AleftNT"+>leftNT</A+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ArightNT"+>rightNT</A+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ApreorderNT"+>preorderNT</A+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ArevPreorderNT"+>revPreorderNT</A+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetChildrenNT"+>getChildrenNT</A+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ao%27"+>o'</A+> :: Monad m =&gt; (b -&gt; m c) -&gt; (a -&gt; m b) -&gt; a -&gt; m c</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmaybeStar"+>maybeStar</A+> :: (a -&gt; Maybe a) -&gt; a -&gt; [a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmaybePlus"+>maybePlus</A+> :: (a -&gt; Maybe a) -&gt; a -&gt; [a]</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3ANavTree"+></A+><B+>NavTree</B+> a</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+><P+>navigable tree with nodes of type node+</P+><P+>a navigable tree consists of a n-ary tree for the current fragment tree,+ a navigable tree for all ancestors, and two n-ary trees for+ the previous- and following siblings+</P+></TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ANT"+></A+><B+>NT</B+> (NTree a) [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a] [NTree a] [NTree a]</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:NavTree')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:NavTree" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>??? a =&gt; Eq (<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+>??? a =&gt; Ord (<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+>??? a =&gt; Show (<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Antree"+></A+><B+>ntree</B+> :: NTree a -&gt; <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a</TD+></TR+><TR+><TD CLASS="doc"+>converts a n-ary tree in a navigable tree+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsubtreeNT"+></A+><B+>subtreeNT</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; NTree a</TD+></TR+><TR+><TD CLASS="doc"+>converts a navigable tree in a n-ary tree+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdataNT"+></A+><B+>dataNT</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; a</TD+></TR+><TR+><TD CLASS="doc"+>function for selecting the value of the current fragment tree+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AupNT"+></A+><B+>upNT</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a)</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdownNT"+></A+><B+>downNT</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a)</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AleftNT"+></A+><B+>leftNT</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a)</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArightNT"+></A+><B+>rightNT</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a)</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ApreorderNT"+></A+><B+>preorderNT</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArevPreorderNT"+></A+><B+>revPreorderNT</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetChildrenNT"+></A+><B+>getChildrenNT</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ao%27"+></A+><B+>o'</B+> :: Monad m =&gt; (b -&gt; m c) -&gt; (a -&gt; m b) -&gt; a -&gt; m c</TD+></TR+><TR+><TD CLASS="doc"+>Kleisli composition:+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmaybeStar"+></A+><B+>maybeStar</B+> :: (a -&gt; Maybe a) -&gt; a -&gt; [a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmaybePlus"+></A+><B+>maybePlus</B+> :: (a -&gt; Maybe a) -&gt; a -&gt; [a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Data-Tree-Class.html view
@@ -0,0 +1,578 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Data.Tree.Class</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/Tree/Class.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Data.Tree.Class</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>Interface definition for trees+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> <A HREF="#t%3ATree"+>Tree</A+> t  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkTree"+>mkTree</A+> :: a -&gt; [t a] -&gt; t a</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkLeaf"+>mkLeaf</A+> :: a -&gt; t a</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisLeaf"+>isLeaf</A+> :: t a -&gt; Bool</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisInner"+>isInner</A+> :: t a -&gt; Bool</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetNode"+>getNode</A+> :: t a -&gt; a</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetChildren"+>getChildren</A+> :: t a -&gt; [t a]</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeNode"+>changeNode</A+> :: (a -&gt; a) -&gt; t a -&gt; t a</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeChildren"+>changeChildren</A+> :: ([t a] -&gt; [t a]) -&gt; t a -&gt; t a</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetNode"+>setNode</A+> :: a -&gt; t a -&gt; t a</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetChildren"+>setChildren</A+> :: [t a] -&gt; t a -&gt; t a</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AfoldTree"+>foldTree</A+> :: (a -&gt; [b] -&gt; b) -&gt; t a -&gt; b</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnodesTree"+>nodesTree</A+> :: t a -&gt; [a]</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AdepthTree"+>depthTree</A+> :: t a -&gt; Int</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcardTree"+>cardTree</A+> :: t a -&gt; Int</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AformatTree"+>formatTree</A+> :: (a -&gt; String) -&gt; t a -&gt; String</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> <A NAME="t%3ATree"+></A+><B+>Tree</B+> t  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>The interface for trees+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+>Methods</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A NAME="v%3AmkTree"+></A+><B+>mkTree</B+> :: a -&gt; [t a] -&gt; t a</TD+></TR+><TR+><TD CLASS="doc"+>tree construction: a new tree is constructed by a node attribute and a list of children+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkLeaf"+></A+><B+>mkLeaf</B+> :: a -&gt; t a</TD+></TR+><TR+><TD CLASS="doc"+><P+>leaf construction: leafs don't have any children+</P+><P+>definition: <TT+> mkLeaf n = mkTree n [] </TT+>+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisLeaf"+></A+><B+>isLeaf</B+> :: t a -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>leaf test: list of children empty?+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisInner"+></A+><B+>isInner</B+> :: t a -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>innner node test: <TT+> not . isLeaf </TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetNode"+></A+><B+>getNode</B+> :: t a -&gt; a</TD+></TR+><TR+><TD CLASS="doc"+>select node attribute+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetChildren"+></A+><B+>getChildren</B+> :: t a -&gt; [t a]</TD+></TR+><TR+><TD CLASS="doc"+>select children+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeNode"+></A+><B+>changeNode</B+> :: (a -&gt; a) -&gt; t a -&gt; t a</TD+></TR+><TR+><TD CLASS="doc"+>edit node attribute+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeChildren"+></A+><B+>changeChildren</B+> :: ([t a] -&gt; [t a]) -&gt; t a -&gt; t a</TD+></TR+><TR+><TD CLASS="doc"+>edit children+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetNode"+></A+><B+>setNode</B+> :: a -&gt; t a -&gt; t a</TD+></TR+><TR+><TD CLASS="doc"+>substitute node: <TT+> setNode n = changeNode (const n) </TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetChildren"+></A+><B+>setChildren</B+> :: [t a] -&gt; t a -&gt; t a</TD+></TR+><TR+><TD CLASS="doc"+>substitute children: <TT+> setChildren cl = changeChildren (const cl) </TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfoldTree"+></A+><B+>foldTree</B+> :: (a -&gt; [b] -&gt; b) -&gt; t a -&gt; b</TD+></TR+><TR+><TD CLASS="doc"+>fold for trees+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnodesTree"+></A+><B+>nodesTree</B+> :: t a -&gt; [a]</TD+></TR+><TR+><TD CLASS="doc"+>all nodes of a tree+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdepthTree"+></A+><B+>depthTree</B+> :: t a -&gt; Int</TD+></TR+><TR+><TD CLASS="doc"+>depth of a tree+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcardTree"+></A+><B+>cardTree</B+> :: t a -&gt; Int</TD+></TR+><TR+><TD CLASS="doc"+>number of nodes in a tree+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AformatTree"+></A+><B+>formatTree</B+> :: (a -&gt; String) -&gt; t a -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>format tree for readable trace output+</P+><P+>a <EM+>graphical</EM+> representation of the tree in text format+</P+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Tree')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:Tree" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Data-Tree-Class.html#t%3ATree"+>Tree</A+> <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Data-Tree-NTree-TypeDefs.html view
@@ -0,0 +1,377 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Data.Tree.NTree.TypeDefs</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/Tree/NTree/TypeDefs.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Data.Tree.NTree.TypeDefs</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: TypeDefs.hs,v 1.6 2005<EM+>09</EM+>02 17:09:39 hxml Exp $+</P+><P+>Interface definition for trees+</P+><P+>n-ary tree structure (rose trees)+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>module <A HREF="Data-Tree-Class.html"+>Data.Tree.Class</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3ANTree"+>NTree</A+> a = <A HREF="#v%3ANTree"+>NTree</A+> a (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>NTrees</A+> a)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ANTrees"+>NTrees</A+> a = [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AformatNTreeF"+>formatNTreeF</A+> :: (node -&gt; String) -&gt; (String -&gt; String) -&gt; (String -&gt; String) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; String -&gt; String</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Data-Tree-Class.html"+>Data.Tree.Class</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3ANTree"+></A+><B+>NTree</B+> a</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+><P+>n-ary ordered tree (rose trees)+</P+><P+>a tree consists of a node and a possible empty list of children.+ If the list of children is empty, the node is a leaf, else it's+ an inner node.+</P+><P+>NTree implements Eq, Ord, Show and Read+</P+></TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ANTree"+></A+><B+>NTree</B+> a (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>NTrees</A+> a)</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:NTree')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:NTree" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Functor <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Data-Tree-Class.html#t%3ATree"+>Tree</A+> <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+>(Eq a, ??? a) =&gt; Eq (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+>(Ord a, ??? a) =&gt; Ord (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+>(Read a, ??? a) =&gt; Read (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+>(Show a, ??? a) =&gt; Show (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+>(Typeable a, ??? a) =&gt; Typeable (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>XmlNode</A+> a =&gt; <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>XmlNode</A+> (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ANTrees"+></A+><B+>NTrees</B+> a = [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a]</TD+></TR+><TR+><TD CLASS="doc"+>shortcut for a sequence of n-ary trees+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AformatNTreeF"+></A+><B+>formatNTreeF</B+> :: (node -&gt; String) -&gt; (String -&gt; String) -&gt; (String -&gt; String) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>convert a tree into a pseudo graphical string reprsentation+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Text-XML-HXT-Arrow-DOMInterface.html view
@@ -0,0 +1,146 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Arrow.DOMInterface</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/DOMInterface.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Arrow.DOMInterface</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>The interface to the DOM data types and constants+</P+><P+>Version : $Id: DOMInterface.hs,v 1.2 2006<EM+>11</EM+>09 20:27:42 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-XmlKeywords.html"+>Text.XML.HXT.DOM.XmlKeywords</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-TypeDefs.html"+>Text.XML.HXT.DOM.TypeDefs</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-NamespacePredicates.html"+>Text.XML.HXT.DOM.NamespacePredicates</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-Util.html"+>Text.XML.HXT.DOM.Util</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Text-XML-HXT-Arrow-DTDProcessing.html view
@@ -0,0 +1,192 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Arrow.DTDProcessing</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/DTDProcessing.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Arrow.DTDProcessing</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: DTDProcessing.hs,v 1.9 2006<EM+>05</EM+>11 14:47:19 hxml Exp $+</P+><P+>DTD processing function for+   including external parts of a DTD+   parameter entity substitution and general entity substitution+</P+><P+>Implemtation completely done with arrows+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessDTD"+>processDTD</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessDTD"+></A+><B+>processDTD</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>a filter for DTD processing+</P+><P+>inclusion of external parts of DTD,+ parameter entity substitution+ conditional section evaluation+</P+><P+>input tree must represent a complete document including root node+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Text-XML-HXT-Arrow-DocumentInput.html view
@@ -0,0 +1,321 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Arrow.DocumentInput</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/DocumentInput.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Arrow.DocumentInput</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>state arrows for document input+</P+><P+>version $Id: DocumentInput.hs,v 1.12 2006<EM+>11</EM+>24 07:41:37 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetURIContents"+>getURIContents</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXmlContents"+>getXmlContents</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXmlEntityContents"+>getXmlEntityContents</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetEncoding"+>getEncoding</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AdecodeDocument"+>decodeDocument</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetURIContents"+></A+><B+>getURIContents</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXmlContents"+></A+><B+>getXmlContents</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Read the content of a document.+</P+><P+>This routine is usually called from <TT+><A HREF="Text-XML-HXT-Arrow-ProcessDocument.html#v%3AgetDocumentContents"+>getDocumentContents</A+></TT+>.+</P+><P+>The input must be a root node (constructed with <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aroot"+>root</A+></TT+>), usually without children.+   The attribute list contains all input parameters, e.g. URI or source file name, encoding preferences, ...+   If the source name is empty, the input is read from standard input.+</P+><P+>The source is transformed into an absolute URI. If the source is a relative URI, or a file name,+   it is expanded into an absolut URI with respect to the current base URI.+   The default base URI is of protocol &quot;file&quot; and points to the current working directory.+</P+><P+>The currently supported protocols are &quot;http&quot;, &quot;file&quot;, &quot;stdin:&quot; and &quot;string&quot;.+</P+><P+>The latter two are internal protocols. An uri of the form &quot;stdin:&quot; stands for the content of+   the standard input stream.+</P+><P+>&quot;string:some text&quot; means, that &quot;some text&quot; is taken as input.+   This internal protocol is used for reading from normal String values.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXmlEntityContents"+></A+><B+>getXmlEntityContents</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetEncoding"+></A+><B+>getEncoding</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdecodeDocument"+></A+><B+>decodeDocument</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Text-XML-HXT-Arrow-DocumentOutput.html view
@@ -0,0 +1,292 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Arrow.DocumentOutput</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/DocumentOutput.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Arrow.DocumentOutput</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>state arrows for document output+</P+><P+>version: $Id: DocumentOutput.hs,v 1.7 2006<EM+>11</EM+>02 09:34:08 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AputXmlDocument"+>putXmlDocument</A+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AputXmlTree"+>putXmlTree</A+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AputXmlSource"+>putXmlSource</A+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetOutputEncoding"+>getOutputEncoding</A+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AencodeDocument"+>encodeDocument</A+> :: Bool -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AputXmlDocument"+></A+><B+>putXmlDocument</B+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AputXmlTree"+></A+><B+>putXmlTree</B+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>write the tree representation of a document to a file+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AputXmlSource"+></A+><B+>putXmlSource</B+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>write a document with indentaion and line numers+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetOutputEncoding"+></A+><B+>getOutputEncoding</B+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AencodeDocument"+></A+><B+>encodeDocument</B+> :: Bool -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Text-XML-HXT-Arrow-Edit.html view
@@ -0,0 +1,1444 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Arrow.Edit</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/Edit.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Arrow.Edit</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: Edit.hs,v 1.8 2006<EM+>11</EM+>12 14:52:59 hxml Exp $+</P+><P+>common edit arrows+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AcanonicalizeAllNodes"+>canonicalizeAllNodes</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcanonicalizeForXPath"+>canonicalizeForXPath</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcanonicalizeContents"+>canonicalizeContents</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcollapseAllXText"+>collapseAllXText</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcollapseXText"+>collapseXText</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AescapeXmlDoc"+>escapeXmlDoc</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AescapeHtmlDoc"+>escapeHtmlDoc</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhaskellRepOfXmlDoc"+>haskellRepOfXmlDoc</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtreeRepOfXmlDoc"+>treeRepOfXmlDoc</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddHeadlineToXmlDoc"+>addHeadlineToXmlDoc</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AindentDoc"+>indentDoc</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnumberLinesInXmlDoc"+>numberLinesInXmlDoc</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AremoveComment"+>removeComment</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AremoveAllComment"+>removeAllComment</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AremoveWhiteSpace"+>removeWhiteSpace</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AremoveAllWhiteSpace"+>removeAllWhiteSpace</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AremoveDocWhiteSpace"+>removeDocWhiteSpace</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransfCdata"+>transfCdata</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransfAllCdata"+>transfAllCdata</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransfCharRef"+>transfCharRef</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransfAllCharRef"+>transfAllCharRef</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasXmlPi"+>hasXmlPi</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddXmlPi"+>addXmlPi</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddXmlPiEncoding"+>addXmlPiEncoding</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddDoctypeDecl"+>addDoctypeDecl</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; String -&gt; String -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddXHtmlDoctypeStrict"+>addXHtmlDoctypeStrict</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddXHtmlDoctypeTransitional"+>addXHtmlDoctypeTransitional</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddXHtmlDoctypeFrameset"+>addXHtmlDoctypeFrameset</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcanonicalizeAllNodes"+></A+><B+>canonicalizeAllNodes</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Applies some <A HREF="Canonical XML.html"+>Canonical XML</A+> rules to a document tree.+</P+><P+>The rule differ slightly for canonical XML and XPath in handling of comments+</P+><P+>Note: This is not the whole canonicalization as it is specified by the W3C+ Recommendation. Adding attribute defaults or sorting attributes in lexicographic+ order is done by the <TT+>transform</TT+> function of module <TT+>Text.XML.HXT.Validator.Validation</TT+>.+ Replacing entities or line feed normalization is done by the parser.+</P+><P+>Rules: remove DTD parts, processing instructions, comments and substitute char refs in attribute+ values and text+</P+><P+>Not implemented yet:+</P+><UL+><LI+> Whitespace within start and end tags is normalized+</LI+><LI+> Special characters in attribute values and character content are replaced by character references+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcanonicalizeForXPath"+></A+><B+>canonicalizeForXPath</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Canonicalize a tree for XPath+ Like <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcanonicalizeAllNodes"+>canonicalizeAllNodes</A+></TT+> but comment nodes are not removed+</P+><P+>see <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcanonicalizeAllNodes"+>canonicalizeAllNodes</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcanonicalizeContents"+></A+><B+>canonicalizeContents</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Canonicalize the contents of a document+</P+><P+>substitutes all char refs in text and attribute values,+ removes CDATA section and combines all sequences of resulting text+ nodes into a single text node+</P+><P+>see <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcanonicalizeAllNodes"+>canonicalizeAllNodes</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcollapseAllXText"+></A+><B+>collapseAllXText</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Applies collapseXText recursively.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcollapseXText"+>collapseXText</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcollapseXText"+></A+><B+>collapseXText</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>Collects sequences of text nodes in the list of children of a node into one single text node.+ This is useful, e.g. after char and entity reference substitution+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AescapeXmlDoc"+></A+><B+>escapeXmlDoc</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>escape all special XML chars into XML entity references or char references+</P+><P+>convert the special XML chars &lt; and &amp; in text nodes into prefefiened XML entity references,+ in attribute values also ', &quot;, &gt;, \n, \r and \t are converted into entity or char references,+ in comments nothing is converted (see XML standard 2.4, useful e.g. for JavaScript).+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AescapeHtmlDoc"+></A+><B+>escapeHtmlDoc</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>escape all special HTML chars into XHTML entity references or char references+</P+><P+>convert the special XML chars &lt; and &amp; and all none ASCII chars in text nodes into prefefiened XML or XHTML entity references,+ in attribute values also ', &quot;, &gt;, \n, \r and \t are converted into entity or char references,+ in comments nothing is converted+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhaskellRepOfXmlDoc"+></A+><B+>haskellRepOfXmlDoc</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>convert a document into a Haskell representation (with show).+</P+><P+>Useful for debugging and trace output.+ see also : <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AtreeRepOfXmlDoc"+>treeRepOfXmlDoc</A+></TT+>, <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AnumberLinesInXmlDoc"+>numberLinesInXmlDoc</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtreeRepOfXmlDoc"+></A+><B+>treeRepOfXmlDoc</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>convert a document into a text representation in tree form.+</P+><P+>Useful for debugging and trace output.+ see also : <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AhaskellRepOfXmlDoc"+>haskellRepOfXmlDoc</A+></TT+>, <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AnumberLinesInXmlDoc"+>numberLinesInXmlDoc</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddHeadlineToXmlDoc"+></A+><B+>addHeadlineToXmlDoc</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AindentDoc"+></A+><B+>indentDoc</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>filter for indenting a document tree for pretty printing.+</P+><P+>the tree is traversed for inserting whitespace for tag indentation.+</P+><P+>whitespace is only inserted or changed at places, where it isn't significant,+ is's not inserted between tags and text containing non whitespace chars.+</P+><P+>whitespace is only inserted or changed at places, where it's not significant.+ preserving whitespace may be controlled in a document tree+ by a tag attribute <TT+>xml:space</TT+>+</P+><P+>allowed values for this attribute are <TT+>default | preserve</TT+>.+</P+><P+>input is a complete document tree.+ result the semantically equivalent formatted tree.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveDocWhiteSpace"+>removeDocWhiteSpace</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnumberLinesInXmlDoc"+></A+><B+>numberLinesInXmlDoc</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>convert a document into a text and add line numbers to the text representation.+</P+><P+>Result is a root node with a single text node as child.+ Useful for debugging and trace output.+ see also : <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AhaskellRepOfXmlDoc"+>haskellRepOfXmlDoc</A+></TT+>, <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AtreeRepOfXmlDoc"+>treeRepOfXmlDoc</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveComment"+></A+><B+>removeComment</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>remove Comments: <TT+>none <TT+><A HREF="Control-Arrow-ArrowIf.html#v%3Awhen"+>when</A+></TT+> isCmt</TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveAllComment"+></A+><B+>removeAllComment</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>remove all comments recursively+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveWhiteSpace"+></A+><B+>removeWhiteSpace</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>simple filter for removing whitespace.+</P+><P+>no check on sigificant whitespace, e.g. in HTML &lt;pre&gt;-elements, is done.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveAllWhiteSpace"+>removeAllWhiteSpace</A+></TT+>, <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveDocWhiteSpace"+>removeDocWhiteSpace</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveAllWhiteSpace"+></A+><B+>removeAllWhiteSpace</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>simple recursive filter for removing all whitespace.+</P+><P+>removes all text nodes in a tree that consist only of whitespace.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveWhiteSpace"+>removeWhiteSpace</A+></TT+>, <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveDocWhiteSpace"+>removeDocWhiteSpace</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveDocWhiteSpace"+></A+><B+>removeDocWhiteSpace</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>filter for removing all not significant whitespace.+</P+><P+>the tree traversed for removing whitespace between elements,+ that was inserted for indentation and readability.+ whitespace is only removed at places, where it's not significat+ preserving whitespace may be controlled in a document tree+ by a tag attribute <TT+>xml:space</TT+>+</P+><P+>allowed values for this attribute are <TT+>default | preserve</TT+>+</P+><P+>input is root node of the document to be cleaned up,+ output the semantically equivalent simplified tree+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AindentDoc"+>indentDoc</A+></TT+>, <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveAllWhiteSpace"+>removeAllWhiteSpace</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransfCdata"+></A+><B+>transfCdata</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>converts a CDATA section node into a normal text node+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransfAllCdata"+></A+><B+>transfAllCdata</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>converts CDATA sections in whole document tree into normal text nodes+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransfCharRef"+></A+><B+>transfCharRef</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>converts character references to normal text+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransfAllCharRef"+></A+><B+>transfAllCharRef</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>recursively converts all character references to normal text+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasXmlPi"+></A+><B+>hasXmlPi</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddXmlPi"+></A+><B+>addXmlPi</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>add an &lt;?xml version=&quot;1.0&quot;?&gt; processing instruction+ if it's not already there+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddXmlPiEncoding"+></A+><B+>addXmlPiEncoding</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>add an encoding spec to the &lt;?xml version=&quot;1.0&quot;?&gt; processing instruction+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddDoctypeDecl"+></A+><B+>addDoctypeDecl</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; String -&gt; String -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>add a doctype declaration to a document+</P+><P+>The arguments are the root element name, the PUBLIC id and the SYSTEM id+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddXHtmlDoctypeStrict"+></A+><B+>addXHtmlDoctypeStrict</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>add an XHTML strict doctype declaration to a document+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddXHtmlDoctypeTransitional"+></A+><B+>addXHtmlDoctypeTransitional</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddXHtmlDoctypeFrameset"+></A+><B+>addXHtmlDoctypeFrameset</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Text-XML-HXT-Arrow-GeneralEntitySubstitution.html view
@@ -0,0 +1,182 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Arrow.GeneralEntitySubstitution</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/GeneralEntitySubstitution.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Arrow.GeneralEntitySubstitution</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: GeneralEntitySubstitution.hs,v 1.13 2006<EM+>05</EM+>01 18:56:24 hxml Exp $+</P+><P+>general entity substitution+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessGeneralEntities"+>processGeneralEntities</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessGeneralEntities"+></A+><B+>processGeneralEntities</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>substitution of general entities+</P+><P+>input: a complete document tree including root node+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Text-XML-HXT-Arrow-Namespace.html view
@@ -0,0 +1,653 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Arrow.Namespace</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/Namespace.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Arrow.Namespace</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: Namespace.hs,v 1.13 2006<EM+>11</EM+>12 14:52:59 hxml Exp $+</P+><P+>namespace specific arrows+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AattachNsEnv"+>attachNsEnv</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcleanupNamespaces"+>cleanupNamespaces</A+> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> (String, String) -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcollectNamespaceDecl"+>collectNamespaceDecl</A+> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> (String, String)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcollectPrefixUriPairs"+>collectPrefixUriPairs</A+> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> (String, String)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisNamespaceDeclAttr"+>isNamespaceDeclAttr</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetNamespaceDecl"+>getNamespaceDecl</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> (String, String)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessWithNsEnv"+>processWithNsEnv</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessWithNsEnvWithoutAttrl"+>processWithNsEnvWithoutAttrl</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AuniqueNamespaces"+>uniqueNamespaces</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AuniqueNamespacesFromDeclAndQNames"+>uniqueNamespacesFromDeclAndQNames</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AattachNsEnv"+></A+><B+>attachNsEnv</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>attach all valid namespace declarations to the attribute list of element nodes.+</P+><P+>This arrow is useful for document processing, that requires access to all namespace+ declarations at any element node, but which cannot be done with a simple <TT+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AprocessWithNsEnv"+>processWithNsEnv</A+></TT+>.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcleanupNamespaces"+></A+><B+>cleanupNamespaces</B+> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> (String, String) -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>does the real work for namespace cleanup.+</P+><P+>The parameter is used for collecting namespace uris and prefixes from the input tree+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcollectNamespaceDecl"+></A+><B+>collectNamespaceDecl</B+> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> (String, String)</TD+></TR+><TR+><TD CLASS="doc"+><P+>collect all namespace declarations contained in a document+</P+><P+>apply <TT+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AgetNamespaceDecl"+>getNamespaceDecl</A+></TT+> to a whole XmlTree+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcollectPrefixUriPairs"+></A+><B+>collectPrefixUriPairs</B+> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> (String, String)</TD+></TR+><TR+><TD CLASS="doc"+><P+>collect all (namePrefix, namespaceUri) pairs from a tree+</P+><P+>all qualified names are inspected, whether a namespace uri is defined,+ for these uris the prefix and uri is returned. This arrow is useful for+ namespace cleanup, e.g. for documents generated with XSLT. It can be used+ together with <TT+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AcollectNamespaceDecl"+>collectNamespaceDecl</A+></TT+> to <TT+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AcleanupNamespaces"+>cleanupNamespaces</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisNamespaceDeclAttr"+></A+><B+>isNamespaceDeclAttr</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether an attribute node contains an XML Namespace declaration+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetNamespaceDecl"+></A+><B+>getNamespaceDecl</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> (String, String)</TD+></TR+><TR+><TD CLASS="doc"+>get the namespace prefix and the namespace URI out of+ an attribute tree with a namespace declaration (see <TT+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AisNamespaceDeclAttr"+>isNamespaceDeclAttr</A+></TT+>)+ for all other nodes this arrow fails+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessWithNsEnv"+></A+><B+>processWithNsEnv</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>process a document tree with an arrow, containing always the+ valid namespace environment as extra parameter.+</P+><P+>The namespace environment is implemented as a <TT+><A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessWithNsEnvWithoutAttrl"+></A+><B+>processWithNsEnvWithoutAttrl</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>process all element nodes of a document tree with an arrow, containing always the+ valid namespace environment as extra parameter. Attribute lists are not processed.+</P+><P+>See also: <TT+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AprocessWithNsEnv"+>processWithNsEnv</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AuniqueNamespaces"+></A+><B+>uniqueNamespaces</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>generate unique namespaces and add all namespace declarations to the root element+</P+><P+>Calls <TT+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AcleanupNamespaces"+>cleanupNamespaces</A+></TT+> with <TT+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AcollectNamespaceDecl"+>collectNamespaceDecl</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AuniqueNamespacesFromDeclAndQNames"+></A+><B+>uniqueNamespacesFromDeclAndQNames</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>generate unique namespaces and add all namespace declarations for all prefix-uri pairs in all qualified names+</P+><P+>useful for cleanup of namespaces in generated documents.+ Calls <TT+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AcleanupNamespaces"+>cleanupNamespaces</A+></TT+> with <TT+> collectNamespaceDecl <A HREF="+"+>+</A+> collectPrefixUriPairs </TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Text-XML-HXT-Arrow-ParserInterface.html view
@@ -0,0 +1,404 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Arrow.ParserInterface</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/ParserInterface.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Arrow.ParserInterface</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>interface to the HXT XML and DTD parsers+</P+><P+>version: $Id: ParserInterface.hs,v 1.1 2006<EM+>05</EM+>01 18:56:24 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlDoc"+></A+><B+>parseXmlDoc</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a (String, String) <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlDTDPart"+></A+><B+>parseXmlDTDPart</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a (String, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>) <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlContent"+></A+><B+>parseXmlContent</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlEntityEncodingSpec"+></A+><B+>parseXmlEntityEncodingSpec</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlDocEncodingSpec"+></A+><B+>parseXmlDocEncodingSpec</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveEncodingSpec"+></A+><B+>removeEncodingSpec</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsubstXmlEntityRefs"+></A+><B+>substXmlEntityRefs</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlDTDdeclPart"+></A+><B+>parseXmlDTDdeclPart</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlDTDdecl"+></A+><B+>parseXmlDTDdecl</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlDTDEntityValue"+></A+><B+>parseXmlDTDEntityValue</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlAttrValue"+></A+><B+>parseXmlAttrValue</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlGeneralEntityValue"+></A+><B+>parseXmlGeneralEntityValue</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseHtmlDoc"+></A+><B+>parseHtmlDoc</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a (String, String) <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseHtmlContent"+></A+><B+>parseHtmlContent</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsubstHtmlEntityRefs"+></A+><B+>substHtmlEntityRefs</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateDoc"+></A+><B+>validateDoc</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransformDoc"+></A+><B+>transformDoc</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Text-XML-HXT-Arrow-ProcessDocument.html view
@@ -0,0 +1,422 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Arrow.ProcessDocument</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/ProcessDocument.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Arrow.ProcessDocument</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: ProcessDocument.hs,v 1.3 2006<EM+>08</EM+>30 16:20:52 hxml Exp $+</P+><P+>Compound arrows for reading, parsing, validating and writing XML documents+</P+><P+>All arrows use IO and a global state for options, errorhandling, ...+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseXmlDocument"+>parseXmlDocument</A+> :: Bool -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseHtmlDocument"+>parseHtmlDocument</A+> :: Bool -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateDocument"+>validateDocument</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ApropagateAndValidateNamespaces"+>propagateAndValidateNamespaces</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetDocumentContents"+>getDocumentContents</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlDocument"+></A+><B+>parseXmlDocument</B+> :: Bool -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>XML parser+</P+><P+>Input tree must be a root tree with a text tree as child containing the document to be parsed.+The parser generates from the input string a tree of a wellformed XML document,+processes the DTD (parameter substitution, conditional DTD parts, ...) and+substitutes all general entity references. Next step is character reference substitution.+Last step is the document validation.+Validation can be controlled by an extra parameter.+</P+><P+>Example:+</P+><PRE+> parseXmlDocument True    -- parse and validate document++ parseXmlDocument False   -- only parse document, don't validate+</PRE+><P+>This parser is useful for applications processing correct XML documents.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseHtmlDocument"+></A+><B+>parseHtmlDocument</B+> :: Bool -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>HTML parser+</P+><P+>Input tree must be a root tree with a text tree as child containing the document to be parsed.+The parser tries to parse everything as HTML, if the HTML document is not wellformed XML or if+errors occur, warnings are generated. The warnings can be issued, or suppressed.+</P+><P+>Example: <TT+> parseHtmlDocument True </TT+> : parse document and issue warnings+</P+><P+>This parser is useful for applications like web crawlers, where the pages may contain+arbitray errors, but the application is only interested in parts of the document, e.g. the plain text.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateDocument"+></A+><B+>validateDocument</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Document validation+</P+><P+>Input must be a complete document tree. The document+is validated with respect to the DTD spec.+Only useful for XML documents containing a DTD.+</P+><P+>If the document is valid, it is transformed with respect to the DTD,+normalization of attribute values, adding default values, sorting attributes by name,...+</P+><P+>If no error was found, result is the normalized tree,+else the error status is set in the list of attributes+of the root node &quot;/&quot; and the document content is removed from the tree.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ApropagateAndValidateNamespaces"+></A+><B+>propagateAndValidateNamespaces</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Namespace propagation+</P+><P+>Input must be a complete document tree. The namespace declarations+are evaluated and all element and attribute names are processed by+splitting the name into prefix, local part and namespace URI.+</P+><P+>Naames are checked with respect to the XML namespace definition+</P+><P+>If no error was found, result is the unchanged input tree,+else the error status is set in the list of attributes+of the root node &quot;/&quot; and the document content is removed from the tree.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetDocumentContents"+></A+><B+>getDocumentContents</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>creates a new document root, adds all options+   as attributes to the document root and calls <TT+><A HREF="Text-XML-HXT-Arrow-DocumentInput.html#v%3AgetXmlContents"+>getXmlContents</A+></TT+>.+</P+><P+>If the document name is the empty string, the document will be read+   from standard input.+</P+><P+>For supported protocols see <TT+><A HREF="Text-XML-HXT-Arrow-DocumentInput.html#v%3AgetXmlContents"+>getXmlContents</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Text-XML-HXT-Arrow-ReadDocument.html view
@@ -0,0 +1,598 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Arrow.ReadDocument</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/ReadDocument.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Arrow.ReadDocument</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: ReadDocument.hs,v 1.10 2006<EM+>11</EM+>24 07:41:37 hxml Exp $+</P+><P+>Compound arrows for reading an XML/HTML document or an XML/HTML string+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AreadDocument"+>readDocument</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AreadFromDocument"+>readFromDocument</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AreadString"+>readString</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AreadFromString"+>readFromString</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ahread"+>hread</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Axread"+>xread</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AreadDocument"+></A+><B+>readDocument</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>the main document input filter+</P+><P+>this filter can be configured by an option list, a value of type <A HREF="Attributes.html"+>Attributes</A+>+</P+><P+>available options:+</P+><UL+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_html"+>a_parse_html</A+></TT+>: use HTML parser, else use XML parser (default)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate"+>a_validate</A+></TT+> : validate document againsd DTD (default), else skip validation+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_relax_schema"+>a_relax_schema</A+></TT+> : validate document with Relax NG, the options value is the schema URI+                     this implies using XML parser, no validation against DTD, and canonicalisation+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_check_namespaces"+>a_check_namespaces</A+></TT+> : check namespaces, else skip namespace processing (default)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_canonicalize"+>a_canonicalize</A+></TT+> : canonicalize document (default), else skip canonicalization+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_preserve_comment"+>a_preserve_comment</A+></TT+> : preserve comments during canonicalization, else remove comments (default)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_remove_whitespace"+>a_remove_whitespace</A+></TT+> : remove all whitespace, used for document indentation, else skip this step (default)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_indent"+>a_indent</A+></TT+> : indent document by inserting whitespace, else skip this step (default)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_warnings"+>a_issue_warnings</A+></TT+> : issue warnings, when parsing HTML (default), else ignore HTML parser warnings+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_errors"+>a_issue_errors</A+></TT+> : issue all error messages on stderr (default), or ignore all error messages (default)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_trace"+>a_trace</A+></TT+> : trace level: values: 0 - 4+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_proxy"+>a_proxy</A+></TT+> : proxy for http access, e.g. www-cache:3128+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_use_curl"+>a_use_curl</A+></TT+> : for http access via external programm curl, default is native HTTP access+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_options_curl"+>a_options_curl</A+></TT+> : more options for external program curl+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_encoding"+>a_encoding</A+></TT+> : default document encoding (<TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf8"+>utf8</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisoLatin1"+>isoLatin1</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AusAscii"+>usAscii</A+></TT+>, ...)+</LI+></UL+><P+>All attributes not evaluated by readDocument are stored in the created document root node for easy access of the various+options in e.g. the input/output modules+</P+><P+>If the document name is the empty string or an uri of the form &quot;stdin:&quot;, the document is read from standard input.+</P+><P+>examples:+</P+><PRE+> readDocument [ ] &quot;test.xml&quot;+</PRE+><P+>reads and validates a document &quot;test.xml&quot;, no namespace propagation, only canonicalization is performed +</P+><PRE+> readDocument [ (a_validate, &quot;0&quot;)+              , (a_encoding, isoLatin1)+              ] &quot;test.xml&quot;+</PRE+><P+>reads document &quot;test.xml&quot; without validation, default encoding <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisoLatin1"+>isoLatin1</A+></TT+>.+</P+><PRE+> readDocument [ (a_parse_html, &quot;1&quot;)+              , (a_encoding, isoLatin1)+              ] &quot;&quot;+</PRE+><P+>reads a HTML document from standard input, no validation is done when parsing HTML, default encoding is <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisoLatin1"+>isoLatin1</A+></TT+>+</P+><PRE+> readDocument [ (a_parse_html,     &quot;1&quot;)+              , (a_proxy,          &quot;www-cache:3128&quot;)+              , (a_curl,           &quot;1&quot;)+              , (a_issue_warnings, &quot;0&quot;)+              ] &quot;http://www.haskell.org/&quot;+</PRE+><P+>reads Haskell homepage with HTML parser ignoring any warnings, with http access via external program curl and proxy &quot;www-cache&quot; at port 3128+</P+><PRE+> readDocument [ (a_validate,          &quot;1&quot;)+              , (a_check_namespace,   &quot;1&quot;)+              , (a_remove_whitespace, &quot;1&quot;)+              , (a_trace,             &quot;2&quot;)+              ] &quot;http://www.w3c.org/&quot;+</PRE+><P+>read w3c home page (xhtml), validate and check namespaces, remove whitespace between tags, trace activities with level 2+</P+><P+>for minimal complete examples see <TT+><A HREF="Text-XML-HXT-Arrow-WriteDocument.html#v%3AwriteDocument"+>writeDocument</A+></TT+> and <TT+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3ArunX"+>runX</A+></TT+>, the main starting point for running an XML arrow.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AreadFromDocument"+></A+><B+>readFromDocument</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>the arrow version of <TT+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadDocument"+>readDocument</A+></TT+>, the arrow input is the source URI+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AreadString"+></A+><B+>readString</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>read a document that is stored in a normal Haskell String+</P+><P+>the same function as readDocument, but the parameter forms the input.+ All options available for <TT+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadDocument"+>readDocument</A+></TT+> are applicable for readString.+</P+><P+>Default encoding: No encoding is done, the String argument is taken as Unicode string+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AreadFromString"+></A+><B+>readFromString</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>the arrow version of <TT+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadString"+>readString</A+></TT+>, the arrow input is the source URI+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ahread"+></A+><B+>hread</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>parse a string as HTML content, substitute all HTML entity refs and canonicalize tree+ (substitute char refs, ...). Errors are ignored.+</P+><P+>A simpler version of <TT+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadFromString"+>readFromString</A+></TT+> but with less functionality.+ Does not run in the IO monad+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Axread"+></A+><B+>xread</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>parse a string as XML content, substitute all predefined XML entity refs and canonicalize tree+ (substitute char refs, ...)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Text-XML-HXT-Arrow-WriteDocument.html view
@@ -0,0 +1,367 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Arrow.WriteDocument</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/WriteDocument.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Arrow.WriteDocument</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: WriteDocument.hs,v 1.8 2006<EM+>11</EM+>09 20:27:42 hxml Exp $+</P+><P+>Compound arrow for writing XML documents+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AwriteDocument"+>writeDocument</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AwriteDocumentToString"+>writeDocumentToString</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AwriteDocument"+></A+><B+>writeDocument</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>the main filter for writing documents+</P+><P+>this filter can be configured by an option list like <TT+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadDocument"+>readDocument</A+></TT+>+</P+><P+>usage: <TT+> writeDocument optionList destination </TT+>+</P+><P+>if <TT+> destination </TT+> is the empty string or &quot;-&quot;, stdout is used as output device+</P+><P+>available options are+</P+><UL+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_indent"+>a_indent</A+></TT+> : indent document for readability, (default: no indentation)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_remove_whitespace"+>a_remove_whitespace</A+></TT+> : remove all redundant whitespace for shorten text (default: no removal)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_encoding"+>a_output_encoding</A+></TT+> : encoding of document, default is <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_encoding"+>a_encoding</A+></TT+> or <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf8"+>utf8</A+></TT+>+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_xml"+>a_output_xml</A+></TT+> : (default) issue XML: quote special XML chars &gt;,&lt;,&quot;,',&amp; where neccessary+                   add XML processing instruction+                   and encode document with respect to <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_encoding"+>a_output_encoding</A+></TT+>,+                   if explicitly switched of, the plain text is issued, this is useful+                   for non XML output, e.g. generated Haskell code, LaTex, Java, ...+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_html"+>a_output_html</A+></TT+> : issue XHTML: quote alle XML chars, use HTML entity refs or char refs for none ASCII chars+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_no_xml_pi"+>a_no_xml_pi</A+></TT+> : suppress generation of &lt;?xml ... ?&gt; processing instruction+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_show_tree"+>a_show_tree</A+></TT+> : show tree representation of document (for debugging)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_show_haskell"+>a_show_haskell</A+></TT+> : show Haskell representaion of document (for debugging)+</LI+></UL+><P+>a minimal main program for copying a document+ has the following structure:+</P+><PRE+> module Main+ where+ + import Text.XML.HXT.Arrow+ + main        :: IO ()+ main+     = do+       runX ( readDocument  [] &quot;hello.xml&quot;+              &gt;&gt;&gt;+              writeDocument [] &quot;bye.xml&quot;+            )+       return ()+</PRE+><P+>an example for copying a document to standard output with tracing and evaluation of+error code is:+</P+><PRE+> module Main+ where+ + import Text.XML.HXT.Arrow+ import System.Exit+ + main        :: IO ()+ main+     = do+       [rc] &lt;- runX ( readDocument  [ (a_trace, &quot;1&quot;)+                                    ] &quot;hello.xml&quot;+                      &gt;&gt;&gt;+                      writeDocument [ (a_output_encoding, isoLatin1)+                                    ] &quot;-&quot;        -- output to stdout+                      &gt;&gt;&gt;+                      getErrStatus+                    )+       exitWith ( if rc &gt;= c_err+                  then ExitFailure 1+                  else ExitSuccess+                )+</PRE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AwriteDocumentToString"+></A+><B+>writeDocumentToString</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>Convert a document into a string. Formatiing is done the same way+ and with the same options as in <TT+><A HREF="Text-XML-HXT-Arrow-WriteDocument.html#v%3AwriteDocument"+>writeDocument</A+></TT+>.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Text-XML-HXT-Arrow-XmlArrow.html view
@@ -0,0 +1,4027 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Arrow.XmlArrow</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/XmlArrow.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Arrow.XmlArrow</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: XmlArrow.hs,v 1.34 2006<EM+>11</EM+>02 16:43:39 hxml Exp $+</P+><P+>Basic arrows for processing XML documents+</P+><P+>All arrows use IO and a global state for options, errorhandling, ...+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> (Arrow a, <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a, <A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"+>ArrowTree</A+> a) =&gt; <A HREF="#t%3AArrowXml"+>ArrowXml</A+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AisText"+>isText</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisCharRef"+>isCharRef</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisEntityRef"+>isEntityRef</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisCmt"+>isCmt</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisCdata"+>isCdata</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisPi"+>isPi</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlPi"+>isXmlPi</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisElem"+>isElem</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisDTD"+>isDTD</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisAttr"+>isAttr</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisError"+>isError</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisRoot"+>isRoot</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasText"+>hasText</A+> :: (String -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasNameWith"+>hasNameWith</A+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasQName"+>hasQName</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasName"+>hasName</A+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasLocalPart"+>hasLocalPart</A+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasNamePrefix"+>hasNamePrefix</A+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasNamespaceUri"+>hasNamespaceUri</A+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasAttr"+>hasAttr</A+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasQAttr"+>hasQAttr</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasAttrValue"+>hasAttrValue</A+> :: String -&gt; (String -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasQAttrValue"+>hasQAttrValue</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; (String -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkText"+>mkText</A+> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkCharRef"+>mkCharRef</A+> :: a Int <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkEntityRef"+>mkEntityRef</A+> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkCmt"+>mkCmt</A+> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkCdata"+>mkCdata</A+> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkError"+>mkError</A+> :: Int -&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkElement"+>mkElement</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkAttr"+>mkAttr</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkPi"+>mkPi</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Amkqelem"+>mkqelem</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>] -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Amkelem"+>mkelem</A+> :: String -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>] -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aaelem"+>aelem</A+> :: String -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aselem"+>selem</A+> :: String -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aeelem"+>eelem</A+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aroot"+>root</A+> :: [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>] -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aqattr"+>qattr</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aattr"+>attr</A+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Atxt"+>txt</A+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcharRef"+>charRef</A+> :: Int -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AentityRef"+>entityRef</A+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Acmt"+>cmt</A+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Awarn"+>warn</A+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aerr"+>err</A+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Afatal"+>fatal</A+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aspi"+>spi</A+> :: String -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Asqattr"+>sqattr</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Asattr"+>sattr</A+> :: String -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetText"+>getText</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetCharRef"+>getCharRef</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> Int</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetEntityRef"+>getEntityRef</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetCmt"+>getCmt</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetCdata"+>getCdata</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetPiName"+>getPiName</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetPiContent"+>getPiContent</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetElemName"+>getElemName</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetAttrl"+>getAttrl</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetDTDPart"+>getDTDPart</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetDTDAttrl"+>getDTDAttrl</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetAttrName"+>getAttrName</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetErrorLevel"+>getErrorLevel</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> Int</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetErrorMsg"+>getErrorMsg</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetQName"+>getQName</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetName"+>getName</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetUniversalName"+>getUniversalName</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetUniversalUri"+>getUniversalUri</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetLocalPart"+>getLocalPart</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetNamePrefix"+>getNamePrefix</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetNamespaceUri"+>getNamespaceUri</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetAttrValue"+>getAttrValue</A+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetAttrValue0"+>getAttrValue0</A+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetQAttrValue"+>getQAttrValue</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetQAttrValue0"+>getQAttrValue0</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeText"+>changeText</A+> :: (String -&gt; String) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeCmt"+>changeCmt</A+> :: (String -&gt; String) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeQName"+>changeQName</A+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeElemName"+>changeElemName</A+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeAttrName"+>changeAttrName</A+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangePiName"+>changePiName</A+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeAttrValue"+>changeAttrValue</A+> :: (String -&gt; String) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeAttrl"+>changeAttrl</A+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+>) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetQName"+>setQName</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetElemName"+>setElemName</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetAttrName"+>setAttrName</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetPiName"+>setPiName</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetAttrl"+>setAttrl</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddAttrl"+>addAttrl</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddAttr"+>addAttr</A+> :: String -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AremoveAttr"+>removeAttr</A+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AremoveQAttr"+>removeQAttr</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessAttrl"+>processAttrl</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessTopDownWithAttrl"+>processTopDownWithAttrl</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%2B%3D"+>(+=)</A+> :: a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Axshow"+>xshow</A+> :: a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n String</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; <A HREF="#t%3AArrowDTD"+>ArrowDTD</A+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AisDTDDoctype"+>isDTDDoctype</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisDTDElement"+>isDTDElement</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisDTDContent"+>isDTDContent</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisDTDAttlist"+>isDTDAttlist</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisDTDEntity"+>isDTDEntity</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisDTDPEntity"+>isDTDPEntity</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisDTDNotation"+>isDTDNotation</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisDTDCondSect"+>isDTDCondSect</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisDTDName"+>isDTDName</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisDTDPERef"+>isDTDPERef</A+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasDTDAttr"+>hasDTDAttr</A+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetDTDAttrValue"+>getDTDAttrValue</A+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetDTDAttrValue"+>setDTDAttrValue</A+> :: String -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkDTDElem"+>mkDTDElem</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkDTDDoctype"+>mkDTDDoctype</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkDTDElement"+>mkDTDElement</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkDTDEntity"+>mkDTDEntity</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkDTDPEntity"+>mkDTDPEntity</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> (Arrow a, <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a, <A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"+>ArrowTree</A+> a) =&gt; <A NAME="t%3AArrowXml"+></A+><B+>ArrowXml</B+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+>Methods</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A NAME="v%3AisText"+></A+><B+>isText</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test for text nodes+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisCharRef"+></A+><B+>isCharRef</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test for char reference, used during parsing+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisEntityRef"+></A+><B+>isEntityRef</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test for entity reference, used during parsing+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisCmt"+></A+><B+>isCmt</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test for comment+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisCdata"+></A+><B+>isCdata</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test for CDATA section, used during parsing+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisPi"+></A+><B+>isPi</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test for processing instruction+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlPi"+></A+><B+>isXmlPi</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test for processing instruction &lt;?xml ...&gt;+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisElem"+></A+><B+>isElem</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test for element+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisDTD"+></A+><B+>isDTD</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test for DTD part, used during parsing+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisAttr"+></A+><B+>isAttr</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test for attribute tree+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisError"+></A+><B+>isError</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test for error message+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisRoot"+></A+><B+>isRoot</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test for root node (element with name &quot;/&quot;)+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasText"+></A+><B+>hasText</B+> :: (String -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>test for text nodes with text, for which a predicate holds+</P+><P+>example: <TT+>hasText (all (`elem` &quot; \t\n&quot;))</TT+> check for text nodes with only whitespace content+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasNameWith"+></A+><B+>hasNameWith</B+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether a node (element, attribute, pi) has a name with a special property+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasQName"+></A+><B+>hasQName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether a node (element, attribute, pi) has a specific qualified name+ useful only after namespace propagation+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasName"+></A+><B+>hasName</B+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether a node has a specific name (prefix:localPart ore localPart),+ generally useful, even without namespace handling+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasLocalPart"+></A+><B+>hasLocalPart</B+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether a node has a specific name as local part,+ useful only after namespace propagation+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasNamePrefix"+></A+><B+>hasNamePrefix</B+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether a node has a specific name prefix,+ useful only after namespace propagation+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasNamespaceUri"+></A+><B+>hasNamespaceUri</B+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether a node has a specific namespace URI+ useful only after namespace propagation+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasAttr"+></A+><B+>hasAttr</B+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether an element node has an attribute node with a specific name+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasQAttr"+></A+><B+>hasQAttr</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether an element node has an attribute node with a specific qualified name+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasAttrValue"+></A+><B+>hasAttrValue</B+> :: String -&gt; (String -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether an element node has an attribute with a specific value+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasQAttrValue"+></A+><B+>hasQAttrValue</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; (String -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether an element node has an attribute with a qualified name and a specific value+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkText"+></A+><B+>mkText</B+> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>text node construction arrow+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkCharRef"+></A+><B+>mkCharRef</B+> :: a Int <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>char reference construction arrow, useful for document output+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkEntityRef"+></A+><B+>mkEntityRef</B+> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>entity reference construction arrow, useful for document output+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkCmt"+></A+><B+>mkCmt</B+> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>comment node construction, useful for document output+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkCdata"+></A+><B+>mkCdata</B+> :: a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>CDATA construction, useful for document output+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkError"+></A+><B+>mkError</B+> :: Int -&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>error node construction, useful only internally+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkElement"+></A+><B+>mkElement</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>element construction:+ | the attributes and the content of the element are computed by applying arrows+ to the input+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkAttr"+></A+><B+>mkAttr</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>attribute node construction:+ | the attribute value is computed by applying an arrow to the input+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkPi"+></A+><B+>mkPi</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>processing instruction construction:+ | the content of the processing instruction is computed by applying an arrow to the input+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Amkqelem"+></A+><B+>mkqelem</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>] -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>convenient arrow for element construction, more comfortable variant of <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"+>mkElement</A+></TT+>+</P+><P+>example for simplifying <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"+>mkElement</A+></TT+> :+</P+><PRE+> mkElement qn (a1 &lt;+&gt; ... &lt;+&gt; ai) (c1 &lt;+&gt; ... &lt;+&gt; cj)+</PRE+><P+>equals+</P+><PRE+> mkqelem qn [a1,...,ai] [c1,...,cj]+</PRE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Amkelem"+></A+><B+>mkelem</B+> :: String -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>] -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>convenient arrow for element construction with strings instead of qualified names as tagnames, see also <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"+>mkElement</A+></TT+> and <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Amkelem"+>mkelem</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aaelem"+></A+><B+>aelem</B+> :: String -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>convenient arrow for element constrution with attributes but without content, simple variant of <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Amkelem"+>mkelem</A+></TT+> and <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"+>mkElement</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aselem"+></A+><B+>selem</B+> :: String -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>convenient arrow for simple element constrution without attributes, simple variant of <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Amkelem"+>mkelem</A+></TT+> and <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"+>mkElement</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aeelem"+></A+><B+>eelem</B+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>convenient arrow for constrution of empty elements without attributes, simple variant of <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Amkelem"+>mkelem</A+></TT+> and <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"+>mkElement</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aroot"+></A+><B+>root</B+> :: [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>] -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>] -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>construction of an element node with name &quot;/&quot; for document roots+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aqattr"+></A+><B+>qattr</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>alias for <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkAttr"+>mkAttr</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aattr"+></A+><B+>attr</B+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>convenient arrow for attribute constrution, simple variant of <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkAttr"+>mkAttr</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Atxt"+></A+><B+>txt</B+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>constant arrow for text nodes+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcharRef"+></A+><B+>charRef</B+> :: Int -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>constant arrow for char reference nodes+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AentityRef"+></A+><B+>entityRef</B+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>constant arrow for entity reference nodes+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Acmt"+></A+><B+>cmt</B+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>constant arrow for comment+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Awarn"+></A+><B+>warn</B+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>constant arrow for warning+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aerr"+></A+><B+>err</B+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>constant arrow for errors+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Afatal"+></A+><B+>fatal</B+> :: String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>constant arrow for fatal errors+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aspi"+></A+><B+>spi</B+> :: String -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>constant arrow for simple processing instructions, see <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkPi"+>mkPi</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Asqattr"+></A+><B+>sqattr</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>constant arrow for attribute nodes, attribute name is a qualified name and value is a text,+ | see also <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkAttr"+>mkAttr</A+></TT+>, <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aqattr"+>qattr</A+></TT+>, <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aattr"+>attr</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Asattr"+></A+><B+>sattr</B+> :: String -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>constant arrow for attribute nodes, attribute name and value are+ | given by parameters, see <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkAttr"+>mkAttr</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetText"+></A+><B+>getText</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>select the text of a text node+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetCharRef"+></A+><B+>getCharRef</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> Int</TD+></TR+><TR+><TD CLASS="doc"+>select the value of a char reference+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetEntityRef"+></A+><B+>getEntityRef</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>select the name of a entity reference node+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetCmt"+></A+><B+>getCmt</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>select the comment of a comment node+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetCdata"+></A+><B+>getCdata</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>select the content of a CDATA node+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetPiName"+></A+><B+>getPiName</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="doc"+>select the name of a processing instruction+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetPiContent"+></A+><B+>getPiContent</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>select the content of a processing instruction+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetElemName"+></A+><B+>getElemName</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="doc"+>select the name of an element node+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetAttrl"+></A+><B+>getAttrl</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>select the attribute list of an element node+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetDTDPart"+></A+><B+>getDTDPart</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+></TD+></TR+><TR+><TD CLASS="doc"+>select the DTD type of a DTD node+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetDTDAttrl"+></A+><B+>getDTDAttrl</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+></TD+></TR+><TR+><TD CLASS="doc"+>select the DTD attributes of a DTD node+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetAttrName"+></A+><B+>getAttrName</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="doc"+>select the name of an attribute+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetErrorLevel"+></A+><B+>getErrorLevel</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> Int</TD+></TR+><TR+><TD CLASS="doc"+>select the error level (c_warn, c_err, c_fatal) from an error node+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetErrorMsg"+></A+><B+>getErrorMsg</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>select the error message from an error node+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetQName"+></A+><B+>getQName</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="doc"+>select the qualified name from an element, attribute or pi+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetName"+></A+><B+>getName</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>select the prefix:localPart or localPart from an element, attribute or pi+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetUniversalName"+></A+><B+>getUniversalName</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>select the univeral name ({namespace URI} ++ localPart)+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetUniversalUri"+></A+><B+>getUniversalUri</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>select the univeral name (namespace URI ++ localPart)+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetLocalPart"+></A+><B+>getLocalPart</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>select the local part+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetNamePrefix"+></A+><B+>getNamePrefix</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>select the name prefix+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetNamespaceUri"+></A+><B+>getNamespaceUri</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>select the namespace URI+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetAttrValue"+></A+><B+>getAttrValue</B+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>select the value of an attribute of an element node,+ always succeeds with empty string as default value &quot;&quot;+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetAttrValue0"+></A+><B+>getAttrValue0</B+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>like <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrValue"+>getAttrValue</A+></TT+>, but fails if the attribute does not exist+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetQAttrValue"+></A+><B+>getQAttrValue</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>like <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrValue"+>getAttrValue</A+></TT+>, but select the value of an attribute given by a qualified name,+ always succeeds with empty string as default value &quot;&quot;+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetQAttrValue0"+></A+><B+>getQAttrValue0</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="doc"+>like <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetQAttrValue"+>getQAttrValue</A+></TT+>, but fails if attribute does not exist+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeText"+></A+><B+>changeText</B+> :: (String -&gt; String) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>edit the string of a text node+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeCmt"+></A+><B+>changeCmt</B+> :: (String -&gt; String) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>edit the comment string of a comment node+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeQName"+></A+><B+>changeQName</B+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>edit an element-, attribute- or pi- name+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeElemName"+></A+><B+>changeElemName</B+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>edit an element name+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeAttrName"+></A+><B+>changeAttrName</B+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>edit an attribute name+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangePiName"+></A+><B+>changePiName</B+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>edit a pi name+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeAttrValue"+></A+><B+>changeAttrValue</B+> :: (String -&gt; String) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>edit an attribute value+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeAttrl"+></A+><B+>changeAttrl</B+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+>) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>edit an attribute list of an element node+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetQName"+></A+><B+>setQName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>replace an element, attribute or pi name+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetElemName"+></A+><B+>setElemName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>replace an element name+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetAttrName"+></A+><B+>setAttrName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>replace an attribute name+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetPiName"+></A+><B+>setPiName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>replace an element name+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetAttrl"+></A+><B+>setAttrl</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>replace an atribute list of an element node+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddAttrl"+></A+><B+>addAttrl</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>add a list of attributes list to an element+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddAttr"+></A+><B+>addAttr</B+> :: String -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>add (or replace) an attribute+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveAttr"+></A+><B+>removeAttr</B+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>remove an attribute+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveQAttr"+></A+><B+>removeQAttr</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>remove an attribute with a qualified name+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessAttrl"+></A+><B+>processAttrl</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>process the attributes of an element node with an arrow+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessTopDownWithAttrl"+></A+><B+>processTopDownWithAttrl</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>process a whole tree inclusive attribute list of element nodes+ see also: <TT+><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessTopDown"+>processTopDown</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%2B%3D"+></A+><B+>(+=)</B+> :: a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>convenient op for adding attributes or children to a node+</P+><P+>usage: <TT+> tf += cf </TT+>+</P+><P+>the <TT+>tf</TT+> arrow computes an element node, and all trees computed by <TT+>cf</TT+> are+ added to this node, if a tree is an attribute, it is inserted in the attribute list+ else it is appended to the content list.+</P+><P+>attention: do not build long content list this way because <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3A%2B%3D"+>+=</A+></TT+> is implemented by +++</P+><P+>examples:+</P+><PRE+> eelem &quot;a&quot;+   += sattr &quot;href&quot; &quot;page.html&quot;+   += sattr &quot;name&quot; &quot;here&quot;+   += txt &quot;look here&quot;+</PRE+><P+>is the same as+</P+><PRE+> mkelem [ sattr &quot;href&quot; &quot;page.html&quot;+        , sattr &quot;name&quot; &quot;here&quot;+        ]+        [ txt &quot;look here&quot; ]+</PRE+><P+>and results in the XML fragment: &lt;a href=&quot;page.html&quot; name=&quot;here&quot;&gt;look here&lt;/a&gt;+</P+><P+>advantage of the <TT+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3A%2B%3D"+>+=</A+></TT+> operator is, that attributes and content can be added+ any time step by step.+ if <TT+>tf</TT+> computes a whole list of trees, e.g. a list of &quot;td&quot; or &quot;tr&quot; elements,+ the attributes or content is added to all trees. useful for adding &quot;class&quot; or &quot;style&quot; attributes+ to table elements.+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Axshow"+></A+><B+>xshow</B+> :: a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n String</TD+></TR+><TR+><TD CLASS="doc"+>apply an arrow to the input and convert the resulting XML trees into a string representation+</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ArrowXml')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:ArrowXml" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; <A NAME="t%3AArrowDTD"+></A+><B+>ArrowDTD</B+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+><P+>Document Type Definition arrows+</P+><P+>These are separated, because they are not needed for document processing,+only when processing the DTD, e.g. for generating access funtions for the toolbox+from a DTD (se example DTDtoHaskell in the examples directory)+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+>Methods</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A NAME="v%3AisDTDDoctype"+></A+><B+>isDTDDoctype</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisDTDElement"+></A+><B+>isDTDElement</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisDTDContent"+></A+><B+>isDTDContent</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisDTDAttlist"+></A+><B+>isDTDAttlist</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisDTDEntity"+></A+><B+>isDTDEntity</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisDTDPEntity"+></A+><B+>isDTDPEntity</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisDTDNotation"+></A+><B+>isDTDNotation</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisDTDCondSect"+></A+><B+>isDTDCondSect</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisDTDName"+></A+><B+>isDTDName</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisDTDPERef"+></A+><B+>isDTDPERef</B+> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasDTDAttr"+></A+><B+>hasDTDAttr</B+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetDTDAttrValue"+></A+><B+>getDTDAttrValue</B+> :: String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetDTDAttrValue"+></A+><B+>setDTDAttrValue</B+> :: String -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkDTDElem"+></A+><B+>mkDTDElem</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkDTDDoctype"+></A+><B+>mkDTDDoctype</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkDTDElement"+></A+><B+>mkDTDElement</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkDTDEntity"+></A+><B+>mkDTDEntity</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkDTDPEntity"+></A+><B+>mkDTDPEntity</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ArrowDTD')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:ArrowDTD" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"+>ArrowDTD</A+> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>IOLA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"+>ArrowDTD</A+> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>LA</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"+>ArrowDTD</A+> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> s)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"+>ArrowDTD</A+> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>SLA</A+> s)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Text-XML-HXT-Arrow-XmlIOStateArrow.html view
@@ -0,0 +1,2904 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Arrow.XmlIOStateArrow</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/XmlIOStateArrow.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Arrow.XmlIOStateArrow</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+><B+>Contents</B+></TD+></TR+><TR+><TD+><DL+><DT+><A HREF="#1"+>Data Types+</A+></DT+><DT+><A HREF="#2"+>Running Arrows+</A+></DT+><DT+><A HREF="#3"+>User State Manipulation+</A+></DT+><DT+><A HREF="#4"+>Global System State Access+</A+></DT+><DT+><A HREF="#5"+>Error Message Handling+</A+></DT+><DT+><A HREF="#6"+>Document Base+</A+></DT+><DT+><A HREF="#7"+>Tracing+</A+></DT+><DT+><A HREF="#8"+>URI Manipulation+</A+></DT+></DL+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: XmlIOStateArrow.hs,v 1.39 2006<EM+>11</EM+>09 20:27:42 hxml Exp $+</P+><P+>the basic state arrows for XML processing+</P+><P+>A state is needed for global processing options,+like encoding options, document base URI, trace levels+and error message handling+</P+><P+>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.+</P+><P+>The user defined part of the store is in the default case empty, defined as ().+It can be extended with an arbitray data type+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AXIOState"+>XIOState</A+> us = <A HREF="#v%3AXIOState"+>XIOState</A+> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="recfield"+><A HREF="#v%3Axio_sysState"+>xio_sysState</A+> :: !<A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"+>XIOSysState</A+></TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3Axio_userState"+>xio_userState</A+> :: !us</TD+></TR+></TABLE+>}</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AXIOSysState"+>XIOSysState</A+>  = <A HREF="#v%3AXIOSys"+>XIOSys</A+> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="recfield"+><A HREF="#v%3Axio_trace"+>xio_trace</A+> :: !Int</TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3Axio_errorStatus"+>xio_errorStatus</A+> :: !Int</TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3Axio_errorModule"+>xio_errorModule</A+> :: !String</TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3Axio_errorMsgHandler"+>xio_errorMsgHandler</A+> :: (String -&gt; IO ())</TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3Axio_errorMsgCollect"+>xio_errorMsgCollect</A+> :: !Bool</TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3Axio_errorMsgList"+>xio_errorMsgList</A+> :: !<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3Axio_baseURI"+>xio_baseURI</A+> :: !String</TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3Axio_defaultBaseURI"+>xio_defaultBaseURI</A+> :: !String</TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3Axio_attrList"+>xio_attrList</A+> :: !(<A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+>)</TD+></TR+></TABLE+>}</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AIOStateArrow"+>IOStateArrow</A+> s b c = <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> (<A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOState"+>XIOState</A+> s) b c</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AIOSArrow"+>IOSArrow</A+> b c = <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> () b c</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AinitialState"+>initialState</A+> :: us -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOState"+>XIOState</A+> us</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AinitialSysState"+>initialSysState</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"+>XIOSysState</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ArunX"+>runX</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> c -&gt; IO [c]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetUserState"+>getUserState</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b s</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetUserState"+>setUserState</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s s s</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeUserState"+>changeUserState</A+> :: (b -&gt; s -&gt; s) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AwithExtendedUserState"+>withExtendedUserState</A+> :: s1 -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> (s1, s0) b c -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s0 b c</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AwithOtherUserState"+>withOtherUserState</A+> :: s1 -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s1 b c -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s0 b c</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetSysParam"+>getSysParam</A+> :: (<A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"+>XIOSysState</A+> -&gt; c) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b c</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeSysParam"+>changeSysParam</A+> :: (b -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"+>XIOSysState</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"+>XIOSysState</A+>) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetParamList"+>setParamList</A+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetParam"+>setParam</A+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AunsetParam"+>unsetParam</A+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetParam"+>getParam</A+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetAllParams"+>getAllParams</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b (<A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+>)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetParamString"+>setParamString</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetParamString"+>getParamString</A+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetParamInt"+>setParamInt</A+> :: String -&gt; Int -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetParamInt"+>getParamInt</A+> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AclearErrStatus"+>clearErrStatus</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetErrStatus"+>setErrStatus</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s Int Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetErrStatus"+>getErrStatus</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetErrMsgStatus"+>setErrMsgStatus</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetErrorMsgHandler"+>setErrorMsgHandler</A+> :: Bool -&gt; (String -&gt; IO ()) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AerrorMsgStderr"+>errorMsgStderr</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AerrorMsgCollect"+>errorMsgCollect</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AerrorMsgStderrAndCollect"+>errorMsgStderrAndCollect</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AerrorMsgIgnore"+>errorMsgIgnore</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetErrorMessages"+>getErrorMessages</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AfilterErrorMsg"+>filterErrorMsg</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AissueWarn"+>issueWarn</A+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AissueErr"+>issueErr</A+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AissueFatal"+>issueFatal</A+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetDocumentStatus"+>setDocumentStatus</A+> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetDocumentStatusFromSystemState"+>setDocumentStatusFromSystemState</A+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AdocumentStatusOk"+>documentStatusOk</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetBaseURI"+>setBaseURI</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s String String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetBaseURI"+>getBaseURI</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeBaseURI"+>changeBaseURI</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s String String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetDefaultBaseURI"+>setDefaultBaseURI</A+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetDefaultBaseURI"+>getDefaultBaseURI</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ArunInLocalURIContext"+>runInLocalURIContext</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b c -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b c</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetTraceLevel"+>setTraceLevel</A+> :: Int -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetTraceLevel"+>getTraceLevel</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AwithTraceLevel"+>withTraceLevel</A+> :: Int -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b c -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b c</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Atrace"+>trace</A+> :: Int -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtraceMsg"+>traceMsg</A+> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtraceString"+>traceString</A+> :: Int -&gt; (String -&gt; String) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s String String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtraceSource"+>traceSource</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtraceTree"+>traceTree</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtraceDoc"+>traceDoc</A+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtraceState"+>traceState</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AexpandURIString"+>expandURIString</A+> :: String -&gt; String -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AexpandURI"+>expandURI</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a (String, String) String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkAbsURI"+>mkAbsURI</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s String String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetFragmentFromURI"+>getFragmentFromURI</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a String String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetPathFromURI"+>getPathFromURI</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a String String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetPortFromURI"+>getPortFromURI</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a String String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetQueryFromURI"+>getQueryFromURI</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a String String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetRegNameFromURI"+>getRegNameFromURI</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a String String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetSchemeFromURI"+>getSchemeFromURI</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a String String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetUserInfoFromURI"+>getUserInfoFromURI</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a String String</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+><A NAME="1"+>Data Types+</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AXIOState"+></A+><B+>XIOState</B+> us</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>state datatype consists of a system state and a user state+ the user state is not fixed+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AXIOState"+></A+><B+>XIOState</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="body" COLSPAN="2"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3Axio_sysState"+></A+><B+>xio_sysState</B+> :: !<A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"+>XIOSysState</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3Axio_userState"+></A+><B+>xio_userState</B+> :: !us</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XIOState')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:XIOState" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> us =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (<A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOState"+>XIOState</A+> us)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AXIOSysState"+></A+><B+>XIOSysState</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>predefined system state data type with all components for the+ system functions, like trace, error handling, ...+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AXIOSys"+></A+><B+>XIOSys</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="body" COLSPAN="2"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3Axio_trace"+></A+><B+>xio_trace</B+> :: !Int</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3Axio_errorStatus"+></A+><B+>xio_errorStatus</B+> :: !Int</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3Axio_errorModule"+></A+><B+>xio_errorModule</B+> :: !String</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3Axio_errorMsgHandler"+></A+><B+>xio_errorMsgHandler</B+> :: (String -&gt; IO ())</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3Axio_errorMsgCollect"+></A+><B+>xio_errorMsgCollect</B+> :: !Bool</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3Axio_errorMsgList"+></A+><B+>xio_errorMsgList</B+> :: !<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3Axio_baseURI"+></A+><B+>xio_baseURI</B+> :: !String</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3Axio_defaultBaseURI"+></A+><B+>xio_defaultBaseURI</B+> :: !String</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3Axio_attrList"+></A+><B+>xio_attrList</B+> :: !(<A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+>)</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XIOSysState')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:XIOSysState" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"+>XIOSysState</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AIOStateArrow"+></A+><B+>IOStateArrow</B+> s b c = <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>IOSLA</A+> (<A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOState"+>XIOState</A+> s) b c</TD+></TR+><TR+><TD CLASS="doc"+>The arrow type for stateful arrows+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AIOSArrow"+></A+><B+>IOSArrow</B+> b c = <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> () b c</TD+></TR+><TR+><TD CLASS="doc"+>The arrow for stateful arrows with no user defined state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+><A NAME="2"+>Running Arrows+</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AinitialState"+></A+><B+>initialState</B+> :: us -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOState"+>XIOState</A+> us</TD+></TR+><TR+><TD CLASS="doc"+>the default global state, used as initial state when running an <TT+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+></TT+> with <TT+><A HREF="Control-Arrow-IOStateListArrow.html#v%3ArunIOSLA"+>runIOSLA</A+></TT+> or+ <TT+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3ArunX"+>runX</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AinitialSysState"+></A+><B+>initialSysState</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"+>XIOSysState</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArunX"+></A+><B+>runX</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> c -&gt; IO [c]</TD+></TR+><TR+><TD CLASS="doc"+><P+>apply an <TT+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+></TT+> to an empty root node with <TT+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AinitialState"+>initialState</A+></TT+> () as initial state+</P+><P+>the main entry point for running a state arrow with IO+</P+><P+>when running <TT+> runX f</TT+> an empty XML root node is applied to <TT+>f</TT+>.+ usually <TT+>f</TT+> will start with a constant arrow (ignoring the input), e.g. a <TT+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadDocument"+>readDocument</A+></TT+> arrow.+</P+><P+>for usage see examples with <TT+><A HREF="Text-XML-HXT-Arrow-WriteDocument.html#v%3AwriteDocument"+>writeDocument</A+></TT+>+</P+><P+>if input has to be feed into the arrow use <TT+><A HREF="Control-Arrow-IOStateListArrow.html#v%3ArunIOSLA"+>runIOSLA</A+></TT+> like in <TT+> runIOSLA f emptyX inputDoc </TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+><A NAME="3"+>User State Manipulation+</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetUserState"+></A+><B+>getUserState</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b s</TD+></TR+><TR+><TD CLASS="doc"+>read the user defined part of the state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetUserState"+></A+><B+>setUserState</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s s s</TD+></TR+><TR+><TD CLASS="doc"+>set the user defined part of the state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeUserState"+></A+><B+>changeUserState</B+> :: (b -&gt; s -&gt; s) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="doc"+>change the user defined part of the state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AwithExtendedUserState"+></A+><B+>withExtendedUserState</B+> :: s1 -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> (s1, s0) b c -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s0 b c</TD+></TR+><TR+><TD CLASS="doc"+><P+>extend user state+</P+><P+>Run an arrow with an extended user state component, The old component+ is stored together with a new one in a pair, the arrow is executed with this+ extended state, and the augmented state component is removed form the state+ when the arrow has finished its execution+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AwithOtherUserState"+></A+><B+>withOtherUserState</B+> :: s1 -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s1 b c -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s0 b c</TD+></TR+><TR+><TD CLASS="doc"+><P+>change the type of user state+</P+><P+>This conversion is useful, when running a state arrow with another+ structure of the user state, e.g. with () when executing some IO arrows+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+><A NAME="4"+>Global System State Access+</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetSysParam"+></A+><B+>getSysParam</B+> :: (<A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"+>XIOSysState</A+> -&gt; c) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b c</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeSysParam"+></A+><B+>changeSysParam</B+> :: (b -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"+>XIOSysState</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"+>XIOSysState</A+>) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetParamList"+></A+><B+>setParamList</B+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>store a list of XML trees in global system state under a given attribute name+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetParam"+></A+><B+>setParam</B+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>store a single XML tree in global state under a given attribute name+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AunsetParam"+></A+><B+>unsetParam</B+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="doc"+>remove an entry in global state, arrow input remains unchanged+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetParam"+></A+><B+>getParam</B+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>read an attribute value from global state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetAllParams"+></A+><B+>getAllParams</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b (<A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+>)</TD+></TR+><TR+><TD CLASS="doc"+>read all attributes from global state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetParamString"+></A+><B+>setParamString</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetParamString"+></A+><B+>getParamString</B+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b String</TD+></TR+><TR+><TD CLASS="doc"+>read a string value from global state,+ if parameter not set &quot;&quot; is returned+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetParamInt"+></A+><B+>setParamInt</B+> :: String -&gt; Int -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="doc"+>store an int value in global state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetParamInt"+></A+><B+>getParamInt</B+> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b Int</TD+></TR+><TR+><TD CLASS="doc"+><P+>read an int value from global state+</P+><PRE+> getParamInt 0 myIntAttr+</PRE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+><A NAME="5"+>Error Message Handling+</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AclearErrStatus"+></A+><B+>clearErrStatus</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetErrStatus"+></A+><B+>setErrStatus</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s Int Int</TD+></TR+><TR+><TD CLASS="doc"+>set global error variable+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetErrStatus"+></A+><B+>getErrStatus</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> Int</TD+></TR+><TR+><TD CLASS="doc"+>read current global error status+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetErrMsgStatus"+></A+><B+>setErrMsgStatus</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>raise the global error status level to that of the input tree+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetErrorMsgHandler"+></A+><B+>setErrorMsgHandler</B+> :: Bool -&gt; (String -&gt; IO ()) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="doc"+>set the error message handler and the flag for collecting the errors+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AerrorMsgStderr"+></A+><B+>errorMsgStderr</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="doc"+>the default error message handler: error output to stderr+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AerrorMsgCollect"+></A+><B+>errorMsgCollect</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="doc"+>error message handler for collecting errors+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AerrorMsgStderrAndCollect"+></A+><B+>errorMsgStderrAndCollect</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="doc"+>error message handler for output to stderr and collecting+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AerrorMsgIgnore"+></A+><B+>errorMsgIgnore</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="doc"+>error message handler for ignoring errors+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetErrorMessages"+></A+><B+>getErrorMessages</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>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+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfilterErrorMsg"+></A+><B+>filterErrorMsg</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>filter error messages from input trees and issue errors+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AissueWarn"+></A+><B+>issueWarn</B+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="doc"+>generate a warnig message+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AissueErr"+></A+><B+>issueErr</B+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="doc"+>generate an error message+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AissueFatal"+></A+><B+>issueFatal</B+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="doc"+>generate a fatal error message, e.g. document not found+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetDocumentStatus"+></A+><B+>setDocumentStatus</B+> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>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 <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"+>c_err</A+></TT+>.+ called by <TT+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetDocumentStatusFromSystemState"+>setDocumentStatusFromSystemState</A+></TT+> when the system state indicates an error+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetDocumentStatusFromSystemState"+></A+><B+>setDocumentStatusFromSystemState</B+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>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 <TT+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetDocumentStatus"+>setDocumentStatus</A+></TT+>+ else nothing is changed+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdocumentStatusOk"+></A+><B+>documentStatusOk</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>check whether tree is a document root and the status attribute has a value less than <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"+>c_err</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+><A NAME="6"+>Document Base+</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetBaseURI"+></A+><B+>setBaseURI</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s String String</TD+></TR+><TR+><TD CLASS="doc"+>set the base URI of a document, used e.g. for reading includes, e.g. external entities,+ the input must be an absolute URI+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetBaseURI"+></A+><B+>getBaseURI</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b String</TD+></TR+><TR+><TD CLASS="doc"+>read the base URI from the globale state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeBaseURI"+></A+><B+>changeBaseURI</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s String String</TD+></TR+><TR+><TD CLASS="doc"+><P+>change the base URI with a possibly relative URI, can be used for+ evaluating the xml:base attribute. Returns the new absolute base URI.+ Fails, if input is not parsable with parseURIReference+</P+><P+>see also: <TT+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetBaseURI"+>setBaseURI</A+></TT+>, <TT+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AmkAbsURI"+>mkAbsURI</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetDefaultBaseURI"+></A+><B+>setDefaultBaseURI</B+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b String</TD+></TR+><TR+><TD CLASS="doc"+>set the default base URI, if parameter is null, the system base (<TT+> file:///&lt;cwd&gt;/ </TT+>) is used,+ else the parameter, must be called before any document is read+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetDefaultBaseURI"+></A+><B+>getDefaultBaseURI</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b String</TD+></TR+><TR+><TD CLASS="doc"+>get the default base URI+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArunInLocalURIContext"+></A+><B+>runInLocalURIContext</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b c -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b c</TD+></TR+><TR+><TD CLASS="doc"+>remember base uri, run an arrow and restore the base URI, used with external entity substitution+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+><A NAME="7"+>Tracing+</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetTraceLevel"+></A+><B+>setTraceLevel</B+> :: Int -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="doc"+>set the global trace level+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetTraceLevel"+></A+><B+>getTraceLevel</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b Int</TD+></TR+><TR+><TD CLASS="doc"+>read the global trace level+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AwithTraceLevel"+></A+><B+>withTraceLevel</B+> :: Int -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b c -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b c</TD+></TR+><TR+><TD CLASS="doc"+>run an arrow with a given trace level, the old trace level is restored after the arrow execution+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Atrace"+></A+><B+>trace</B+> :: Int -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="doc"+>apply a trace arrow and issue message to stderr+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtraceMsg"+></A+><B+>traceMsg</B+> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="doc"+>issue a string message as trace +</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtraceString"+></A+><B+>traceString</B+> :: Int -&gt; (String -&gt; String) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s String String</TD+></TR+><TR+><TD CLASS="doc"+>issue the string input of an arrow+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtraceSource"+></A+><B+>traceSource</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>issue the source representation of a document if trace level &gt;= 3+</P+><P+>for better readability the source is formated with indentDoc+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtraceTree"+></A+><B+>traceTree</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>issue the tree representation of a document if trace level &gt;= 4+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtraceDoc"+></A+><B+>traceDoc</B+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>trace a main computation step+ issue a message when trace level &gt;= 1, issue document source if level &gt;= 3, issue tree when level is &gt;= 4+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtraceState"+></A+><B+>traceState</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="doc"+>trace the global state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+><A NAME="8"+>URI Manipulation+</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AexpandURIString"+></A+><B+>expandURIString</B+> :: String -&gt; String -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="doc"+>compute the absolut URI for a given URI and a base URI+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AexpandURI"+></A+><B+>expandURI</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a (String, String) String</TD+></TR+><TR+><TD CLASS="doc"+>arrow variant of <TT+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AexpandURIString"+>expandURIString</A+></TT+>, fails if <TT+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AexpandURIString"+>expandURIString</A+></TT+> returns Nothing+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkAbsURI"+></A+><B+>mkAbsURI</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s String String</TD+></TR+><TR+><TD CLASS="doc"+>arrow for expanding an input URI into an absolute URI using global base URI, fails if input is not a legal URI+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetFragmentFromURI"+></A+><B+>getFragmentFromURI</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a String String</TD+></TR+><TR+><TD CLASS="doc"+>arrow for computing the fragment component of an URI, fails if input is not a legal URI+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetPathFromURI"+></A+><B+>getPathFromURI</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a String String</TD+></TR+><TR+><TD CLASS="doc"+>arrow for computing the path component of an URI, fails if input is not a legal URI+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetPortFromURI"+></A+><B+>getPortFromURI</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a String String</TD+></TR+><TR+><TD CLASS="doc"+>arrow for selecting the port number of the URI without leading ':', fails if input is not a legal URI+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetQueryFromURI"+></A+><B+>getQueryFromURI</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a String String</TD+></TR+><TR+><TD CLASS="doc"+>arrow for computing the query component of an URI, fails if input is not a legal URI+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetRegNameFromURI"+></A+><B+>getRegNameFromURI</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a String String</TD+></TR+><TR+><TD CLASS="doc"+>arrow for selecting the registered name (host) of the URI, fails if input is not a legal URI+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetSchemeFromURI"+></A+><B+>getSchemeFromURI</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a String String</TD+></TR+><TR+><TD CLASS="doc"+><P+>arrow for selecting the scheme (protocol) of the URI, fails if input is not a legal URI.+</P+><P+>See Network.URI for URI components+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetUserInfoFromURI"+></A+><B+>getUserInfoFromURI</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a String String</TD+></TR+><TR+><TD CLASS="doc"+>arrow for selecting the user info of the URI without trailing '@', fails if input is not a legal URI+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Text-XML-HXT-Arrow-XmlNode.html view
@@ -0,0 +1,1055 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Arrow.XmlNode</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/XmlNode.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Arrow.XmlNode</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: XmlNode.hs,v 1.14 2006<EM+>08</EM+>28 19:14:15 hxml Exp $+</P+><P+>Interface for XmlArrow to basic data types NTree and XmlTree+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> <A NAME="t%3AXmlNode"+></A+><B+>XmlNode</B+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+>Methods</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A NAME="v%3AisText"+></A+><B+>isText</B+> :: a -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisCharRef"+></A+><B+>isCharRef</B+> :: a -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisEntityRef"+></A+><B+>isEntityRef</B+> :: a -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisCmt"+></A+><B+>isCmt</B+> :: a -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisCdata"+></A+><B+>isCdata</B+> :: a -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisPi"+></A+><B+>isPi</B+> :: a -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisElem"+></A+><B+>isElem</B+> :: a -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisDTD"+></A+><B+>isDTD</B+> :: a -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisAttr"+></A+><B+>isAttr</B+> :: a -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisError"+></A+><B+>isError</B+> :: a -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkText"+></A+><B+>mkText</B+> :: String -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkCharRef"+></A+><B+>mkCharRef</B+> :: Int -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkEntityRef"+></A+><B+>mkEntityRef</B+> :: String -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkCmt"+></A+><B+>mkCmt</B+> :: String -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkCdata"+></A+><B+>mkCdata</B+> :: String -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkPi"+></A+><B+>mkPi</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkError"+></A+><B+>mkError</B+> :: Int -&gt; String -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetText"+></A+><B+>getText</B+> :: a -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetCharRef"+></A+><B+>getCharRef</B+> :: a -&gt; Maybe Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetEntityRef"+></A+><B+>getEntityRef</B+> :: a -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetCmt"+></A+><B+>getCmt</B+> :: a -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetCdata"+></A+><B+>getCdata</B+> :: a -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetPiName"+></A+><B+>getPiName</B+> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetPiContent"+></A+><B+>getPiContent</B+> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetElemName"+></A+><B+>getElemName</B+> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetAttrl"+></A+><B+>getAttrl</B+> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetDTDPart"+></A+><B+>getDTDPart</B+> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetDTDAttrl"+></A+><B+>getDTDAttrl</B+> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetAttrName"+></A+><B+>getAttrName</B+> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetErrorLevel"+></A+><B+>getErrorLevel</B+> :: a -&gt; Maybe Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetErrorMsg"+></A+><B+>getErrorMsg</B+> :: a -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetName"+></A+><B+>getName</B+> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetQualifiedName"+></A+><B+>getQualifiedName</B+> :: a -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetUniversalName"+></A+><B+>getUniversalName</B+> :: a -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetUniversalUri"+></A+><B+>getUniversalUri</B+> :: a -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetLocalPart"+></A+><B+>getLocalPart</B+> :: a -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetNamePrefix"+></A+><B+>getNamePrefix</B+> :: a -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetNamespaceUri"+></A+><B+>getNamespaceUri</B+> :: a -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeText"+></A+><B+>changeText</B+> :: (String -&gt; String) -&gt; a -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeCmt"+></A+><B+>changeCmt</B+> :: (String -&gt; String) -&gt; a -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeName"+></A+><B+>changeName</B+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>) -&gt; a -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeElemName"+></A+><B+>changeElemName</B+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>) -&gt; a -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeAttrl"+></A+><B+>changeAttrl</B+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+>) -&gt; a -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeAttrName"+></A+><B+>changeAttrName</B+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>) -&gt; a -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangePiName"+></A+><B+>changePiName</B+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>) -&gt; a -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeDTDAttrl"+></A+><B+>changeDTDAttrl</B+> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+>) -&gt; a -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetText"+></A+><B+>setText</B+> :: String -&gt; a -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetCmt"+></A+><B+>setCmt</B+> :: String -&gt; a -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetName"+></A+><B+>setName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetElemName"+></A+><B+>setElemName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetElemAttrl"+></A+><B+>setElemAttrl</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; a -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetAttrName"+></A+><B+>setAttrName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetPiName"+></A+><B+>setPiName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; a -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetDTDAttrl"+></A+><B+>setDTDAttrl</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; a -&gt; a</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XmlNode')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:XmlNode" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>XmlNode</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>XmlNode</A+> a =&gt; <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>XmlNode</A+> (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkElementNode"+></A+><B+>mkElementNode</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkAttrNode"+></A+><B+>mkAttrNode</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkDTDNode"+></A+><B+>mkDTDNode</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkElement"+></A+><B+>mkElement</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkAttr"+></A+><B+>mkAttr</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkDTDElem"+></A+><B+>mkDTDElem</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddAttr"+></A+><B+>addAttr</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmergeAttrl"+></A+><B+>mergeAttrl</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Data-Tree-NTree-TypeDefs.html"+>Data.Tree.NTree.TypeDefs</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Text-XML-HXT-Arrow-XmlNodeSet.html view
@@ -0,0 +1,760 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Arrow.XmlNodeSet</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/XmlNodeSet.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Arrow.XmlNodeSet</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: XmlNodeSet.hs,v 1.5 2006<EM+>11</EM+>12 14:52:59 hxml Exp $+</P+><P+>Arrows for working with XPath and XmlNodeSets.+</P+><P+>Most of the XPath arrows come in two versions,+   one without dealing with namespaces, element and attribute names+   in XPath expressions are taken as they ar ignoring any prefix:localname structure.+</P+><P+>The second variant uses a namespace environment for associating the right+   namespace for the appropriate prefix. an entry for the empty prefix+   defines the default namespace for the expression.+</P+><P+>The second variant should be used, when in the application namespaces+   are significant, that means when namespace propagation is done for+   the documents to be processed.+</P+><P+>NodeSets are sets of &quot;pointer&quot; into an XML tree to reference+   subnodes. These nodesets can be computed by XPath expressions or+   normal arrows. The nodesets can then be used later for selecting+   or modifying subtrees of this tree in an efficient way.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXPathTreesInDoc"+>getXPathTreesInDoc</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXPathTreesInDocWithNsEnv"+>getXPathTreesInDocWithNsEnv</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXPathTrees"+>getXPathTrees</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXPathTreesWithNsEnv"+>getXPathTreesWithNsEnv</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetElemNodeSet"+>getElemNodeSet</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetElemAndAttrNodeSet"+>getElemAndAttrNodeSet</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXPathNodeSet"+>getXPathNodeSet</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetFromNodeSet"+>getFromNodeSet</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessXPathTrees"+>processXPathTrees</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessXPathTreesWithNsEnv"+>processXPathTreesWithNsEnv</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessFromNodeSet"+>processFromNodeSet</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXPathTreesInDoc"+></A+><B+>getXPathTreesInDoc</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Select parts of a whole XML document with root node by a XPath expression.+</P+><P+>The main filter for selecting parts of a document via XPath.+</P+><P+>The string argument must be a XPath expression with an absolute location path,+ the argument tree must be a complete document tree.+</P+><P+>Before evaluating the xpath query, the document is canonicalized+ with <TT+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcanonicalizeForXPath"+>canonicalizeForXPath</A+></TT+>+</P+><P+>Result is a possibly empty list of XmlTrees forming the set of selected XPath values.+ XPath values other than XmlTrees (numbers, attributes, tagnames, ...)+ are convertet to text nodes.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXPathTreesInDocWithNsEnv"+></A+><B+>getXPathTreesInDocWithNsEnv</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>Same as <TT+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetXPathTreesInDoc"+>getXPathTreesInDoc</A+></TT+> but with namespace environment for the XPath names+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXPathTrees"+></A+><B+>getXPathTrees</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Select parts of an arbitrary XML tree by a XPath expression.+</P+><P+>The main filter for selecting parts of an arbitrary XML tree via XPath.+ The string argument must be a XPath expression with an absolute location path,+ There are no restrictions on the argument tree.+</P+><P+>No canonicalization is performed before evaluating the query+</P+><P+>Result is a possibly empty list of XmlTrees forming the set of selected XPath values.+ XPath values other than XmlTrees (numbers, attributes, tagnames, ...)+ are convertet to text nodes.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXPathTreesWithNsEnv"+></A+><B+>getXPathTreesWithNsEnv</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>Same as <TT+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetXPathTrees"+>getXPathTrees</A+></TT+> but with namespace environment for the XPath names+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetElemNodeSet"+></A+><B+>getElemNodeSet</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>compute a node set from a tree, containing all nodes selected by the predicate arrow+</P+><P+>computation of the set of element nodes with name &quot;a&quot; is done with+</P+><PRE+> getElemNodeSet (hasName &quot;a&quot;)+</PRE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetElemAndAttrNodeSet"+></A+><B+>getElemAndAttrNodeSet</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="doc"+>compute a node set from a tree, containing all nodes including attribute nodes+ elected by the predicate arrow+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXPathNodeSet"+></A+><B+>getXPathNodeSet</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Select a set of nodes via an XPath expression from an arbitray XML tree+</P+><P+>The result is a set of &quot;pointers&quot; to nodes. This set can be used to+ access or modify the values of the subnodes in subsequent calls to <TT+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetFromNodeSet"+>getFromNodeSet</A+></TT+> or <TT+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AprocessFromNodeSet"+>processFromNodeSet</A+></TT+>.+</P+><P+>This function enables for parsing an XPath expressions and traversing the tree for node selection once+ and reuse this result possibly many times for later selection and modification operations.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetFromNodeSet"+></A+><B+>getFromNodeSet</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>select all subtrees specified by a previously computed node set+</P+><P+>the following law holds:+</P+><PRE+> getFromNodeSet $&lt; getElemNodeSet f == multi f+</PRE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessXPathTrees"+></A+><B+>processXPathTrees</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>process all subtrees selected by an XPath expression+</P+><P+>the following law holds:+</P+><PRE+> processXPathTrees p xpathExpr == processFromNodeSet p $&lt; getXPathNodeSet xpathExpr+</PRE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessXPathTreesWithNsEnv"+></A+><B+>processXPathTreesWithNsEnv</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>Same as <TT+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AprocessXPathTrees"+>processXPathTrees</A+></TT+> but with namespace environment for the XPath names+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessFromNodeSet"+></A+><B+>processFromNodeSet</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>process all subtrees specified by a previously computed node set in bottom up manner+</P+><P+>the follwoing law holds:+</P+><PRE+> processFromNodeSet g $&lt; getElemNodeSet f == processBottomUp (g `when` f)+</PRE+><P+>when attributes are contained in the node set (see <TT+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetElemAndAttrNodeSet"+>getElemAndAttrNodeSet</A+></TT+>), these are processed+ after the children and before the node itself+</P+><P+>the advantage of processFromNodeSet is the separation of the selection of set of nodes to be processed (e.g. modified)+ from the real proccessing. The selection sometimes can be done once, the processing possibly many times.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Text-XML-HXT-Arrow.html view
@@ -0,0 +1,273 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Arrow</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Arrow</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: Arrow.hs,v 1.12 2006<EM+>11</EM+>11 15:36:04 hxml Exp $+</P+><P+>The HXT arrow interface+</P+><P+>The application programming interface to the arrow modules of the Haskell XML Toolbox.+   This module exports all important arrows for input, output, parsing, validating and transforming XML.+   It also exports all basic datatypes and functions of the toolbox.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Control-Arrow-ListArrows.html"+>Control.Arrow.ListArrows</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Arrow-DOMInterface.html"+>Text.XML.HXT.Arrow.DOMInterface</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Arrow-XmlArrow.html"+>Text.XML.HXT.Arrow.XmlArrow</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html"+>Text.XML.HXT.Arrow.XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Arrow-DocumentInput.html"+>Text.XML.HXT.Arrow.DocumentInput</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Arrow-DocumentOutput.html"+>Text.XML.HXT.Arrow.DocumentOutput</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Arrow-Edit.html"+>Text.XML.HXT.Arrow.Edit</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Arrow-GeneralEntitySubstitution.html"+>Text.XML.HXT.Arrow.GeneralEntitySubstitution</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Arrow-Namespace.html"+>Text.XML.HXT.Arrow.Namespace</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Arrow-ProcessDocument.html"+>Text.XML.HXT.Arrow.ProcessDocument</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Arrow-ReadDocument.html"+>Text.XML.HXT.Arrow.ReadDocument</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Arrow-WriteDocument.html"+>Text.XML.HXT.Arrow.WriteDocument</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-XSLT-XsltArrows.html"+>Text.XML.HXT.XSLT.XsltArrows</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Text-XML-HXT-DOM-NamespacePredicates.html view
@@ -0,0 +1,320 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.NamespacePredicates</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/NamespacePredicates.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.NamespacePredicates</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>basic Namespace and QName predicates and functions+</P+><P+>$Id: NamespacePredicates.hs,v 1.3 2006<EM+>11</EM+>12 14:53:00 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetNamespace"+>setNamespace</A+> :: NsEnv -&gt; QName -&gt; QName</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlnsQN"+>xmlnsQN</A+> :: QName</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisNCName"+>isNCName</A+> :: String -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisWellformedQualifiedName"+>isWellformedQualifiedName</A+> :: String -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisWellformedQName"+>isWellformedQName</A+> :: QName -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisWellformedNSDecl"+>isWellformedNSDecl</A+> :: QName -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisDeclaredNamespace"+>isDeclaredNamespace</A+> :: QName -&gt; Bool</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetNamespace"+></A+><B+>setNamespace</B+> :: NsEnv -&gt; QName -&gt; QName</TD+></TR+><TR+><TD CLASS="doc"+><P+>Compute the name prefix and the namespace uri for a qualified name.+</P+><P+>This function does not test whether the name is a wellformed qualified name.+ see Namespaces in XML Rule [6] to [8]. Error checking is done with separate functions,+ see <TT+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedQName"+>isWellformedQName</A+></TT+> and <TT+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedQualifiedName"+>isWellformedQualifiedName</A+></TT+> for error checking.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlnsQN"+></A+><B+>xmlnsQN</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisNCName"+></A+><B+>isNCName</B+> :: String -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test for wellformed NCName, rule [4] XML Namespaces+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisWellformedQualifiedName"+></A+><B+>isWellformedQualifiedName</B+> :: String -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test for wellformed QName, rule [6] XML Namespaces+ predicate is used in filter valdateNamespaces.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisWellformedQName"+></A+><B+>isWellformedQName</B+> :: QName -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test for wellformed QName values.+ A QName is wellformed, if the local part is a NCName, the namePrefix, if not empty, is also a NCName.+ predicate is used in filter valdateNamespaces.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisWellformedNSDecl"+></A+><B+>isWellformedNSDecl</B+> :: QName -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test for a wellformed namespace declaration+ all namespace prefixes starting with &quot;xml&quot; are reserved for XML related definitions.+ predicate is used in filter valdateNamespaces.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisDeclaredNamespace"+></A+><B+>isDeclaredNamespace</B+> :: QName -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>predicate is used in filter valdateNamespaces.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Text-XML-HXT-DOM-TypeDefs.html view
@@ -0,0 +1,1959 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.TypeDefs</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/TypeDefs.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.TypeDefs</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>The core data types of HDOM.+</P+><P+>Version : $Id: TypeDefs.hs,v 1.13 2006<EM+>11</EM+>09 20:27:42 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>module <A HREF="Data-AssocList.html"+>Data.AssocList</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AXmlTree"+>XmlTree</A+> = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AXmlTrees"+>XmlTrees</A+> = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>NTrees</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AXNode"+>XNode</A+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>= <A HREF="#v%3AXText"+>XText</A+> String</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXCharRef"+>XCharRef</A+> Int</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXEntityRef"+>XEntityRef</A+> String</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXCmt"+>XCmt</A+> String</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXCdata"+>XCdata</A+> String</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXPi"+>XPi</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXTag"+>XTag</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXDTD"+>XDTD</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXAttr"+>XAttr</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXError"+>XError</A+> Int String</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3ADTDElem"+>DTDElem</A+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>= <A HREF="#v%3ADOCTYPE"+>DOCTYPE</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AELEMENT"+>ELEMENT</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ACONTENT"+>CONTENT</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AATTLIST"+>ATTLIST</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AENTITY"+>ENTITY</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3APENTITY"+>PENTITY</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ANOTATION"+>NOTATION</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ACONDSECT"+>CONDSECT</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ANAME"+>NAME</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3APEREF"+>PEREF</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AAttributes"+>Attributes</A+> = <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> String String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AQName"+>QName</A+>  = <A HREF="#v%3AQN"+>QN</A+> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="recfield"+><A HREF="#v%3AnamePrefix"+>namePrefix</A+> :: String</TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3AlocalPart"+>localPart</A+> :: String</TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3AnamespaceUri"+>namespaceUri</A+> :: String</TD+></TR+></TABLE+>}</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AqualifiedName"+>qualifiedName</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AuniversalName"+>universalName</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AuniversalUri"+>universalUri</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AbuildUniversalName"+>buildUniversalName</A+> :: (String -&gt; String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkName"+>mkName</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkPrefixLocalPart"+>mkPrefixLocalPart</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkNsName"+>mkNsName</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkSNsName"+>mkSNsName</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnullQName"+>nullQName</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AequalQName"+>equalQName</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AequivQName"+>equivQName</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AequivUri"+>equivUri</A+> :: String -&gt; String -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AequalQNameBy"+>equalQNameBy</A+> :: (String -&gt; String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnormalizeNsUri"+>normalizeNsUri</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ANsEnv"+>NsEnv</A+> = <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> String String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ac_ok"+>c_ok</A+> :: Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ac_warn"+>c_warn</A+> :: Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ac_err"+>c_err</A+> :: Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ac_fatal"+>c_fatal</A+> :: Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AXmlNodeSet"+>XmlNodeSet</A+>  = <A HREF="#v%3AXNS"+>XNS</A+> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="recfield"+><A HREF="#v%3AthisNode"+>thisNode</A+> :: Bool</TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3AattrNodes"+>attrNodes</A+> :: [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>]</TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3AchildNodes"+>childNodes</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AChildNodes"+>ChildNodes</A+></TD+></TR+></TABLE+>}</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AChildNodes"+>ChildNodes</A+> = [(Int, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+>)]</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Data-AssocList.html"+>Data.AssocList</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AXmlTree"+></A+><B+>XmlTree</B+> = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="doc"+>Node of xml tree representation+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AXmlTrees"+></A+><B+>XmlTrees</B+> = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>NTrees</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="doc"+>List of nodes of xml tree representation+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AXNode"+></A+><B+>XNode</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>Represents elements+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AXText"+></A+><B+>XText</B+> String</TD+><TD CLASS="rdoc"+>ordinary text				(leaf)+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXCharRef"+></A+><B+>XCharRef</B+> Int</TD+><TD CLASS="rdoc"+>character reference			(leaf)+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXEntityRef"+></A+><B+>XEntityRef</B+> String</TD+><TD CLASS="rdoc"+>entity reference				(leaf)+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXCmt"+></A+><B+>XCmt</B+> String</TD+><TD CLASS="rdoc"+>comment					(leaf)+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXCdata"+></A+><B+>XCdata</B+> String</TD+><TD CLASS="rdoc"+>CDATA section				(leaf)+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXPi"+></A+><B+>XPi</B+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+><TD CLASS="rdoc"+>Processing Instr with qualified name	(leaf)+   with list of attributes.+   If tag name is xml, attributs are &quot;version&quot;, &quot;encoding&quot;, &quot;standalone&quot;,+   else attribute list is empty, content is a text child node+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXTag"+></A+><B+>XTag</B+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+><TD CLASS="rdoc"+>tag with qualified name and list of attributes (inner node or leaf)+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXDTD"+></A+><B+>XDTD</B+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+></TD+><TD CLASS="rdoc"+>DTD element with assoc list for dtd element features+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXAttr"+></A+><B+>XAttr</B+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+><TD CLASS="rdoc"+>attribute with qualified name, the attribute value is stored in children+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXError"+></A+><B+>XError</B+> Int String</TD+><TD CLASS="rdoc"+>error message with level and text+</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XNode')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:XNode" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="decl"+>Ord <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="decl"+>Read <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="decl"+>Typeable <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>XmlNode</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3ADTDElem"+></A+><B+>DTDElem</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>Represents a DTD element+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ADOCTYPE"+></A+><B+>DOCTYPE</B+></TD+><TD CLASS="rdoc"+>attr: name, system, public,	XDTD elems as children+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AELEMENT"+></A+><B+>ELEMENT</B+></TD+><TD CLASS="rdoc"+><P+>attr: name, kind+</P+><P+>name: element name+</P+><P+>kind: &quot;EMPTY&quot; | &quot;ANY&quot; | &quot;#PCDATA&quot; | children | mixed+</P+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ACONTENT"+></A+><B+>CONTENT</B+></TD+><TD CLASS="rdoc"+><P+>element content+</P+><P+>attr: kind, modifier+</P+><P+>modifier: &quot;&quot; | &quot;?&quot; | &quot;*&quot; | &quot;+&quot;+</P+><P+>kind: seq | choice+</P+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AATTLIST"+></A+><B+>ATTLIST</B+></TD+><TD CLASS="rdoc"+><P+>attributes:+  name - name of element+</P+><P+>value - name of attribute+</P+><P+>type: &quot;CDATA&quot; | &quot;ID&quot; | &quot;IDREF&quot; | &quot;IDREFS&quot; | &quot;ENTITY&quot; | &quot;ENTITIES&quot; |+</P+><P+>&quot;NMTOKEN&quot; | &quot;NMTOKENS&quot; |&quot;NOTATION&quot; | &quot;ENUMTYPE&quot;+</P+><P+>kind: &quot;<A NAME="REQUIRED%5C%22%20%7C%20%5C%22"+></A+>IMPLIED&quot; | &quot;DEFAULT&quot;+</P+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AENTITY"+></A+><B+>ENTITY</B+></TD+><TD CLASS="rdoc"+>for entity declarations+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3APENTITY"+></A+><B+>PENTITY</B+></TD+><TD CLASS="rdoc"+>for parameter entity declarations+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ANOTATION"+></A+><B+>NOTATION</B+></TD+><TD CLASS="rdoc"+>for notations+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ACONDSECT"+></A+><B+>CONDSECT</B+></TD+><TD CLASS="rdoc"+><P+>for INCLUDEs, IGNOREs and peRefs: attr: type+</P+><P+>type = INCLUDE, IGNORE or %...;+</P+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ANAME"+></A+><B+>NAME</B+></TD+><TD CLASS="rdoc"+><P+>attr: name+</P+><P+>for lists of names in notation types or nmtokens in enumeration types+</P+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3APEREF"+></A+><B+>PEREF</B+></TD+><TD CLASS="rdoc"+>for Parameter Entity References in DTDs+</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:DTDElem')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:DTDElem" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+></TD+></TR+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+></TD+></TR+><TR+><TD CLASS="decl"+>Ord <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+></TD+></TR+><TR+><TD CLASS="decl"+>Read <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+></TD+></TR+><TR+><TD CLASS="decl"+>Typeable <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AAttributes"+></A+><B+>Attributes</B+> = <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> String String</TD+></TR+><TR+><TD CLASS="doc"+><P+>Attribute list+</P+><P+>used for storing option lists and features of DTD parts+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AQName"+></A+><B+>QName</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+><P+>Namespace support for element and attribute names.+</P+><P+>A qualified name consists of a name prefix, a local name+ and a namespace uri.+ All modules, which are not namespace aware, use only the <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AlocalPart"+>localPart</A+></TT+> component.+ When dealing with namespaces, the document tree must be processed by <A HREF="propagateNamespaces.html"+>propagateNamespaces</A+>+ to split names of structure &quot;prefix:localPart&quot; and label the name with the apropriate namespace uri+</P+></TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AQN"+></A+><B+>QN</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="body" COLSPAN="2"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AnamePrefix"+></A+><B+>namePrefix</B+> :: String</TD+><TD CLASS="rdoc"+>the name prefix part of a qualified name &quot;namePrefix:localPart&quot;+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AlocalPart"+></A+><B+>localPart</B+> :: String</TD+><TD CLASS="rdoc"+>the local part of a qualified name &quot;namePrefix:localPart&quot;+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AnamespaceUri"+></A+><B+>namespaceUri</B+> :: String</TD+><TD CLASS="rdoc"+>the associated namespace uri+</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:QName')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:QName" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="decl"+>Ord <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="decl"+>Read <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="decl"+>Typeable <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AqualifiedName"+></A+><B+>qualifiedName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>builds the full name &quot;prefix:localPart&quot;, if prefix is not null, else the local part is the result+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AuniversalName"+></A+><B+>universalName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>builds the &quot;universal&quot; name, that is the namespace uri surrounded with &quot;{&quot; and &quot;}&quot; followed by the local part+ (specialisation of <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AbuildUniversalName"+>buildUniversalName</A+></TT+>)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AuniversalUri"+></A+><B+>universalUri</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>builds an &quot;universal&quot; uri, that is the namespace uri followed by the local part. This is usefull for RDF applications,+ where the subject, predicate and object often are concatenated from namespace uri and local part+ (specialisation of <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AbuildUniversalName"+>buildUniversalName</A+></TT+>)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AbuildUniversalName"+></A+><B+>buildUniversalName</B+> :: (String -&gt; String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>builds a string from the namespace uri and the local part. If the namespace uri is empty, the local part is returned, else+ namespace uri and local part are combined with the combining function given by the first parameter+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkName"+></A+><B+>mkName</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="doc"+>constructs a simple, namespace unaware name, <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnamePrefix"+>namePrefix</A+></TT+> and <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnamespaceUri"+>namespaceUri</A+></TT+> are set to the empty string.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkPrefixLocalPart"+></A+><B+>mkPrefixLocalPart</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>constructs a simple name, with prefix and localPart but without a namespace uri.+</P+><P+>see also <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkName"+>mkName</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkNsName"+>mkNsName</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkSNsName"+>mkSNsName</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkNsName"+></A+><B+>mkNsName</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>constructs a simple, namespace aware name, with prefix:localPart as first parameter, namspace uri as second.+</P+><P+>see also <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkName"+>mkName</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkPrefixLocalPart"+>mkPrefixLocalPart</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkSNsName"+></A+><B+>mkSNsName</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>constructs a simple name, with prefix:localPart as 1 parameter, with empty namspace uri, same as 'mkPrefixLocalPart, but with a single parameter+</P+><P+>see also <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkNsName"+>mkNsName</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkPrefixLocalPart"+>mkPrefixLocalPart</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnullQName"+></A+><B+>nullQName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="doc"+>Empty QName+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AequalQName"+></A+><B+>equalQName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>Equality of QNames: Two QNames are equal, if the local parts are equal+ and the namespace URIs are equal.+ The comparison works with and without namespace propagation.+ If namespaces have been propagated, the name is split into prefix and local part+ and the namespace uri is set. In this case the prefix is not significant for equality test.+ If namespaces have not been propagated, the local part contains the full name, prefix+ and namespace URI are empty. The full name (prefix and local part) is used for comparison.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AequivQName"+></A+><B+>equivQName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>Equivalent QNames are defined as follows: The URIs are normalized before comparison.+ Comparison is done with <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequalQNameBy"+>equalQNameBy</A+></TT+> and <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequivUri"+>equivUri</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AequivUri"+></A+><B+>equivUri</B+> :: String -&gt; String -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>Comparison of normalized namespace URIs using <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnormalizeNsUri"+>normalizeNsUri</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AequalQNameBy"+></A+><B+>equalQNameBy</B+> :: (String -&gt; String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>Sometimes a weaker equality relation than <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequalQName"+>equalQName</A+></TT+> is appropriate, e.g no case significance in names, ...+ a name normalization function can be applied to the strings before comparing. Called by <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequalQName"+>equalQName</A+></TT+> and+ <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequivQName"+>equivQName</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnormalizeNsUri"+></A+><B+>normalizeNsUri</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>Normalization of URIs: Normalization is done by conversion into lowercase letters. A trailing &quot;/&quot; is ignored+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ANsEnv"+></A+><B+>NsEnv</B+> = <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> String String</TD+></TR+><TR+><TD CLASS="doc"+>Type for the namespace association list, used when propagating namespaces by+ modifying the <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TT+> values in a tree+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ac_ok"+></A+><B+>c_ok</B+> :: Int</TD+></TR+><TR+><TD CLASS="doc"+>no error, everything is ok+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ac_warn"+></A+><B+>c_warn</B+> :: Int</TD+></TR+><TR+><TD CLASS="doc"+>Error level for XError, type warning+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ac_err"+></A+><B+>c_err</B+> :: Int</TD+></TR+><TR+><TD CLASS="doc"+>Error level for XError, type error+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ac_fatal"+></A+><B+>c_fatal</B+> :: Int</TD+></TR+><TR+><TD CLASS="doc"+>Error level for XError, type fatal error+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AXmlNodeSet"+></A+><B+>XmlNodeSet</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+><P+>data type for representing a set of nodes as a tree structure+</P+><P+>this structure is e.g. used to repesent the result of an XPath query+ such that the selected nodes can be processed or selected later in+ processing a document tree+</P+></TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AXNS"+></A+><B+>XNS</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="body" COLSPAN="2"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AthisNode"+></A+><B+>thisNode</B+> :: Bool</TD+><TD CLASS="rdoc"+>is this node part of the set ?+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AattrNodes"+></A+><B+>attrNodes</B+> :: [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>]</TD+><TD CLASS="rdoc"+>the set of attribute nodes+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AchildNodes"+></A+><B+>childNodes</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AChildNodes"+>ChildNodes</A+></TD+><TD CLASS="rdoc"+>the set of child nodes, a list of pairs of index and node set +</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XmlNodeSet')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:XmlNodeSet" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="decl"+>Typeable <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AChildNodes"+></A+><B+>ChildNodes</B+> = [(Int, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+>)]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Text-XML-HXT-DOM-Unicode.html view
@@ -0,0 +1,1752 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.Unicode</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/Unicode.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.Unicode</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+><B+>Contents</B+></TD+></TR+><TR+><TD+><DL+><DT+><A HREF="#1"+>Unicode Type declarations+</A+></DT+><DT+><A HREF="#2"+>Unicode and UTF-8 predicates+</A+></DT+><DT+><A HREF="#3"+>UTF-8 and Unicode conversion functions+</A+></DT+></DL+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>Unicode (UCS-2) and UTF-8 Conversion Funtions+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AUnicode"+>Unicode</A+> = Char</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AUString"+>UString</A+> = [<A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+>]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AUTF8Char"+>UTF8Char</A+> = Char</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AUTF8String"+>UTF8String</A+> = String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisLeadingMultiByteChar"+>isLeadingMultiByteChar</A+> :: Char -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisFollowingMultiByteChar"+>isFollowingMultiByteChar</A+> :: Char -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisMultiByteChar"+>isMultiByteChar</A+> :: Char -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisNByteChar"+>isNByteChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; (Int, Int, Int)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ais1ByteXmlChar"+>is1ByteXmlChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisMultiByteXmlChar"+>isMultiByteXmlChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlChar"+>isXmlChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlLatin1Char"+>isXmlLatin1Char</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlSpaceChar"+>isXmlSpaceChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXml11SpaceChar"+>isXml11SpaceChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlNameChar"+>isXmlNameChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlNameStartChar"+>isXmlNameStartChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlNCNameChar"+>isXmlNCNameChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlNCNameStartChar"+>isXmlNCNameStartChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlPubidChar"+>isXmlPubidChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlLetter"+>isXmlLetter</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlBaseChar"+>isXmlBaseChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlIdeographicChar"+>isXmlIdeographicChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlCombiningChar"+>isXmlCombiningChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlDigit"+>isXmlDigit</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlExtender"+>isXmlExtender</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlControlOrPermanentlyUndefined"+>isXmlControlOrPermanentlyUndefined</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Autf8ToUnicodeChar"+>utf8ToUnicodeChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"+>UTF8String</A+> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Autf8ToUnicode"+>utf8ToUnicode</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"+>UTF8String</A+> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Autf8WithByteMarkToUnicode"+>utf8WithByteMarkToUnicode</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"+>UTF8String</A+> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Alatin1ToUnicode"+>latin1ToUnicode</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aucs2ToUnicode"+>ucs2ToUnicode</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aucs2BigEndianToUnicode"+>ucs2BigEndianToUnicode</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aucs2LittleEndianToUnicode"+>ucs2LittleEndianToUnicode</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Autf16beToUnicode"+>utf16beToUnicode</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Autf16leToUnicode"+>utf16leToUnicode</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AunicodeCharToUtf8"+>unicodeCharToUtf8</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"+>UTF8String</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AunicodeToUtf8"+>unicodeToUtf8</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"+>UTF8String</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AunicodeToXmlEntity"+>unicodeToXmlEntity</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AunicodeToLatin1"+>unicodeToLatin1</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AunicodeRemoveNoneAscii"+>unicodeRemoveNoneAscii</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AunicodeRemoveNoneLatin1"+>unicodeRemoveNoneLatin1</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AintToCharRef"+>intToCharRef</A+> :: Int -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AintToCharRefHex"+>intToCharRefHex</A+> :: Int -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetEncodingFct"+>getEncodingFct</A+> :: String -&gt; Maybe (<A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; String)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetOutputEncodingFct"+>getOutputEncodingFct</A+> :: String -&gt; Maybe (String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+>)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnormalizeNL"+>normalizeNL</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AguessEncoding"+>guessEncoding</A+> :: String -&gt; String</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+><A NAME="1"+>Unicode Type declarations+</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AUnicode"+></A+><B+>Unicode</B+> = Char</TD+></TR+><TR+><TD CLASS="doc"+>Unicode is represented as the Char type+   Precondition for this is the support of Unicode character range+   in the compiler (e.g. ghc but not hugs)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AUString"+></A+><B+>UString</B+> = [<A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+>]</TD+></TR+><TR+><TD CLASS="doc"+>the type for Unicode strings+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AUTF8Char"+></A+><B+>UTF8Char</B+> = Char</TD+></TR+><TR+><TD CLASS="doc"+>UTF-8 charachters are represented by the Char type+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AUTF8String"+></A+><B+>UTF8String</B+> = String</TD+></TR+><TR+><TD CLASS="doc"+>UTF-8 strings are implemented as Haskell strings+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+><A NAME="2"+>Unicode and UTF-8 predicates+</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisLeadingMultiByteChar"+></A+><B+>isLeadingMultiByteChar</B+> :: Char -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test for leading multibyte UTF-8 character+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisFollowingMultiByteChar"+></A+><B+>isFollowingMultiByteChar</B+> :: Char -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test for following multibyte UTF-8 character+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisMultiByteChar"+></A+><B+>isMultiByteChar</B+> :: Char -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test for following multibyte UTF-8 character+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisNByteChar"+></A+><B+>isNByteChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; (Int, Int, Int)</TD+></TR+><TR+><TD CLASS="doc"+>compute the number of following bytes and the mask bits of a leading UTF-8 multibyte char+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ais1ByteXmlChar"+></A+><B+>is1ByteXmlChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test for a legal 1 byte XML char+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisMultiByteXmlChar"+></A+><B+>isMultiByteXmlChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test for a legal multi byte XML char+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlChar"+></A+><B+>isXmlChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>checking for valid XML characters+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlLatin1Char"+></A+><B+>isXmlLatin1Char</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test for a legal latin1 XML char+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlSpaceChar"+></A+><B+>isXmlSpaceChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>checking for XML space character: \n, \r, \t and &quot; &quot;+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXml11SpaceChar"+></A+><B+>isXml11SpaceChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+><P+>checking for XML1.1 space character: additional space 0x85 and 0x2028+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlSpaceChar"+>isXmlSpaceChar</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlNameChar"+></A+><B+>isXmlNameChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>checking for XML name character+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlNameStartChar"+></A+><B+>isXmlNameStartChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+><P+>checking for XML name start character+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNameChar"+>isXmlNameChar</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlNCNameChar"+></A+><B+>isXmlNCNameChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+><P+>checking for XML NCName character: no &quot;:&quot; allowed+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNameChar"+>isXmlNameChar</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlNCNameStartChar"+></A+><B+>isXmlNCNameStartChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+><P+>checking for XML NCName start character: no &quot;:&quot; allowed+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNameChar"+>isXmlNameChar</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNCNameChar"+>isXmlNCNameChar</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlPubidChar"+></A+><B+>isXmlPubidChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>checking for XML public id character+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlLetter"+></A+><B+>isXmlLetter</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>checking for XML letter+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlBaseChar"+></A+><B+>isXmlBaseChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>checking for XML base charater+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlIdeographicChar"+></A+><B+>isXmlIdeographicChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>checking for XML ideographic charater+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlCombiningChar"+></A+><B+>isXmlCombiningChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>checking for XML combining charater+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlDigit"+></A+><B+>isXmlDigit</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>checking for XML digit+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlExtender"+></A+><B+>isXmlExtender</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>checking for XML extender+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlControlOrPermanentlyUndefined"+></A+><B+>isXmlControlOrPermanentlyUndefined</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+><P+>checking for XML control or permanently discouraged char+</P+><P+>see Errata to XML1.0 (http://www.w3.org/XML/xml-V10-2e-errata) No 46+</P+><P+>Document authors are encouraged to avoid <A HREF="compatibility characters.html"+>compatibility characters</A+>,+ as defined in section 6.8 of [Unicode] (see also D21 in section 3.6 of [Unicode3]).+ The characters defined in the following ranges are also discouraged.+ They are either control characters or permanently undefined Unicode characters:+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+><A NAME="3"+>UTF-8 and Unicode conversion functions+</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Autf8ToUnicodeChar"+></A+><B+>utf8ToUnicodeChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"+>UTF8String</A+> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+></TD+></TR+><TR+><TD CLASS="doc"+>conversion of a UTF-8 encoded single Unicode character into the corresponding Unicode value.+ precondition: the character is a valid UTF-8 encoded character+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Autf8ToUnicode"+></A+><B+>utf8ToUnicode</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"+>UTF8String</A+> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="doc"+>conversion of a UTF-8 encoded string into a sequence of unicode values.+ precondition: the string is a valid UTF-8 encoded string+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Autf8WithByteMarkToUnicode"+></A+><B+>utf8WithByteMarkToUnicode</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"+>UTF8String</A+> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="doc"+>UTF-8 to Unicode conversion with deletion of leading byte order mark, as described in XML standard F.1+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Alatin1ToUnicode"+></A+><B+>latin1ToUnicode</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="doc"+>code conversion from latin1 to Unicode+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aucs2ToUnicode"+></A+><B+>ucs2ToUnicode</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="doc"+>UCS-2 to UTF-8 conversion with byte order mark analysis+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aucs2BigEndianToUnicode"+></A+><B+>ucs2BigEndianToUnicode</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="doc"+>UCS-2 big endian to Unicode conversion+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aucs2LittleEndianToUnicode"+></A+><B+>ucs2LittleEndianToUnicode</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="doc"+>UCS-2 little endian to Unicode conversion+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Autf16beToUnicode"+></A+><B+>utf16beToUnicode</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="doc"+>UTF-16 big endian to UTF-8 conversion with removal of byte order mark+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Autf16leToUnicode"+></A+><B+>utf16leToUnicode</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="doc"+>UTF-16 little endian to UTF-8 conversion with removal of byte order mark+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AunicodeCharToUtf8"+></A+><B+>unicodeCharToUtf8</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"+>UTF8String</A+></TD+></TR+><TR+><TD CLASS="doc"+>conversion from Unicode (Char) to a UTF8 encoded string.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AunicodeToUtf8"+></A+><B+>unicodeToUtf8</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"+>UTF8String</A+></TD+></TR+><TR+><TD CLASS="doc"+>conversion from Unicode strings (UString) to UTF8 encoded strings.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AunicodeToXmlEntity"+></A+><B+>unicodeToXmlEntity</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>substitute all Unicode characters, that are not legal 1-byte+ UTF-8 XML characters by a character reference.+</P+><P+>This function can be used to translate all text nodes and+ attribute values into pure ascii.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToLatin1"+>unicodeToLatin1</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AunicodeToLatin1"+></A+><B+>unicodeToLatin1</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>substitute all Unicode characters, that are not legal latin1+ UTF-8 XML characters by a character reference.+</P+><P+>This function can be used to translate all text nodes and+ attribute values into ISO latin1.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToXmlEntity"+>unicodeToXmlEntity</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AunicodeRemoveNoneAscii"+></A+><B+>unicodeRemoveNoneAscii</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>removes all non ascii chars, may be used to transform+ a document into a pure ascii representation by removing+ all non ascii chars from tag and attibute names+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeRemoveNoneLatin1"+>unicodeRemoveNoneLatin1</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToXmlEntity"+>unicodeToXmlEntity</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AunicodeRemoveNoneLatin1"+></A+><B+>unicodeRemoveNoneLatin1</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>removes all non latin1 chars, may be used to transform+ a document into a pure ascii representation by removing+ all non ascii chars from tag and attibute names+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeRemoveNoneAscii"+>unicodeRemoveNoneAscii</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToLatin1"+>unicodeToLatin1</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AintToCharRef"+></A+><B+>intToCharRef</B+> :: Int -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>convert an Unicode into a XML character reference.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AintToCharRefHex"+>intToCharRefHex</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AintToCharRefHex"+></A+><B+>intToCharRefHex</B+> :: Int -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>convert an Unicode into a XML hexadecimal character reference.+</P+><P+>see also: <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AintToCharRef"+>intToCharRef</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetEncodingFct"+></A+><B+>getEncodingFct</B+> :: String -&gt; Maybe (<A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; String)</TD+></TR+><TR+><TD CLASS="doc"+>the lookup function for selecting the encoding function+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetOutputEncodingFct"+></A+><B+>getOutputEncodingFct</B+> :: String -&gt; Maybe (String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+>)</TD+></TR+><TR+><TD CLASS="doc"+>the lookup function for selecting the encoding function+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnormalizeNL"+></A+><B+>normalizeNL</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>White Space (XML Standard 2.3) and + end of line handling (2.11)+</P+><P+>#x0D and #x0D#x0A are mapped to #x0A+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AguessEncoding"+></A+><B+>guessEncoding</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Text-XML-HXT-DOM-Util.html view
@@ -0,0 +1,633 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.Util</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/Util.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.Util</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>utility functions+</P+><P+>Version : $Id: Util.hs,v 1.3 2006<EM+>05</EM+>01 18:56:24 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AstringTrim"+>stringTrim</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AstringToUpper"+>stringToUpper</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnormalizeNumber"+>normalizeNumber</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnormalizeWhitespace"+>normalizeWhitespace</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AescapeURI"+>escapeURI</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtextEscapeXml"+>textEscapeXml</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AstringEscapeXml"+>stringEscapeXml</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AattrEscapeXml"+>attrEscapeXml</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AstringToInt"+>stringToInt</A+> :: Int -&gt; String -&gt; Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AstringToHexString"+>stringToHexString</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcharToHexString"+>charToHexString</A+> :: Char -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AintToHexString"+>intToHexString</A+> :: Int -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhexStringToInt"+>hexStringToInt</A+> :: String -&gt; Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AdecimalStringToInt"+>decimalStringToInt</A+> :: String -&gt; Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Adoubles"+>doubles</A+> :: Eq a =&gt; [a] -&gt; [a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Asingles"+>singles</A+> :: Eq a =&gt; [a] -&gt; [a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnoDoubles"+>noDoubles</A+> :: Eq a =&gt; [a] -&gt; [a]</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AstringTrim"+></A+><B+>stringTrim</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>remove leading and trailing whitespace with standard Haskell predicate isSpace+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AstringToUpper"+></A+><B+>stringToUpper</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>convert string to upercase with standard Haskell toUpper function+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnormalizeNumber"+></A+><B+>normalizeNumber</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>Removes leading / trailing whitespaces and leading zeros+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnormalizeWhitespace"+></A+><B+>normalizeWhitespace</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>Reduce whitespace sequences to a single whitespace+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AescapeURI"+></A+><B+>escapeURI</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>Escape all disallowed characters in URI + references (see <A HREF="http://www.w3.org/TR/xlink/#link-locators"+>http://www.w3.org/TR/xlink/#link-locators</A+>)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtextEscapeXml"+></A+><B+>textEscapeXml</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>escape XML chars &amp;lt;  and ampercent by transforming them into character references, used for escaping text nodes+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AattrEscapeXml"+>attrEscapeXml</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AstringEscapeXml"+></A+><B+>stringEscapeXml</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>escape XML chars &amp;lt;, &amp;gt;, &amp;quot;,  and ampercent by transforming them into character references+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AattrEscapeXml"+>attrEscapeXml</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AattrEscapeXml"+></A+><B+>attrEscapeXml</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>escape XML chars in attribute values, same as stringEscapeXml, but none blank whitespace+ is also escaped+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringEscapeXml"+>stringEscapeXml</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AstringToInt"+></A+><B+>stringToInt</B+> :: Int -&gt; String -&gt; Int</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AstringToHexString"+></A+><B+>stringToHexString</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>convert a string into a hexadecimal string applying charToHexString+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AcharToHexString"+>charToHexString</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcharToHexString"+></A+><B+>charToHexString</B+> :: Char -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>convert a char (byte) into a 2-digit hexadecimal string+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringToHexString"+>stringToHexString</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AintToHexString"+>intToHexString</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AintToHexString"+></A+><B+>intToHexString</B+> :: Int -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>convert a none negative Int into a hexadecimal string+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AcharToHexString"+>charToHexString</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhexStringToInt"+></A+><B+>hexStringToInt</B+> :: String -&gt; Int</TD+></TR+><TR+><TD CLASS="doc"+>convert a string of hexadecimal digits into an Int+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdecimalStringToInt"+></A+><B+>decimalStringToInt</B+> :: String -&gt; Int</TD+></TR+><TR+><TD CLASS="doc"+>convert a string of digits into an Int+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Adoubles"+></A+><B+>doubles</B+> :: Eq a =&gt; [a] -&gt; [a]</TD+></TR+><TR+><TD CLASS="doc"+>take all elements of a list which occur more than once. The result does not contain doubles.+ (doubles . doubles == doubles)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Asingles"+></A+><B+>singles</B+> :: Eq a =&gt; [a] -&gt; [a]</TD+></TR+><TR+><TD CLASS="doc"+>drop all elements from a list which occur more than once.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnoDoubles"+></A+><B+>noDoubles</B+> :: Eq a =&gt; [a] -&gt; [a]</TD+></TR+><TR+><TD CLASS="doc"+>remove duplicates from list+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Text-XML-HXT-DOM-XmlKeywords.html view
@@ -0,0 +1,2926 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.XmlKeywords</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlKeywords.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.XmlKeywords</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: XmlKeywords.hs,v 1.10 2006<EM+>11</EM+>02 09:34:09 hxml Exp $+</P+><P+>Constants for XML keywords, for special attribute names+   and special attribute values+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3At_xml"+>t_xml</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3At_root"+>t_root</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_canonicalize"+>a_canonicalize</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_default"+>a_default</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_check_namespaces"+>a_check_namespaces</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_contentLength"+>a_contentLength</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_collect_errors"+>a_collect_errors</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_column"+>a_column</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_default_baseuri"+>a_default_baseuri</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_canonicalize"+>a_do_not_canonicalize</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_check_namespaces"+>a_do_not_check_namespaces</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_issue_errors"+>a_do_not_issue_errors</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_issue_warnings"+>a_do_not_issue_warnings</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_preserve_comment"+>a_do_not_preserve_comment</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_remove_whitespace"+>a_do_not_remove_whitespace</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_use_curl"+>a_do_not_use_curl</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_validate"+>a_do_not_validate</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_encoding"+>a_encoding</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_error"+>a_error</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_error_log"+>a_error_log</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_help"+>a_help</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_indent"+>a_indent</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_issue_errors"+>a_issue_errors</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_issue_warnings"+>a_issue_warnings</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_kind"+>a_kind</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_line"+>a_line</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_module"+>a_module</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_modifier"+>a_modifier</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_name"+>a_name</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_no_xml_pi"+>a_no_xml_pi</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_options_curl"+>a_options_curl</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_output_encoding"+>a_output_encoding</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_output_file"+>a_output_file</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_output_xml"+>a_output_xml</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_output_html"+>a_output_html</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_parse_html"+>a_parse_html</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_parse_xml"+>a_parse_xml</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_peref"+>a_peref</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_preserve_comment"+>a_preserve_comment</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_propagate_errors"+>a_propagate_errors</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_proxy"+>a_proxy</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_remove_whitespace"+>a_remove_whitespace</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_show_haskell"+>a_show_haskell</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_show_tree"+>a_show_tree</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_source"+>a_source</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_status"+>a_status</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_standalone"+>a_standalone</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_trace"+>a_trace</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_type"+>a_type</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_use_curl"+>a_use_curl</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_url"+>a_url</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_validate"+>a_validate</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_value"+>a_value</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_verbose"+>a_verbose</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_version"+>a_version</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_xml"+>a_xml</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_xmlns"+>a_xmlns</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_0"+>v_0</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_1"+>v_1</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_yes"+>v_yes</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_no"+>v_no</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_any"+>v_any</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_children"+>v_children</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_choice"+>v_choice</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_empty"+>v_empty</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_mixed"+>v_mixed</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_seq"+>v_seq</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_null"+>v_null</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_option"+>v_option</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_pcdata"+>v_pcdata</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_star"+>v_star</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_plus"+>v_plus</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_any"+>k_any</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_cdata"+>k_cdata</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_empty"+>k_empty</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_enitity"+>k_enitity</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_entities"+>k_entities</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_id"+>k_id</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_idref"+>k_idref</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_idrefs"+>k_idrefs</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_include"+>k_include</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_ignore"+>k_ignore</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_nmtoken"+>k_nmtoken</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_nmtokens"+>k_nmtokens</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_peref"+>k_peref</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_public"+>k_public</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_system"+>k_system</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_enumeration"+>k_enumeration</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_fixed"+>k_fixed</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_implied"+>k_implied</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_ndata"+>k_ndata</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_notation"+>k_notation</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_pcdata"+>k_pcdata</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_required"+>k_required</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_default"+>k_default</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransferPrefix"+>transferPrefix</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransferProtocol"+>transferProtocol</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransferMimeType"+>transferMimeType</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransferEncoding"+>transferEncoding</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransferURI"+>transferURI</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransferDefaultURI"+>transferDefaultURI</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransferStatus"+>transferStatus</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransferMessage"+>transferMessage</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransferVersion"+>transferVersion</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhttpPrefix"+>httpPrefix</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AstringProtocol"+>stringProtocol</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisoLatin1"+>isoLatin1</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AusAscii"+>usAscii</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aucs2"+>ucs2</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Autf8"+>utf8</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Autf16"+>utf16</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Autf16be"+>utf16be</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Autf16le"+>utf16le</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AunicodeString"+>unicodeString</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlNamespace"+>xmlNamespace</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlnsNamespace"+>xmlnsNamespace</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ArelaxNamespace"+>relaxNamespace</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_relax_schema"+>a_relax_schema</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_check_restrictions"+>a_do_not_check_restrictions</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_check_restrictions"+>a_check_restrictions</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_validate_externalRef"+>a_do_not_validate_externalRef</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_validate_externalRef"+>a_validate_externalRef</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_validate_include"+>a_do_not_validate_include</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_validate_include"+>a_validate_include</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_output_changes"+>a_output_changes</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_collect_errors"+>a_do_not_collect_errors</A+> :: String</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3At_xml"+></A+><B+>t_xml</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3At_root"+></A+><B+>t_root</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_canonicalize"+></A+><B+>a_canonicalize</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_default"+></A+><B+>a_default</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_check_namespaces"+></A+><B+>a_check_namespaces</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_contentLength"+></A+><B+>a_contentLength</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_collect_errors"+></A+><B+>a_collect_errors</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_column"+></A+><B+>a_column</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_default_baseuri"+></A+><B+>a_default_baseuri</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_canonicalize"+></A+><B+>a_do_not_canonicalize</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_check_namespaces"+></A+><B+>a_do_not_check_namespaces</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_issue_errors"+></A+><B+>a_do_not_issue_errors</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_issue_warnings"+></A+><B+>a_do_not_issue_warnings</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_preserve_comment"+></A+><B+>a_do_not_preserve_comment</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_remove_whitespace"+></A+><B+>a_do_not_remove_whitespace</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_use_curl"+></A+><B+>a_do_not_use_curl</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_validate"+></A+><B+>a_do_not_validate</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_encoding"+></A+><B+>a_encoding</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_error"+></A+><B+>a_error</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_error_log"+></A+><B+>a_error_log</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_help"+></A+><B+>a_help</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_indent"+></A+><B+>a_indent</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_issue_errors"+></A+><B+>a_issue_errors</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_issue_warnings"+></A+><B+>a_issue_warnings</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_kind"+></A+><B+>a_kind</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_line"+></A+><B+>a_line</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_module"+></A+><B+>a_module</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_modifier"+></A+><B+>a_modifier</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_name"+></A+><B+>a_name</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_no_xml_pi"+></A+><B+>a_no_xml_pi</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_options_curl"+></A+><B+>a_options_curl</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_output_encoding"+></A+><B+>a_output_encoding</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_output_file"+></A+><B+>a_output_file</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_output_xml"+></A+><B+>a_output_xml</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_output_html"+></A+><B+>a_output_html</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_parse_html"+></A+><B+>a_parse_html</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_parse_xml"+></A+><B+>a_parse_xml</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_peref"+></A+><B+>a_peref</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_preserve_comment"+></A+><B+>a_preserve_comment</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_propagate_errors"+></A+><B+>a_propagate_errors</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_proxy"+></A+><B+>a_proxy</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_remove_whitespace"+></A+><B+>a_remove_whitespace</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_show_haskell"+></A+><B+>a_show_haskell</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_show_tree"+></A+><B+>a_show_tree</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_source"+></A+><B+>a_source</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_status"+></A+><B+>a_status</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_standalone"+></A+><B+>a_standalone</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_trace"+></A+><B+>a_trace</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_type"+></A+><B+>a_type</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_use_curl"+></A+><B+>a_use_curl</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_url"+></A+><B+>a_url</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_validate"+></A+><B+>a_validate</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_value"+></A+><B+>a_value</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_verbose"+></A+><B+>a_verbose</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_version"+></A+><B+>a_version</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_xml"+></A+><B+>a_xml</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_xmlns"+></A+><B+>a_xmlns</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_0"+></A+><B+>v_0</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_1"+></A+><B+>v_1</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_yes"+></A+><B+>v_yes</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_no"+></A+><B+>v_no</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_any"+></A+><B+>v_any</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_children"+></A+><B+>v_children</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_choice"+></A+><B+>v_choice</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_empty"+></A+><B+>v_empty</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_mixed"+></A+><B+>v_mixed</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_seq"+></A+><B+>v_seq</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_null"+></A+><B+>v_null</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_option"+></A+><B+>v_option</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_pcdata"+></A+><B+>v_pcdata</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_star"+></A+><B+>v_star</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_plus"+></A+><B+>v_plus</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_any"+></A+><B+>k_any</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_cdata"+></A+><B+>k_cdata</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_empty"+></A+><B+>k_empty</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_enitity"+></A+><B+>k_enitity</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_entities"+></A+><B+>k_entities</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_id"+></A+><B+>k_id</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_idref"+></A+><B+>k_idref</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_idrefs"+></A+><B+>k_idrefs</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_include"+></A+><B+>k_include</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_ignore"+></A+><B+>k_ignore</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_nmtoken"+></A+><B+>k_nmtoken</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_nmtokens"+></A+><B+>k_nmtokens</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_peref"+></A+><B+>k_peref</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_public"+></A+><B+>k_public</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_system"+></A+><B+>k_system</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_enumeration"+></A+><B+>k_enumeration</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_fixed"+></A+><B+>k_fixed</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_implied"+></A+><B+>k_implied</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_ndata"+></A+><B+>k_ndata</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_notation"+></A+><B+>k_notation</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_pcdata"+></A+><B+>k_pcdata</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_required"+></A+><B+>k_required</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_default"+></A+><B+>k_default</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransferPrefix"+></A+><B+>transferPrefix</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransferProtocol"+></A+><B+>transferProtocol</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransferMimeType"+></A+><B+>transferMimeType</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransferEncoding"+></A+><B+>transferEncoding</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransferURI"+></A+><B+>transferURI</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransferDefaultURI"+></A+><B+>transferDefaultURI</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransferStatus"+></A+><B+>transferStatus</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransferMessage"+></A+><B+>transferMessage</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransferVersion"+></A+><B+>transferVersion</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhttpPrefix"+></A+><B+>httpPrefix</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AstringProtocol"+></A+><B+>stringProtocol</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisoLatin1"+></A+><B+>isoLatin1</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AusAscii"+></A+><B+>usAscii</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aucs2"+></A+><B+>ucs2</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Autf8"+></A+><B+>utf8</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Autf16"+></A+><B+>utf16</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Autf16be"+></A+><B+>utf16be</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Autf16le"+></A+><B+>utf16le</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AunicodeString"+></A+><B+>unicodeString</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlNamespace"+></A+><B+>xmlNamespace</B+> :: String</TD+></TR+><TR+><TD CLASS="doc"+>the predefined namespace uri for xml: &quot;http://www.w3.org/XML/1998/namespaces&quot;+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlnsNamespace"+></A+><B+>xmlnsNamespace</B+> :: String</TD+></TR+><TR+><TD CLASS="doc"+>the predefined namespace uri for xmlns: &quot;http://www.w3.org/2000/xmlns/&quot;+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArelaxNamespace"+></A+><B+>relaxNamespace</B+> :: String</TD+></TR+><TR+><TD CLASS="doc"+>Relax NG namespace+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_relax_schema"+></A+><B+>a_relax_schema</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_check_restrictions"+></A+><B+>a_do_not_check_restrictions</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_check_restrictions"+></A+><B+>a_check_restrictions</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_validate_externalRef"+></A+><B+>a_do_not_validate_externalRef</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_validate_externalRef"+></A+><B+>a_validate_externalRef</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_validate_include"+></A+><B+>a_do_not_validate_include</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_validate_include"+></A+><B+>a_validate_include</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_output_changes"+></A+><B+>a_output_changes</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_collect_errors"+></A+><B+>a_do_not_collect_errors</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Schema.html view
@@ -0,0 +1,136 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.RelaxNG.Schema</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Schema.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.RelaxNG.Schema</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: Schema.hs,v 1.3 2005<EM+>09</EM+>30 14:41:44 hxml Exp $+</P+><P+>Don't edit this module, it's generated by RelaxSchemaToXmlTree+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArelaxSchemaTree"+></A+><B+>relaxSchemaTree</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArelaxSchemaArrow"+></A+><B+>relaxSchemaArrow</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Text-XML-HXT-RelaxNG-SchemaGrammar.html view
@@ -0,0 +1,136 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.RelaxNG.SchemaGrammar</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/SchemaGrammar.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.RelaxNG.SchemaGrammar</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: SchemaGrammar.hs,v 1.3 2005<EM+>09</EM+>30 14:41:45 hxml Exp $+</P+><P+>Don't edit this module, it's generated by RelaxSchemaToXmlTree+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArelaxSchemaTree"+></A+><B+>relaxSchemaTree</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArelaxSchemaArrow"+></A+><B+>relaxSchemaArrow</B+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Simplification.html view
@@ -0,0 +1,197 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.RelaxNG.Simplification</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Simplification.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.RelaxNG.Simplification</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>The modul creates the simplified form of a Relax NG schema.+ See also chapter 4 of the Relax NG specification.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AcreateSimpleForm"+>createSimpleForm</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; Bool -&gt; Bool -&gt; Bool -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetErrors"+>getErrors</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcreateSimpleForm"+></A+><B+>createSimpleForm</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; Bool -&gt; Bool -&gt; Bool -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>Creates the simple form of a Relax NG schema+ (see also: relaxOptions)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetErrors"+></A+><B+>getErrors</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>Returns the list of simplification errors or <TT+><A HREF="Control-Arrow-ArrowList.html#v%3Anone"+>none</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Validation.html view
@@ -0,0 +1,444 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.RelaxNG.Validation</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Validation.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.RelaxNG.Validation</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>Validation of a XML document with respect to a valid Relax NG schema in simple form.+ Copied and modified from &quot;An algorithm for RELAX NG validation&quot; by James Clark+ (<A HREF="http://www.thaiopensource.com/relaxng/derivative.html"+>http://www.thaiopensource.com/relaxng/derivative.html</A+>).+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateWithRelaxAndHandleErrors"+>validateWithRelaxAndHandleErrors</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateDocWithRelax"+>validateDocWithRelax</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateRelax"+>validateRelax</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateXMLDoc"+>validateXMLDoc</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AreadForRelax"+>readForRelax</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnormalizeForRelaxValidation"+>normalizeForRelaxValidation</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Acontains"+>contains</A+> :: NameClass -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateWithRelaxAndHandleErrors"+></A+><B+>validateWithRelaxAndHandleErrors</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateDocWithRelax"+></A+><B+>validateDocWithRelax</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Validates a xml document with respect to a Relax NG schema+</P+><UL+><LI+> 1.parameter  :  the arrow for computing the Relax NG schema+</LI+><LI+> 2.parameter  :  list of options for reading and validating+</LI+><LI+> 3.parameter  :  XML document URI+</LI+><LI+> arrow-input  :  ignored+</LI+><LI+> arrow-output :  list of errors or <TT+><A HREF="Control-Arrow-ArrowList.html#v%3Anone"+>none</A+></TT+>+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateRelax"+></A+><B+>validateRelax</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Validates a xml document with respect to a Relax NG schema+</P+><UL+><LI+> 1.parameter  :  XML document+</LI+><LI+> arrow-input  :  Relax NG schema+</LI+><LI+> arrow-output :  list of errors or <TT+><A HREF="Control-Arrow-ArrowList.html#v%3Anone"+>none</A+></TT+>+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateXMLDoc"+></A+><B+>validateXMLDoc</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AreadForRelax"+></A+><B+>readForRelax</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnormalizeForRelaxValidation"+></A+><B+>normalizeForRelaxValidation</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>ArrowXml</A+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>normalize a document for validation with Relax NG: remove all namespace declaraion attributes,+   remove all processing instructions and merge all sequences of text nodes into a single text node+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Acontains"+></A+><B+>contains</B+> :: NameClass -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>tests whether a NameClass contains a particular <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Validator.html view
@@ -0,0 +1,714 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.RelaxNG.Validator</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Validator.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.RelaxNG.Validator</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>This module exports the core functions from the basic validation und simplification libraries.+ It also exports some helper functions for easier access to the validation functionality.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateDocumentWithRelaxSchema"+>validateDocumentWithRelaxSchema</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateDocumentWithRelax"+>validateDocumentWithRelax</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Avalidate"+>validate</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateSchema"+>validateSchema</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateWithSpezification"+>validateWithSpezification</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateSchemaWithSpezification"+>validateSchemaWithSpezification</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateWithoutSpezification"+>validateWithoutSpezification</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-RelaxNG-Validation.html"+>Text.XML.HXT.RelaxNG.Validation</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-RelaxNG-Simplification.html"+>Text.XML.HXT.RelaxNG.Simplification</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateDocumentWithRelaxSchema"+></A+><B+>validateDocumentWithRelaxSchema</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>validate a document with a Relax NG schema+</P+><UL+><LI+> 1.parameter  : the option list for validation+</LI+><LI+> 2.parameter  : the URI of the Relax NG Schema+</LI+><LI+> arrow-input  : the document to be validated, namespaces must have been processed+</LI+><LI+> arrow-output : the input document, or in case of validation errors, an empty document with status information in the root+</LI+></UL+><P+>options evaluated by validateDocumentWithRelaxSchema:+</P+><UL+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_check_restrictions"+>a_check_restrictions</A+></TT+>   : check Relax NG schema restrictions when simplifying the schema (default: on)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate_externalRef"+>a_validate_externalRef</A+></TT+> : validate a Relax NG schema referenced by a externalRef-Pattern (default: on)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate_include"+>a_validate_include</A+></TT+>     : validate a Relax NG schema referenced by a include-Pattern (default: on)+</LI+></UL+><P+>all other options are propagated to the read functions for schema input+</P+><P+>example:+</P+><PRE+> validateDocumentWithRelaxSchema [(a_check_restrictions, &quot;0&quot;)] &quot;testSchema.rng&quot;+</PRE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateDocumentWithRelax"+></A+><B+>validateDocumentWithRelax</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>validate an XML document with respect to a Relax NG schema+</P+><UL+><LI+> 1.parameter  : the valid and simplified schema as XML tree+</LI+><LI+> arrow-input  : the document to be validated+</LI+><LI+> arrow-output : the validated and unchanged document or the empty document with status information set in the root node+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Avalidate"+></A+><B+>validate</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>normalize a document for Relax NG validation,+   call the <TT+><A HREF="Text-XML-HXT-RelaxNG-Validation.html#v%3AvalidateRelax"+>validateRelax</A+></TT+> function for doing the hard work,+   and issue errors+</P+><UL+><LI+> 1.parameter  : the arrow for computing the schema+</LI+><LI+> arrow-input  : the document to be validated+</LI+><LI+> arrow-output : nothing+</LI+></UL+><P+>Document validation+</P+><P+>Validates a xml document with respect to a Relax NG schema.+</P+><P+>First, the schema is validated with respect to the Relax NG Spezification. If no error is found, the xml document is validated with respect to the schema.+</P+><UL+><LI+> 1.parameter :  list of options; namespace progagation is always done+</LI+><LI+> 2.parameter :  XML document+</LI+><LI+> 3.parameter :  Relax NG schema file+</LI+></UL+><P+>available options:+</P+><UL+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_check_restrictions"+>a_do_not_check_restrictions</A+></TT+> : do not check Relax NG schema restrictions (includes do-not-validate-externalRef, do-not-validate-include)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_validate_externalRef"+>a_do_not_validate_externalRef</A+></TT+> : do not validate a Relax NG schema referenced by a externalRef-Pattern+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate_externalRef"+>a_validate_externalRef</A+></TT+> : validate a Relax NG schema referenced by a externalRef-Pattern (default)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_validate_include"+>a_do_not_validate_include</A+></TT+> : do not validate a Relax NG schema referenced by a include-Pattern+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate_include"+>a_validate_include</A+></TT+> : validate a Relax NG schema referenced by a include-Pattern (default)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_changes"+>a_output_changes</A+></TT+> : output Pattern transformations in case of an error+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_collect_errors"+>a_do_not_collect_errors</A+></TT+> : stop Relax NG simplification after the first error has occurred+</LI+><LI+> all <TT+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadDocument"+>readDocument</A+></TT+> options+</LI+></UL+><P+>example:+</P+><PRE+> validate [(a_do_not_check_restrictions, &quot;1&quot;)] &quot;test.xml&quot; &quot;testSchema.rng&quot;+</PRE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateSchema"+></A+><B+>validateSchema</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Relax NG schema validation+</P+><P+>Validates a Relax NG schema with respect to the Relax NG Spezification.+</P+><UL+><LI+> 1.parameter :  list of available options (see also: <TT+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3Avalidate"+>validate</A+></TT+>)+</LI+><LI+> 2.parameter :  Relax NG schema file+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateWithSpezification"+></A+><B+>validateWithSpezification</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Document validation+</P+><P+>Validates a xml document with respect to a Relax NG schema. Similar to <TT+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3Avalidate"+>validate</A+></TT+>, but the Relax NG Specification is not created. Can be used, to check a list of documents more efficiently.+</P+><UL+><LI+> 1.parameter :  list of available options (see also: <TT+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3Avalidate"+>validate</A+></TT+>)+</LI+><LI+> 2.parameter :  XML document+</LI+><LI+> 3.parameter :  Relax NG schema file+</LI+><LI+> arrow-input  :  Relax NG Specification in simple form+</LI+></UL+><P+>example:+</P+><PRE+> Text.XML.HXT.RelaxNG.Schema.relaxSchemaArrow+ &gt;&gt;&gt;+ ( validateWithSpezification [] &quot;foo.xml&quot; &quot;foo.rng&quot;+   &amp;&amp;&amp;+   validateWithSpezification [] &quot;bar.xml&quot; &quot;bar.rng&quot;+ )+</PRE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateSchemaWithSpezification"+></A+><B+>validateSchemaWithSpezification</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Relax NG schema validation+</P+><P+>see <TT+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateSchema"+>validateSchema</A+></TT+> and <TT+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateWithSpezification"+>validateWithSpezification</A+></TT+>+</P+><UL+><LI+> 1.parameter :  list of available options (see also: <TT+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3Avalidate"+>validate</A+></TT+>)+</LI+><LI+> 2.parameter :  Relax NG schema file   +</LI+><LI+> arrow-input  :  Relax NG Specification in simple form+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateWithoutSpezification"+></A+><B+>validateWithoutSpezification</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Document validation+</P+><P+>Validates a xml document with respect to a Relax NG schema, but the schema is <TT+>not</TT+> validated with respect to a specification first. Should be used only for valid Relax NG schemes.+</P+><UL+><LI+> 1.parameter :  list of available options (see also: <TT+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3Avalidate"+>validate</A+></TT+>)+</LI+><LI+> 2.parameter :  XML document+</LI+><LI+> 3.parameter :  Relax NG schema file+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-RelaxNG-Validation.html"+>Text.XML.HXT.RelaxNG.Validation</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-RelaxNG-Simplification.html"+>Text.XML.HXT.RelaxNG.Simplification</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Text-XML-HXT-XSLT-Application.html view
@@ -0,0 +1,185 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.XSLT.Application</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/Application.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.XSLT.Application</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: Application.hs,v 1.6 2006<EM+>11</EM+>17 17:16:24 hxml Exp $+</P+><P+>The transformation functions for XSLT transformation of XML documents+</P+><P+>Exports only two pure functions <TT+><A HREF="Text-XML-HXT-XSLT-Application.html#v%3AapplyStylesheet"+>applyStylesheet</A+></TT+> and <TT+><A HREF="Text-XML-HXT-XSLT-Application.html#v%3AapplyStylesheetWParams"+>applyStylesheetWParams</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AapplyStylesheet"+></A+><B+>applyStylesheet</B+> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+> -&gt; XmlTree -&gt; [XmlTree]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AapplyStylesheetWParams"+></A+><B+>applyStylesheetWParams</B+> :: <A HREF="Text-XML-HXT-XSLT-Application.html#t%3AXPathParams"+>XPathParams</A+> -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+> -&gt; XmlTree -&gt; [XmlTree]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AXPathParams"+></A+><B+>XPathParams</B+> = Map <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> Expr</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Text-XML-HXT-XSLT-Common.html view
@@ -0,0 +1,781 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.XSLT.Common</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/Common.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.XSLT.Common</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: Common.hs,v 1.4 2006<EM+>11</EM+>11 15:36:05 hxml Exp $+</P+><P+>Common imports and functions for HXSLT+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Arrow-XmlNode.html"+>Text.XML.HXT.Arrow.XmlNode</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-XmlKeywords.html"+>Text.XML.HXT.DOM.XmlKeywords</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Data-NavTree.html"+>Data.NavTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Data-Tree-Class.html"+>Data.Tree.Class</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfilterTree"+></A+><B+>filterTree</B+> :: <A HREF="Data-Tree-Class.html#t%3ATree"+>Tree</A+> t =&gt; (a -&gt; Bool) -&gt; t a -&gt; Maybe (t a)</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmapTreeCtx"+></A+><B+>mapTreeCtx</B+> :: <A HREF="Data-Tree-Class.html#t%3ATree"+>Tree</A+> t =&gt; (c -&gt; a -&gt; (c, b)) -&gt; c -&gt; t a -&gt; t b</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfilterTreeCtx"+></A+><B+>filterTreeCtx</B+> :: <A HREF="Data-Tree-Class.html#t%3ATree"+>Tree</A+> t =&gt; (c -&gt; a -&gt; (c, Bool)) -&gt; c -&gt; t a -&gt; Maybe (t a)</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AzipTreeWith"+></A+><B+>zipTreeWith</B+> :: <A HREF="Data-Tree-Class.html#t%3ATree"+>Tree</A+> t =&gt; (a -&gt; b -&gt; c) -&gt; t a -&gt; t b -&gt; t c</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AzipTree"+></A+><B+>zipTree</B+> :: <A HREF="Data-Tree-Class.html#t%3ATree"+>Tree</A+> t =&gt; t a -&gt; t b -&gt; t (a, b)</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AunzipTree"+></A+><B+>unzipTree</B+> :: Functor t =&gt; t (a, b) -&gt; (t a, t b)</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisRoot"+></A+><B+>isRoot</B+> :: XmlTree -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisElemType"+></A+><B+>isElemType</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>XmlNode</A+> n =&gt; QName -&gt; n -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisAttrType"+></A+><B+>isAttrType</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>XmlNode</A+> n =&gt; QName -&gt; n -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisWhitespaceNode"+></A+><B+>isWhitespaceNode</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>XmlNode</A+> n =&gt; n -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcollectTextnodes"+></A+><B+>collectTextnodes</B+> :: [XmlTree] -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtryFetchAttribute"+></A+><B+>tryFetchAttribute</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>XmlNode</A+> n =&gt; n -&gt; QName -&gt; Maybe String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfetchAttributeWDefault"+></A+><B+>fetchAttributeWDefault</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>XmlNode</A+> n =&gt; n -&gt; QName -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfetchAttribute"+></A+><B+>fetchAttribute</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>XmlNode</A+> n =&gt; n -&gt; QName -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasAttribute"+></A+><B+>hasAttribute</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>XmlNode</A+> n =&gt; n -&gt; QName -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetAttribute"+></A+><B+>setAttribute</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>XmlNode</A+> n =&gt; QName -&gt; String -&gt; n -&gt; n</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkQName"+></A+><B+>mkQName</B+> :: String -&gt; String -&gt; String -&gt; QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AExName"+></A+><B+>ExName</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AExName"+></A+><B+>ExName</B+> String String</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ExName')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:ExName" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+></TD+></TR+><TR+><TD CLASS="decl"+>Ord <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkExName"+></A+><B+>mkExName</B+> :: QName -&gt; <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AexLocal"+></A+><B+>exLocal</B+> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AexUri"+></A+><B+>exUri</B+> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseExName"+></A+><B+>parseExName</B+> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"+>UriMapping</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AUriMapping"+></A+><B+>UriMapping</B+> = Map String String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetUriMap"+></A+><B+>getUriMap</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>XmlNode</A+> n =&gt; n -&gt; <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"+>UriMapping</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetUriMap"+></A+><B+>setUriMap</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>XmlNode</A+> n =&gt; <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"+>UriMapping</A+> -&gt; n -&gt; n</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AuriMap2Attrs"+></A+><B+>uriMap2Attrs</B+> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"+>UriMapping</A+> -&gt; [XmlTree]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AexpandNSDecls"+></A+><B+>expandNSDecls</B+> :: XmlTree -&gt; XmlTree</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AlookupPrefix"+></A+><B+>lookupPrefix</B+> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"+>UriMapping</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisNsAttr"+></A+><B+>isNsAttr</B+> :: XmlTree -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkLiteralExpr"+></A+><B+>mkLiteralExpr</B+> :: String -&gt; Expr</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkStringExpr"+></A+><B+>mkStringExpr</B+> :: Expr -&gt; Expr</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkBoolExpr"+></A+><B+>mkBoolExpr</B+> :: Expr -&gt; Expr</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkTrueExpr"+></A+><B+>mkTrueExpr</B+> :: Expr</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AconcatExpr"+></A+><B+>concatExpr</B+> :: [Expr] -&gt; Expr</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsplitExpr"+></A+><B+>splitExpr</B+> :: Expr -&gt; [Expr]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AunionExpr"+></A+><B+>unionExpr</B+> :: [Expr] -&gt; Expr</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsplitMatchByPrio"+></A+><B+>splitMatchByPrio</B+> :: Expr -&gt; [(Float, Expr)]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcomputePriority"+></A+><B+>computePriority</B+> :: Expr -&gt; Float</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcomputeNTestPriority"+></A+><B+>computeNTestPriority</B+> :: NodeTest -&gt; Float</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisMatchExpr"+></A+><B+>isMatchExpr</B+> :: Expr -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfromJustErr"+></A+><B+>fromJustErr</B+> :: String -&gt; Maybe a -&gt; a</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AreadWDefault"+></A+><B+>readWDefault</B+> :: Read a =&gt; a -&gt; String -&gt; a</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Text-XML-HXT-XSLT-Compilation.html view
@@ -0,0 +1,156 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.XSLT.Compilation</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/Compilation.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.XSLT.Compilation</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: Compilation.hs,v 1.6 2006<EM+>11</EM+>11 15:36:05 hxml Exp $+</P+><P+>The compilation functions for XSLT stylesheets+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprepareXSLTDocument"+></A+><B+>prepareXSLTDocument</B+> :: XmlTree -&gt; XmlTree</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AassembleStylesheet"+></A+><B+>assembleStylesheet</B+> :: XmlTree -&gt; [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+>] -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Text-XML-HXT-XSLT-CompiledStylesheet.html view
@@ -0,0 +1,1781 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.XSLT.CompiledStylesheet</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/CompiledStylesheet.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.XSLT.CompiledStylesheet</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: CompiledStylesheet.hs,v 1.2 2006<EM+>11</EM+>11 15:36:05 hxml Exp $+</P+><P+>Types for compiled stylesheets+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3ACompiledStylesheet"+></A+><B+>CompiledStylesheet</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ACompStylesheet"+></A+><B+>CompStylesheet</B+> [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"+>MatchRule</A+>] (Map <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANamedRule"+>NamedRule</A+>) (Map <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"+>Variable</A+>) (Map <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AAttributeSet"+>AttributeSet</A+>]) [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"+>Strips</A+>] <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANSAliasing"+>NSAliasing</A+></TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:CompiledStylesheet')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:CompiledStylesheet" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetMatchRules"+></A+><B+>getMatchRules</B+> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+> -&gt; [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"+>MatchRule</A+>]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetNamedRules"+></A+><B+>getNamedRules</B+> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+> -&gt; Map <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANamedRule"+>NamedRule</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetVariables"+></A+><B+>getVariables</B+> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+> -&gt; Map <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"+>Variable</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetAttributeSets"+></A+><B+>getAttributeSets</B+> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+> -&gt; Map <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AAttributeSet"+>AttributeSet</A+>]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetStrips"+></A+><B+>getStrips</B+> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+> -&gt; [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"+>Strips</A+>]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetAliases"+></A+><B+>getAliases</B+> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+> -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANSAliasing"+>NSAliasing</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> <A NAME="t%3ARule"+></A+><B+>Rule</B+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+>Methods</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A NAME="v%3AgetRuleContent"+></A+><B+>getRuleContent</B+> :: a -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"+>Template</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetRuleParams"+></A+><B+>getRuleParams</B+> :: a -&gt; [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"+>Variable</A+>]</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Rule')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:Rule" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ARule"+>Rule</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"+>MatchRule</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ARule"+>Rule</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANamedRule"+>NamedRule</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AMatchRule"+></A+><B+>MatchRule</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AMatRule"+></A+><B+>MatRule</B+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchExpr"+>MatchExpr</A+> Float (Maybe <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+>) [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"+>MatchRule</A+>] [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"+>Variable</A+>] <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"+>Template</A+></TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:MatchRule')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:MatchRule" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ARule"+>Rule</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"+>MatchRule</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"+>MatchRule</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetRulePrio"+></A+><B+>getRulePrio</B+> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"+>MatchRule</A+> -&gt; Float</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetRuleMode"+></A+><B+>getRuleMode</B+> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"+>MatchRule</A+> -&gt; Maybe <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetRuleImports"+></A+><B+>getRuleImports</B+> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"+>MatchRule</A+> -&gt; [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"+>MatchRule</A+>]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3ANamedRule"+></A+><B+>NamedRule</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ANamRule"+></A+><B+>NamRule</B+> <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"+>Variable</A+>] <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"+>Template</A+></TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:NamedRule')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:NamedRule" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ARule"+>Rule</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANamedRule"+>NamedRule</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANamedRule"+>NamedRule</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetRuleName"+></A+><B+>getRuleName</B+> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANamedRule"+>NamedRule</A+> -&gt; <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AVariable"+></A+><B+>Variable</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AMkVar"+></A+><B+>MkVar</B+> Bool <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> Expr</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Variable')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:Variable" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"+>Variable</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetVarName"+></A+><B+>getVarName</B+> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"+>Variable</A+> -&gt; <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetVarExpr"+></A+><B+>getVarExpr</B+> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"+>Variable</A+> -&gt; Expr</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisParam"+></A+><B+>isParam</B+> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"+>Variable</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>newtype</SPAN+> <A NAME="t%3AUsedAttribSets"+></A+><B+>UsedAttribSets</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AUsedAttribSets"+></A+><B+>UsedAttribSets</B+> [<A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+>]</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:UsedAttribSets')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:UsedAttribSets" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AUsedAttribSets"+>UsedAttribSets</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AAttributeSet"+></A+><B+>AttributeSet</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AAttribSet"+></A+><B+>AttribSet</B+> <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AUsedAttribSets"+>UsedAttribSets</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"+>Template</A+></TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:AttributeSet')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:AttributeSet" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AAttributeSet"+>AttributeSet</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ANTest"+></A+><B+>NTest</B+> = <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseNTest"+></A+><B+>parseNTest</B+> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"+>UriMapping</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANTest"+>NTest</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AStrips"+></A+><B+>Strips</B+> = Map <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANTest"+>NTest</A+> Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AlookupStrip"+></A+><B+>lookupStrip</B+> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> -&gt; [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"+>Strips</A+>] -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AlookupStrip1"+></A+><B+>lookupStrip1</B+> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"+>Strips</A+> -&gt; Maybe Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfeedSpaces"+></A+><B+>feedSpaces</B+> :: Bool -&gt; [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANTest"+>NTest</A+>] -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"+>Strips</A+> -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"+>Strips</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfeedStrips"+></A+><B+>feedStrips</B+> :: [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANTest"+>NTest</A+>] -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"+>Strips</A+> -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"+>Strips</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfeedPreserves"+></A+><B+>feedPreserves</B+> :: [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANTest"+>NTest</A+>] -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"+>Strips</A+> -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"+>Strips</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AstripDocument"+></A+><B+>stripDocument</B+> :: [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"+>Strips</A+>] -&gt; XmlTree -&gt; XmlTree</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AstripStylesheet"+></A+><B+>stripStylesheet</B+> :: XmlTree -&gt; XmlTree</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AstripSpaces"+></A+><B+>stripSpaces</B+> :: (Bool -&gt; XNode -&gt; Bool) -&gt; Bool -&gt; XmlTree -&gt; XmlTree</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ANSAliasing"+></A+><B+>NSAliasing</B+> = Map String String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddAlias"+></A+><B+>addAlias</B+> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"+>UriMapping</A+> -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANSAliasing"+>NSAliasing</A+> -&gt; <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANSAliasing"+>NSAliasing</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AlookupAlias"+></A+><B+>lookupAlias</B+> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANSAliasing"+>NSAliasing</A+> -&gt; QName -&gt; QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaliasUriMapping"+></A+><B+>aliasUriMapping</B+> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANSAliasing"+>NSAliasing</A+> -&gt; <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"+>UriMapping</A+> -&gt; <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"+>UriMapping</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3ATemplate"+></A+><B+>Template</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ATemplComposite"+></A+><B+>TemplComposite</B+> [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"+>Template</A+>]</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ATemplForEach"+></A+><B+>TemplForEach</B+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ASelectExpr"+>SelectExpr</A+> [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ASortKey"+>SortKey</A+>] <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"+>Template</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ATemplChoose"+></A+><B+>TemplChoose</B+> [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AWhen"+>When</A+>]</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ATemplMessage"+></A+><B+>TemplMessage</B+> Bool <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"+>Template</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ATemplElement"+></A+><B+>TemplElement</B+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AComputedQName"+>ComputedQName</A+> <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"+>UriMapping</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AUsedAttribSets"+>UsedAttribSets</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"+>Template</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ATemplAttribute"+></A+><B+>TemplAttribute</B+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AComputedQName"+>ComputedQName</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"+>Template</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ATemplText"+></A+><B+>TemplText</B+> String</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ATemplValueOf"+></A+><B+>TemplValueOf</B+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStringExpr"+>StringExpr</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ATemplComment"+></A+><B+>TemplComment</B+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"+>Template</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ATemplProcInstr"+></A+><B+>TemplProcInstr</B+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStringExpr"+>StringExpr</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"+>Template</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ATemplApply"+></A+><B+>TemplApply</B+> (Maybe <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ASelectExpr"+>SelectExpr</A+>) (Maybe <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+>) (Map <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"+>Variable</A+>) [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ASortKey"+>SortKey</A+>]</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ATemplApplyImports"+></A+><B+>TemplApplyImports</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ATemplVariable"+></A+><B+>TemplVariable</B+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"+>Variable</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ATemplCall"+></A+><B+>TemplCall</B+> <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> (Map <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>ExName</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"+>Variable</A+>)</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ATemplCopy"+></A+><B+>TemplCopy</B+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AUsedAttribSets"+>UsedAttribSets</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"+>Template</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ATemplCopyOf"+></A+><B+>TemplCopyOf</B+> Expr</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Template')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:Template" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"+>Template</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3ASortKey"+></A+><B+>SortKey</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ASortK"+></A+><B+>SortK</B+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStringExpr"+>StringExpr</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStringExpr"+>StringExpr</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStringExpr"+>StringExpr</A+></TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:SortKey')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:SortKey" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ASortKey"+>SortKey</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AWhen"+></A+><B+>When</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AWhenPart"+></A+><B+>WhenPart</B+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATestExpr"+>TestExpr</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"+>Template</A+></TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:When')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:When" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AWhen"+>When</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AComputedQName"+></A+><B+>ComputedQName</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ALiteralQName"+></A+><B+>LiteralQName</B+> QName</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ACompQName"+></A+><B+>CompQName</B+> <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"+>UriMapping</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStringExpr"+>StringExpr</A+> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStringExpr"+>StringExpr</A+></TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ComputedQName')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:ComputedQName" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AComputedQName"+>ComputedQName</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>newtype</SPAN+> <A NAME="t%3ASelectExpr"+></A+><B+>SelectExpr</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ASelectExpr"+></A+><B+>SelectExpr</B+> Expr</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:SelectExpr')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:SelectExpr" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ASelectExpr"+>SelectExpr</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>newtype</SPAN+> <A NAME="t%3ATestExpr"+></A+><B+>TestExpr</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ATestExpr"+></A+><B+>TestExpr</B+> Expr</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:TestExpr')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:TestExpr" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATestExpr"+>TestExpr</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>newtype</SPAN+> <A NAME="t%3AStringExpr"+></A+><B+>StringExpr</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AStringExpr"+></A+><B+>StringExpr</B+> Expr</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:StringExpr')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:StringExpr" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStringExpr"+>StringExpr</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>newtype</SPAN+> <A NAME="t%3AMatchExpr"+></A+><B+>MatchExpr</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AMatchExpr"+></A+><B+>MatchExpr</B+> Expr</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:MatchExpr')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:MatchExpr" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchExpr"+>MatchExpr</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Text-XML-HXT-XSLT-Names.html view
@@ -0,0 +1,812 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.XSLT.Names</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/Names.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.XSLT.Names</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: Names.hs,v 1.2 2006<EM+>11</EM+>11 15:36:05 hxml Exp $+</P+><P+>Names and constants for HXSLT+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltPrefix"+></A+><B+>xsltPrefix</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltUri"+></A+><B+>xsltUri</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXsltName"+></A+><B+>mkXsltName</B+> :: String -&gt; QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXsltAttribName"+></A+><B+>mkXsltAttribName</B+> :: String -&gt; QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltTransform"+></A+><B+>xsltTransform</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltStylesheet"+></A+><B+>xsltStylesheet</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltMessage"+></A+><B+>xsltMessage</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltForEach"+></A+><B+>xsltForEach</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltChoose"+></A+><B+>xsltChoose</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltWhen"+></A+><B+>xsltWhen</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltOtherwise"+></A+><B+>xsltOtherwise</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltIf"+></A+><B+>xsltIf</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltElement"+></A+><B+>xsltElement</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltAttribute"+></A+><B+>xsltAttribute</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltText"+></A+><B+>xsltText</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltValueOf"+></A+><B+>xsltValueOf</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltComment"+></A+><B+>xsltComment</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltProcInstr"+></A+><B+>xsltProcInstr</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltInclude"+></A+><B+>xsltInclude</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltImport"+></A+><B+>xsltImport</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltTemplate"+></A+><B+>xsltTemplate</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltApplyTemplates"+></A+><B+>xsltApplyTemplates</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltApplyImports"+></A+><B+>xsltApplyImports</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltCallTemplate"+></A+><B+>xsltCallTemplate</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltVariable"+></A+><B+>xsltVariable</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltParam"+></A+><B+>xsltParam</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltWithParam"+></A+><B+>xsltWithParam</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltAttributeSet"+></A+><B+>xsltAttributeSet</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltCopy"+></A+><B+>xsltCopy</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltCopyOf"+></A+><B+>xsltCopyOf</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltSort"+></A+><B+>xsltSort</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltStripSpace"+></A+><B+>xsltStripSpace</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltPreserveSpace"+></A+><B+>xsltPreserveSpace</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltNamespaceAlias"+></A+><B+>xsltNamespaceAlias</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltTerminate"+></A+><B+>xsltTerminate</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltSelect"+></A+><B+>xsltSelect</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltTest"+></A+><B+>xsltTest</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltName"+></A+><B+>xsltName</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltNamespace"+></A+><B+>xsltNamespace</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltUseAttributeSets"+></A+><B+>xsltUseAttributeSets</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltHRef"+></A+><B+>xsltHRef</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltMatch"+></A+><B+>xsltMatch</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltPriority"+></A+><B+>xsltPriority</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltMode"+></A+><B+>xsltMode</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltDataType"+></A+><B+>xsltDataType</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltOrder"+></A+><B+>xsltOrder</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltElements"+></A+><B+>xsltElements</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltStylesheetPrefix"+></A+><B+>xsltStylesheetPrefix</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltResultPrefix"+></A+><B+>xsltResultPrefix</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltVersion"+></A+><B+>xsltVersion</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltExlcudeResultPrefixes"+></A+><B+>xsltExlcudeResultPrefixes</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltExtensionElementPrefixes"+></A+><B+>xsltExtensionElementPrefixes</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltUseAttributeSetsLRE"+></A+><B+>xsltUseAttributeSetsLRE</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltVersionLRE"+></A+><B+>xsltVersionLRE</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltExlcudeResultPrefixesLRE"+></A+><B+>xsltExlcudeResultPrefixesLRE</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltExtensionElementPrefixesLRE"+></A+><B+>xsltExtensionElementPrefixesLRE</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlSpace"+></A+><B+>xmlSpace</B+> :: QName</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/Text-XML-HXT-XSLT-XsltArrows.html view
@@ -0,0 +1,385 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.XSLT.XsltArrows</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/XsltArrows.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.XSLT.XsltArrows</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: XsltArrows.hs,v 1.1 2006<EM+>11</EM+>11 15:36:05 hxml Exp $+</P+><P+>The HXT arrow interface for the XSLT module+</P+><P+>The application programming interface to the arrow modules of the Haskell XML Toolbox.+   This module exports all important arrows for input, output, parsing, validating and transforming XML.+   It also exports all basic datatypes and functions of the toolbox.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AxsltCompileStylesheet"+>xsltCompileStylesheet</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-XSLT-XsltArrows.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxsltCompileStylesheetFromURI"+>xsltCompileStylesheetFromURI</A+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> String <A HREF="Text-XML-HXT-XSLT-XsltArrows.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxsltApplyStylesheet"+>xsltApplyStylesheet</A+> :: <A HREF="Text-XML-HXT-XSLT-XsltArrows.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxsltApplyStylesheetFromURI"+>xsltApplyStylesheetFromURI</A+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3ACompiledStylesheet"+>CompiledStylesheet</A+> </TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltCompileStylesheet"+></A+><B+>xsltCompileStylesheet</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-XSLT-XsltArrows.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Compile a document representing an XSLT stylesheet into an internal representation+</P+><P+>The internal representation is an abstract syntax tree for the XSLT rules.+ XSLT imports and includes are evaluated and the rules are normalized and prepared+ for easy application.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltCompileStylesheetFromURI"+></A+><B+>xsltCompileStylesheetFromURI</B+> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> String <A HREF="Text-XML-HXT-XSLT-XsltArrows.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>A convinient function for combining reading a stylesheet and compilation.+</P+><P+>Reading an XSLT stylesheet is always done without validation but with+ namespace propagation. Comments are removed from the stylesheet.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltApplyStylesheet"+></A+><B+>xsltApplyStylesheet</B+> :: <A HREF="Text-XML-HXT-XSLT-XsltArrows.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>apply a compiled XSLT stylesheet to a whole document tree+</P+><P+>The compiled stylesheet must have been created with <TT+><A HREF="Text-XML-HXT-XSLT-XsltArrows.html#v%3AxsltCompileStylesheet"+>xsltCompileStylesheet</A+></TT+>+ or <TT+><A HREF="Text-XML-HXT-XSLT-XsltArrows.html#v%3AxsltCompileStylesheetFromURI"+>xsltCompileStylesheetFromURI</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxsltApplyStylesheetFromURI"+></A+><B+>xsltApplyStylesheetFromURI</B+> :: String -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>IOSArrow</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>apply an XSLT stylesheet given by an URI to a whole document tree+</P+><P+>The string parameter is the URI of the XSLT stylesheet.+ In case of an error during stylesheet compilation or stylesheet application+ all children of the root node are removed and+ the error status is set in the attribute list of the root node of the input document.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3ACompiledStylesheet"+></A+><B+>CompiledStylesheet</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:CompiledStylesheet')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:CompiledStylesheet" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XSLT-XsltArrows.html#t%3ACompiledStylesheet"+>CompiledStylesheet</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/doc-index-36.html view
@@ -0,0 +1,222 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Arrow API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index ($)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>$!!</TD+><TD CLASS="indexlinks"+><A HREF="Control-Strategies-DeepSeq.html#v%3A%24%21%21"+>Control.Strategies.DeepSeq</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>$&lt;</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>$&lt;$</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%24"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>$&lt;&lt;</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>$&lt;&lt;&lt;</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C%3C"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>$&lt;&lt;&lt;&lt;</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C%3C%3C"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/doc-index-43.html view
@@ -0,0 +1,182 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Arrow API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (+)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>+=</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3A%2B%3D"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/doc-index-47.html view
@@ -0,0 +1,182 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Arrow API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (/)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>/&gt;</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3A%2F%3E"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/doc-index-58.html view
@@ -0,0 +1,182 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Arrow API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (:)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>:-&gt;</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3A%3A-%3E"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/doc-index-60.html view
@@ -0,0 +1,182 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Arrow API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (&lt;)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>&lt;/</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3A%3C%2F"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/doc-index-62.html view
@@ -0,0 +1,190 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Arrow API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (&gt;)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>&gt;.</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3A%3E."+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>&gt;&gt;.</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3A%3E%3E."+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/doc-index-A.html view
@@ -0,0 +1,1074 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Arrow API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (A)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>ATTLIST</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AATTLIST"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>ArrowDTD</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>ArrowIO</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIO"+>Control.Arrow.ArrowIO</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>ArrowIOIf</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIOIf"+>Control.Arrow.ArrowIO</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>ArrowIf</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>ArrowList</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>ArrowState</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowState.html#t%3AArrowState"+>Control.Arrow.ArrowState</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>ArrowTree</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>ArrowXml</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>AssocList</TD+><TD CLASS="indexlinks"+><A HREF="Data-AssocList.html#t%3AAssocList"+>Data.AssocList</A+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>AttribSet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AAttribSet"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>AttributeSet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AAttributeSet"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Attributes</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_canonicalize</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_canonicalize"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_check_namespaces</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_check_namespaces"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_check_restrictions</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_check_restrictions"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_collect_errors</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_collect_errors"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_column</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_column"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_contentLength</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_contentLength"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_default</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_default"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_default_baseuri</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_default_baseuri"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_canonicalize</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_canonicalize"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_check_namespaces</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_check_namespaces"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_check_restrictions</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_check_restrictions"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_collect_errors</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_collect_errors"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_issue_errors</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_issue_errors"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_issue_warnings</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_issue_warnings"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_preserve_comment</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_preserve_comment"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_remove_whitespace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_remove_whitespace"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_use_curl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_use_curl"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_validate</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_validate"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_validate_externalRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_validate_externalRef"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_validate_include</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_validate_include"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_encoding</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_encoding"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_error</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_error"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_error_log</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_error_log"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_help</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_help"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_indent</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_indent"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_issue_errors</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_errors"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_issue_warnings</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_warnings"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_kind</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_kind"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_line</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_line"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_modifier</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_modifier"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_module</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_module"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_name</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_name"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_no_xml_pi</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_no_xml_pi"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_options_curl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_options_curl"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_output_changes</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_changes"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_output_encoding</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_encoding"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_output_file</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_file"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_output_html</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_html"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_output_xml</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_xml"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_parse_html</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_html"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_parse_xml</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_xml"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_peref</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_peref"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_preserve_comment</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_preserve_comment"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_propagate_errors</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_propagate_errors"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_proxy</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_proxy"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_relax_schema</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_relax_schema"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_remove_whitespace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_remove_whitespace"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_show_haskell</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_show_haskell"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_show_tree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_show_tree"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_source</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_source"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_standalone</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_standalone"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_status</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_status"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_trace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_trace"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_type</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_type"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_url</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_url"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_use_curl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_use_curl"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_validate</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_validate_externalRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate_externalRef"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_validate_include</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate_include"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_value</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_value"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_verbose</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_verbose"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_version</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_version"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_xml</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_xml"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>a_xmlns</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_xmlns"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>accessState</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowState.html#v%3AaccessState"+>Control.Arrow.ArrowState</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>addAlias</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AaddAlias"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>addAttr</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AaddAttr"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AaddAttr"+>Text.XML.HXT.Arrow.XmlNode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>addAttrl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AaddAttrl"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>addDoctypeDecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AaddDoctypeDecl"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>addEntries</TD+><TD CLASS="indexlinks"+><A HREF="Data-AssocList.html#v%3AaddEntries"+>Data.AssocList</A+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>addEntry</TD+><TD CLASS="indexlinks"+><A HREF="Data-AssocList.html#v%3AaddEntry"+>Data.AssocList</A+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>addHeadlineToXmlDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AaddHeadlineToXmlDoc"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>addXHtmlDoctypeFrameset</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AaddXHtmlDoctypeFrameset"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>addXHtmlDoctypeStrict</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AaddXHtmlDoctypeStrict"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>addXHtmlDoctypeTransitional</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AaddXHtmlDoctypeTransitional"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>addXmlPi</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AaddXmlPi"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>addXmlPiEncoding</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AaddXmlPiEncoding"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>aelem</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aaelem"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>aliasUriMapping</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AaliasUriMapping"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>applyA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3AapplyA"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>applyStylesheet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Application.html#v%3AapplyStylesheet"+>Text.XML.HXT.XSLT.Application</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>applyStylesheetWParams</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Application.html#v%3AapplyStylesheetWParams"+>Text.XML.HXT.XSLT.Application</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>arr2</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3Aarr2"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>arr2A</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3Aarr2A"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>arr2L</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3Aarr2L"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>arr3</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3Aarr3"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>arr4</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3Aarr4"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>arrIO</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIO.html#v%3AarrIO"+>Control.Arrow.ArrowIO</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>arrIO0</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIO.html#v%3AarrIO0"+>Control.Arrow.ArrowIO</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>arrIO2</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIO.html#v%3AarrIO2"+>Control.Arrow.ArrowIO</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>arrIO3</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIO.html#v%3AarrIO3"+>Control.Arrow.ArrowIO</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>arrIO4</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIO.html#v%3AarrIO4"+>Control.Arrow.ArrowIO</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>arrL</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3AarrL"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>assembleStylesheet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Compilation.html#v%3AassembleStylesheet"+>Text.XML.HXT.XSLT.Compilation</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>attachNsEnv</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AattachNsEnv"+>Text.XML.HXT.Arrow.Namespace</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>attr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aattr"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>attrEscapeXml</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AattrEscapeXml"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>attrNodes</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AattrNodes"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/doc-index-B.html view
@@ -0,0 +1,182 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Arrow API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (B)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>buildUniversalName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AbuildUniversalName"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/doc-index-C.html view
@@ -0,0 +1,700 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Arrow API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (C)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>CONDSECT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3ACONDSECT"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>CONTENT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3ACONTENT"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>ChildNodes</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AChildNodes"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>CompQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ACompQName"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>CompStylesheet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ACompStylesheet"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>CompiledStylesheet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+>, <A HREF="Text-XML-HXT-XSLT-XsltArrows.html#t%3ACompiledStylesheet"+>Text.XML.HXT.XSLT.XsltArrows</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>ComputedQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AComputedQName"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>c_err</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>c_fatal</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_fatal"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>c_ok</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_ok"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>c_warn</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_warn"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>canonicalizeAllNodes</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcanonicalizeAllNodes"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>canonicalizeContents</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcanonicalizeContents"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>canonicalizeForXPath</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcanonicalizeForXPath"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>cardTree</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AcardTree"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>catA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3AcatA"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>changeAttrName</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeAttrName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AchangeAttrName"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>changeAttrValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeAttrValue"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>changeAttrl</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeAttrl"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AchangeAttrl"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>changeBaseURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AchangeBaseURI"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>changeChildren</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3AchangeChildren"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AchangeChildren"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>changeCmt</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeCmt"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AchangeCmt"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>changeDTDAttrl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AchangeDTDAttrl"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>changeElemName</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeElemName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AchangeElemName"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>changeName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AchangeName"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>changeNode</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3AchangeNode"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AchangeNode"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>changePiName</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangePiName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AchangePiName"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>changeQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeQName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>changeState</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowState.html#v%3AchangeState"+>Control.Arrow.ArrowState</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Monad-MonadStateIO.html#v%3AchangeState"+>Control.Monad.MonadStateIO</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>changeSysParam</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AchangeSysParam"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>changeText</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeText"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AchangeText"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>changeUserState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AchangeUserState"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>charRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AcharRef"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>charToHexString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AcharToHexString"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>childNodes</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AchildNodes"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>choiceA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3AchoiceA"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>cleanupNamespaces</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AcleanupNamespaces"+>Text.XML.HXT.Arrow.Namespace</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>clearErrStatus</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AclearErrStatus"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>cmt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Acmt"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>collapseAllXText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcollapseAllXText"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>collapseXText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcollapseXText"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>collectNamespaceDecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AcollectNamespaceDecl"+>Text.XML.HXT.Arrow.Namespace</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>collectPrefixUriPairs</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AcollectPrefixUriPairs"+>Text.XML.HXT.Arrow.Namespace</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>collectTextnodes</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AcollectTextnodes"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>computeNTestPriority</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AcomputeNTestPriority"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>computePriority</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AcomputePriority"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>concatExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AconcatExpr"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>constA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3AconstA"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>constL</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3AconstL"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>containing</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3Acontaining"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>contains</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Validation.html#v%3Acontains"+>Text.XML.HXT.RelaxNG.Validation</A+>, Text.XML.HXT.RelaxNG.Validator</TD+></TR+><TR+><TD CLASS="indexentry"+>createSimpleForm</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Simplification.html#v%3AcreateSimpleForm"+>Text.XML.HXT.RelaxNG.Simplification</A+>, Text.XML.HXT.RelaxNG.Validator</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/doc-index-D.html view
@@ -0,0 +1,294 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Arrow API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (D)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>DOCTYPE</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3ADOCTYPE"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>DTDElem</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>DeepSeq</TD+><TD CLASS="indexlinks"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>Control.Strategies.DeepSeq</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>dataNT</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3AdataNT"+>Data.NavTree</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>decimalStringToInt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AdecimalStringToInt"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>decodeDocument</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-DocumentInput.html#v%3AdecodeDocument"+>Text.XML.HXT.Arrow.DocumentInput</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>deep</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3Adeep"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>deepSeq</TD+><TD CLASS="indexlinks"+><A HREF="Control-Strategies-DeepSeq.html#v%3AdeepSeq"+>Control.Strategies.DeepSeq</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>deepest</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3Adeepest"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>delEntries</TD+><TD CLASS="indexlinks"+><A HREF="Data-AssocList.html#v%3AdelEntries"+>Data.AssocList</A+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>delEntry</TD+><TD CLASS="indexlinks"+><A HREF="Data-AssocList.html#v%3AdelEntry"+>Data.AssocList</A+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>depthTree</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AdepthTree"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>documentStatusOk</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AdocumentStatusOk"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>doubles</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3Adoubles"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>downNT</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3AdownNT"+>Data.NavTree</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/doc-index-E.html view
@@ -0,0 +1,370 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Arrow API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (E)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>ELEMENT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AELEMENT"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>ENTITY</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AENTITY"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>ExName</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AExName"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>eelem</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aeelem"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>encodeDocument</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-DocumentOutput.html#v%3AencodeDocument"+>Text.XML.HXT.Arrow.DocumentOutput</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>entityRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AentityRef"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>equalQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequalQName"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>equalQNameBy</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequalQNameBy"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>equivQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequivQName"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>equivUri</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequivUri"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>err</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aerr"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>errorMsgCollect</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AerrorMsgCollect"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>errorMsgIgnore</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AerrorMsgIgnore"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>errorMsgStderr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AerrorMsgStderr"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>errorMsgStderrAndCollect</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AerrorMsgStderrAndCollect"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>escapeHtmlDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AescapeHtmlDoc"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>escapeURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AescapeURI"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>escapeXmlDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AescapeXmlDoc"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>exLocal</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AexLocal"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>exUri</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AexUri"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>expandNSDecls</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AexpandNSDecls"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>expandURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AexpandURI"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>expandURIString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AexpandURIString"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/doc-index-F.html view
@@ -0,0 +1,294 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Arrow API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (F)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>fatal</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Afatal"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>feedPreserves</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AfeedPreserves"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>feedSpaces</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AfeedSpaces"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>feedStrips</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AfeedStrips"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>fetchAttribute</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AfetchAttribute"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>fetchAttributeWDefault</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AfetchAttributeWDefault"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>filterErrorMsg</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AfilterErrorMsg"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>filterTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AfilterTree"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>filterTreeCtx</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AfilterTreeCtx"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>foldTree</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AfoldTree"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>formatNTreeF</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-TypeDefs.html#v%3AformatNTreeF"+>Data.Tree.NTree.TypeDefs</A+>, Text.XML.HXT.Arrow.XmlNode</TD+></TR+><TR+><TD CLASS="indexentry"+>formatTree</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AformatTree"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>fromJustErr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AfromJustErr"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>fromLA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ListArrow.html#v%3AfromLA"+>Control.Arrow.ListArrow</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>fromSLA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-StateListArrow.html#v%3AfromSLA"+>Control.Arrow.StateListArrow</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/doc-index-G.html view
@@ -0,0 +1,1130 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Arrow API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (G)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>getAliases</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetAliases"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getAllParams</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetAllParams"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getAttrName</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetAttrName"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>getAttrValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrValue"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getAttrValue0</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrValue0"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getAttributeSets</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetAttributeSets"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getAttrl</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrl"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetAttrl"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>getBaseURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetBaseURI"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getCdata</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetCdata"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetCdata"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getCharRef</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetCharRef"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetCharRef"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getChildren</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3AgetChildren"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AgetChildren"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>getChildrenNT</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3AgetChildrenNT"+>Data.NavTree</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getCmt</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetCmt"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetCmt"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>getDTDAttrValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetDTDAttrValue"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getDTDAttrl</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetDTDAttrl"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetDTDAttrl"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getDTDPart</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetDTDPart"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetDTDPart"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>getDefaultBaseURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetDefaultBaseURI"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getDocumentContents</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ProcessDocument.html#v%3AgetDocumentContents"+>Text.XML.HXT.Arrow.ProcessDocument</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getElemAndAttrNodeSet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetElemAndAttrNodeSet"+>Text.XML.HXT.Arrow.XmlNodeSet</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getElemName</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetElemName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetElemName"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>getElemNodeSet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetElemNodeSet"+>Text.XML.HXT.Arrow.XmlNodeSet</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getEncoding</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-DocumentInput.html#v%3AgetEncoding"+>Text.XML.HXT.Arrow.DocumentInput</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getEncodingFct</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AgetEncodingFct"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getEntityRef</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetEntityRef"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetEntityRef"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>getErrStatus</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetErrStatus"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getErrorLevel</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetErrorLevel"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetErrorLevel"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>getErrorMessages</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetErrorMessages"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getErrorMsg</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetErrorMsg"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetErrorMsg"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>getErrors</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Simplification.html#v%3AgetErrors"+>Text.XML.HXT.RelaxNG.Simplification</A+>, Text.XML.HXT.RelaxNG.Validator</TD+></TR+><TR+><TD CLASS="indexentry"+>getFragmentFromURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetFragmentFromURI"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getFromNodeSet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetFromNodeSet"+>Text.XML.HXT.Arrow.XmlNodeSet</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getLocalPart</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetLocalPart"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetLocalPart"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>getMatchRules</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetMatchRules"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getName</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetName"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getNamePrefix</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetNamePrefix"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetNamePrefix"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>getNamedRules</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetNamedRules"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getNamespaceDecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AgetNamespaceDecl"+>Text.XML.HXT.Arrow.Namespace</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getNamespaceUri</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetNamespaceUri"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetNamespaceUri"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getNode</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3AgetNode"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AgetNode"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>getOutputEncoding</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-DocumentOutput.html#v%3AgetOutputEncoding"+>Text.XML.HXT.Arrow.DocumentOutput</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getOutputEncodingFct</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AgetOutputEncodingFct"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getParam</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetParam"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getParamInt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetParamInt"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getParamString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetParamString"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getPathFromURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetPathFromURI"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getPiContent</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetPiContent"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetPiContent"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getPiName</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetPiName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetPiName"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>getPortFromURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetPortFromURI"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getQAttrValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetQAttrValue"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getQAttrValue0</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetQAttrValue0"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetQName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getQualifiedName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetQualifiedName"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>getQueryFromURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetQueryFromURI"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getRegNameFromURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetRegNameFromURI"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getRuleContent</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetRuleContent"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getRuleImports</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetRuleImports"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getRuleMode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetRuleMode"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getRuleName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetRuleName"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getRuleParams</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetRuleParams"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getRulePrio</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetRulePrio"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getSchemeFromURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetSchemeFromURI"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getState</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowState.html#v%3AgetState"+>Control.Arrow.ArrowState</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Monad-MonadStateIO.html#v%3AgetState"+>Control.Monad.MonadStateIO</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getStrips</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetStrips"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getSysParam</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetSysParam"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getText</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetText"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetText"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>getTraceLevel</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetTraceLevel"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getURIContents</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-DocumentInput.html#v%3AgetURIContents"+>Text.XML.HXT.Arrow.DocumentInput</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getUniversalName</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetUniversalName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetUniversalName"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getUniversalUri</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetUniversalUri"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AgetUniversalUri"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>getUriMap</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AgetUriMap"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getUserInfoFromURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetUserInfoFromURI"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getUserState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetUserState"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getVarExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetVarExpr"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getVarName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetVarName"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getVariables</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AgetVariables"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getXPathNodeSet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetXPathNodeSet"+>Text.XML.HXT.Arrow.XmlNodeSet</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getXPathTrees</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetXPathTrees"+>Text.XML.HXT.Arrow.XmlNodeSet</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getXPathTreesInDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetXPathTreesInDoc"+>Text.XML.HXT.Arrow.XmlNodeSet</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getXPathTreesInDocWithNsEnv</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetXPathTreesInDocWithNsEnv"+>Text.XML.HXT.Arrow.XmlNodeSet</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getXPathTreesWithNsEnv</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetXPathTreesWithNsEnv"+>Text.XML.HXT.Arrow.XmlNodeSet</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getXmlContents</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-DocumentInput.html#v%3AgetXmlContents"+>Text.XML.HXT.Arrow.DocumentInput</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>getXmlEntityContents</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-DocumentInput.html#v%3AgetXmlEntityContents"+>Text.XML.HXT.Arrow.DocumentInput</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>guards</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3Aguards"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>guardsP</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3AguardsP"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>guessEncoding</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AguessEncoding"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/doc-index-H.html view
@@ -0,0 +1,326 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Arrow API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (H)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>hasAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasAttr"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>hasAttrValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasAttrValue"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>hasAttribute</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AhasAttribute"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>hasDTDAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasDTDAttr"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>hasEntry</TD+><TD CLASS="indexlinks"+><A HREF="Data-AssocList.html#v%3AhasEntry"+>Data.AssocList</A+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>hasLocalPart</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasLocalPart"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>hasName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>hasNamePrefix</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasNamePrefix"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>hasNameWith</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasNameWith"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>hasNamespaceUri</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasNamespaceUri"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>hasQAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasQAttr"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>hasQAttrValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasQAttrValue"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>hasQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasQName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>hasText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AhasText"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>hasXmlPi</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AhasXmlPi"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>haskellRepOfXmlDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AhaskellRepOfXmlDoc"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>hexStringToInt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AhexStringToInt"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>hread</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3Ahread"+>Text.XML.HXT.Arrow.ReadDocument</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>httpPrefix</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AhttpPrefix"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/doc-index-I.html view
@@ -0,0 +1,978 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Arrow API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (I)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry" COLSPAN="2"+>IOLA</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"+>Control.Arrow.IOListArrow</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-IOListArrow.html#v%3AIOLA"+>Control.Arrow.IOListArrow</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>IOSArrow</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>IOSLA</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"+>Control.Arrow.IOStateListArrow</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-IOStateListArrow.html#v%3AIOSLA"+>Control.Arrow.IOStateListArrow</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>IOStateArrow</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>IfThen</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#t%3AIfThen"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>ifA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3AifA"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>ifP</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3AifP"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>indentDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AindentDoc"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>initialState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AinitialState"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>initialSysState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AinitialSysState"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>insertChildrenAfter</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3AinsertChildrenAfter"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>insertChildrenAt</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3AinsertChildrenAt"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>insertTreeTemplate</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3AinsertTreeTemplate"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>intToCharRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AintToCharRef"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>intToCharRefHex</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AintToCharRefHex"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>intToHexString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AintToHexString"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>io</TD+><TD CLASS="indexlinks"+><A HREF="Control-Monad-MonadStateIO.html#v%3Aio"+>Control.Monad.MonadStateIO</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>is1ByteXmlChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Ais1ByteXmlChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3AisA"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>isAttr</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisAttr"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisAttr"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>isAttrType</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AisAttrType"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>isCdata</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisCdata"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisCdata"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>isCharRef</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisCharRef"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisCharRef"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>isCmt</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisCmt"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisCmt"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>isDTD</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTD"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisDTD"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>isDTDAttlist</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDAttlist"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>isDTDCondSect</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDCondSect"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>isDTDContent</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDContent"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>isDTDDoctype</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDDoctype"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>isDTDElement</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDElement"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>isDTDEntity</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDEntity"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>isDTDName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>isDTDNotation</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDNotation"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>isDTDPERef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDPERef"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>isDTDPEntity</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTDPEntity"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>isDeclaredNamespace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisDeclaredNamespace"+>Text.XML.HXT.DOM.NamespacePredicates</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>isElem</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisElem"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisElem"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>isElemType</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AisElemType"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>isEntityRef</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisEntityRef"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisEntityRef"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>isError</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisError"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisError"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>isFollowingMultiByteChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisFollowingMultiByteChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isIOA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIO.html#v%3AisIOA"+>Control.Arrow.ArrowIO</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>isInner</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AisInner"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>isLeadingMultiByteChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisLeadingMultiByteChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isLeaf</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AisLeaf"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>isMatchExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AisMatchExpr"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isMultiByteChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisMultiByteChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isMultiByteXmlChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisMultiByteXmlChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isNByteChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisNByteChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isNCName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisNCName"+>Text.XML.HXT.DOM.NamespacePredicates</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>isNamespaceDeclAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AisNamespaceDeclAttr"+>Text.XML.HXT.Arrow.Namespace</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>isNsAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AisNsAttr"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isParam</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AisParam"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>isPi</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisPi"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisPi"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>isRoot</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisRoot"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AisRoot"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>isText</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisText"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AisText"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>isWellformedNSDecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedNSDecl"+>Text.XML.HXT.DOM.NamespacePredicates</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>isWellformedQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedQName"+>Text.XML.HXT.DOM.NamespacePredicates</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>isWellformedQualifiedName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedQualifiedName"+>Text.XML.HXT.DOM.NamespacePredicates</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>isWhitespaceNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AisWhitespaceNode"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXml11SpaceChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXml11SpaceChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlBaseChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlBaseChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlCombiningChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlCombiningChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlControlOrPermanentlyUndefined</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlControlOrPermanentlyUndefined"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlDigit</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlDigit"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlExtender</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlExtender"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlIdeographicChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlIdeographicChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlLatin1Char</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlLatin1Char"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlLetter</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlLetter"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlNCNameChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNCNameChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlNCNameStartChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNCNameStartChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlNameChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNameChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlNameStartChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNameStartChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlPi</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisXmlPi"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlPubidChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlPubidChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlSpaceChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlSpaceChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isoLatin1</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisoLatin1"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>issueErr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AissueErr"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>issueFatal</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AissueFatal"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>issueWarn</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AissueWarn"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/doc-index-K.html view
@@ -0,0 +1,358 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Arrow API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (K)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>k_any</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_any"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_cdata</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_cdata"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_default</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_default"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_empty</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_empty"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_enitity</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_enitity"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_entities</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_entities"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_enumeration</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_enumeration"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_fixed</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_fixed"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_id</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_id"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_idref</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_idref"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_idrefs</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_idrefs"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_ignore</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_ignore"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_implied</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_implied"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_include</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_include"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_ndata</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_ndata"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_nmtoken</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_nmtoken"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_nmtokens</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_nmtokens"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_notation</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_notation"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_pcdata</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_pcdata"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_peref</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_peref"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_public</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_public"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_required</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_required"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>k_system</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_system"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/doc-index-L.html view
@@ -0,0 +1,290 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Arrow API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (L)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry" COLSPAN="2"+>LA</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ListArrow.html#t%3ALA"+>Control.Arrow.ListArrow</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ListArrow.html#v%3ALA"+>Control.Arrow.ListArrow</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>LiteralQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ALiteralQName"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>latin1ToUnicode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Alatin1ToUnicode"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>leftNT</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3AleftNT"+>Data.NavTree</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>liftSt</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-IOStateListArrow.html#v%3AliftSt"+>Control.Arrow.IOStateListArrow</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>listA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3AlistA"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>localPart</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AlocalPart"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>lookup1</TD+><TD CLASS="indexlinks"+><A HREF="Data-AssocList.html#v%3Alookup1"+>Data.AssocList</A+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>lookupAlias</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AlookupAlias"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>lookupDef</TD+><TD CLASS="indexlinks"+><A HREF="Data-AssocList.html#v%3AlookupDef"+>Data.AssocList</A+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>lookupPrefix</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AlookupPrefix"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>lookupStrip</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AlookupStrip"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>lookupStrip1</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AlookupStrip1"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/doc-index-M.html view
@@ -0,0 +1,650 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Arrow API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (M)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>MatRule</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AMatRule"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>MatchExpr</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchExpr"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AMatchExpr"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>MatchRule</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>MkVar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AMkVar"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>mapTreeCtx</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AmapTreeCtx"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>maybePlus</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3AmaybePlus"+>Data.NavTree</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>maybeStar</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3AmaybeStar"+>Data.NavTree</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>mergeAttrl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmergeAttrl"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>mkAbsURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AmkAbsURI"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>mkAttr</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkAttr"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkAttr"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>mkAttrNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkAttrNode"+>Text.XML.HXT.Arrow.XmlNode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>mkBoolExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AmkBoolExpr"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>mkCdata</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkCdata"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkCdata"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>mkCharRef</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkCharRef"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkCharRef"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>mkCmt</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkCmt"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkCmt"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>mkDTDDoctype</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkDTDDoctype"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>mkDTDElem</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkDTDElem"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkDTDElem"+>Text.XML.HXT.Arrow.XmlNode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>mkDTDElement</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkDTDElement"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>mkDTDEntity</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkDTDEntity"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>mkDTDNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkDTDNode"+>Text.XML.HXT.Arrow.XmlNode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>mkDTDPEntity</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkDTDPEntity"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>mkElement</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkElement"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>mkElementNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkElementNode"+>Text.XML.HXT.Arrow.XmlNode</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>mkEntityRef</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkEntityRef"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkEntityRef"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>mkError</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkError"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkError"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>mkExName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AmkExName"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>mkLeaf</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AmkLeaf"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>mkLiteralExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AmkLiteralExpr"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>mkName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkName"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>mkNsName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkNsName"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>mkPi</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkPi"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkPi"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>mkPrefixLocalPart</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkPrefixLocalPart"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>mkQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AmkQName"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>mkSNsName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkSNsName"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>mkStringExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AmkStringExpr"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>mkText</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkText"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmkText"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>mkTree</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AmkTree"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>mkTrueExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AmkTrueExpr"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>mkXsltAttribName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AmkXsltAttribName"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>mkXsltName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AmkXsltName"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>mkelem</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Amkelem"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>mkqelem</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Amkqelem"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>multi</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3Amulti"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/doc-index-N.html view
@@ -0,0 +1,402 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Arrow API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (N)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>NAME</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3ANAME"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>NOTATION</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3ANOTATION"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>NSAliasing</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANSAliasing"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>NT</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3ANT"+>Data.NavTree</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>NTest</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANTest"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>NTree</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>Data.Tree.NTree.TypeDefs</A+>, Text.XML.HXT.Arrow.XmlNode</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-TypeDefs.html#v%3ANTree"+>Data.Tree.NTree.TypeDefs</A+>, Text.XML.HXT.Arrow.XmlNode</TD+></TR+><TR+><TD CLASS="indexentry"+>NTrees</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>Data.Tree.NTree.TypeDefs</A+>, Text.XML.HXT.Arrow.XmlNode</TD+></TR+><TR+><TD CLASS="indexentry"+>NamRule</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ANamRule"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>NamedRule</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANamedRule"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>NavTree</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#t%3ANavTree"+>Data.NavTree</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>NsEnv</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>namePrefix</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnamePrefix"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>namespaceUri</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnamespaceUri"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>neg</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3Aneg"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>nextState</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowState.html#v%3AnextState"+>Control.Arrow.ArrowState</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>noDoubles</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AnoDoubles"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>nodesTree</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AnodesTree"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>none</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3Anone"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>normalizeForRelaxValidation</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Validation.html#v%3AnormalizeForRelaxValidation"+>Text.XML.HXT.RelaxNG.Validation</A+>, Text.XML.HXT.RelaxNG.Validator</TD+></TR+><TR+><TD CLASS="indexentry"+>normalizeNL</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AnormalizeNL"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>normalizeNsUri</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnormalizeNsUri"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>normalizeNumber</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AnormalizeNumber"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>normalizeWhitespace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AnormalizeWhitespace"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>notContaining</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3AnotContaining"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>ntree</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3Antree"+>Data.NavTree</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>nullQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnullQName"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>numberLinesInXmlDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AnumberLinesInXmlDoc"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/doc-index-O.html view
@@ -0,0 +1,190 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Arrow API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (O)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>o'</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3Ao%27"+>Data.NavTree</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>orElse</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3AorElse"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/doc-index-P.html view
@@ -0,0 +1,506 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Arrow API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (P)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>PENTITY</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3APENTITY"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>PEREF</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3APEREF"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>parseExName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AparseExName"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>parseHtmlContent</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseHtmlContent"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>parseHtmlDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseHtmlDoc"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>parseHtmlDocument</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ProcessDocument.html#v%3AparseHtmlDocument"+>Text.XML.HXT.Arrow.ProcessDocument</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>parseNTest</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AparseNTest"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>parseXmlAttrValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlAttrValue"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>parseXmlContent</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlContent"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>parseXmlDTDEntityValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDTDEntityValue"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>parseXmlDTDPart</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDTDPart"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>parseXmlDTDdecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDTDdecl"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>parseXmlDTDdeclPart</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDTDdeclPart"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>parseXmlDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDoc"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>parseXmlDocEncodingSpec</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDocEncodingSpec"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>parseXmlDocument</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ProcessDocument.html#v%3AparseXmlDocument"+>Text.XML.HXT.Arrow.ProcessDocument</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>parseXmlEntityEncodingSpec</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlEntityEncodingSpec"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>parseXmlGeneralEntityValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlGeneralEntityValue"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>partitionA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3ApartitionA"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>perform</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3Aperform"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>preorderNT</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3ApreorderNT"+>Data.NavTree</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>prepareXSLTDocument</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Compilation.html#v%3AprepareXSLTDocument"+>Text.XML.HXT.XSLT.Compilation</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>processAttrl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AprocessAttrl"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>processBottomUp</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessBottomUp"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>processBottomUpWhenNot</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessBottomUpWhenNot"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>processChildren</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessChildren"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>processDTD</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-DTDProcessing.html#v%3AprocessDTD"+>Text.XML.HXT.Arrow.DTDProcessing</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>processFromNodeSet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AprocessFromNodeSet"+>Text.XML.HXT.Arrow.XmlNodeSet</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>processGeneralEntities</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-GeneralEntitySubstitution.html#v%3AprocessGeneralEntities"+>Text.XML.HXT.Arrow.GeneralEntitySubstitution</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>processTopDown</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessTopDown"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>processTopDownUntil</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessTopDownUntil"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>processTopDownWithAttrl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AprocessTopDownWithAttrl"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>processWithNsEnv</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AprocessWithNsEnv"+>Text.XML.HXT.Arrow.Namespace</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>processWithNsEnvWithoutAttrl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AprocessWithNsEnvWithoutAttrl"+>Text.XML.HXT.Arrow.Namespace</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>processXPathTrees</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AprocessXPathTrees"+>Text.XML.HXT.Arrow.XmlNodeSet</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>processXPathTreesWithNsEnv</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AprocessXPathTreesWithNsEnv"+>Text.XML.HXT.Arrow.XmlNodeSet</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>propagateAndValidateNamespaces</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ProcessDocument.html#v%3ApropagateAndValidateNamespaces"+>Text.XML.HXT.Arrow.ProcessDocument</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>propagateNamespaces</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3ApropagateNamespaces"+>Text.XML.HXT.Arrow.Namespace</A+>, <A HREF="Text-XML-HXT-Arrow.html#v%3ApropagateNamespaces"+>Text.XML.HXT.Arrow</A+>, <A HREF="Text-XML-HXT-Arrow.html#v%3ApropagateNamespaces"+>Text.XML.HXT.Arrow</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>putXmlDocument</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-DocumentOutput.html#v%3AputXmlDocument"+>Text.XML.HXT.Arrow.DocumentOutput</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>putXmlSource</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-DocumentOutput.html#v%3AputXmlSource"+>Text.XML.HXT.Arrow.DocumentOutput</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>putXmlTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-DocumentOutput.html#v%3AputXmlTree"+>Text.XML.HXT.Arrow.DocumentOutput</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/doc-index-Q.html view
@@ -0,0 +1,206 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Arrow API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (Q)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>QN</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AQN"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>QName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>qattr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aqattr"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>qualifiedName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AqualifiedName"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/doc-index-R.html view
@@ -0,0 +1,438 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Arrow API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (R)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>Rule</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ARule"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>readDocument</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadDocument"+>Text.XML.HXT.Arrow.ReadDocument</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>readForRelax</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Validation.html#v%3AreadForRelax"+>Text.XML.HXT.RelaxNG.Validation</A+>, Text.XML.HXT.RelaxNG.Validator</TD+></TR+><TR+><TD CLASS="indexentry"+>readFromDocument</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadFromDocument"+>Text.XML.HXT.Arrow.ReadDocument</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>readFromString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadFromString"+>Text.XML.HXT.Arrow.ReadDocument</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>readString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3AreadString"+>Text.XML.HXT.Arrow.ReadDocument</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>readWDefault</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AreadWDefault"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>relaxNamespace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3ArelaxNamespace"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>relaxSchemaArrow</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Schema.html#v%3ArelaxSchemaArrow"+>Text.XML.HXT.RelaxNG.Schema</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-SchemaGrammar.html#v%3ArelaxSchemaArrow"+>Text.XML.HXT.RelaxNG.SchemaGrammar</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>relaxSchemaTree</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Schema.html#v%3ArelaxSchemaTree"+>Text.XML.HXT.RelaxNG.Schema</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-SchemaGrammar.html#v%3ArelaxSchemaTree"+>Text.XML.HXT.RelaxNG.SchemaGrammar</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>removeAllComment</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveAllComment"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>removeAllWhiteSpace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveAllWhiteSpace"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>removeAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AremoveAttr"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>removeComment</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveComment"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>removeDocWhiteSpace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveDocWhiteSpace"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>removeEncodingSpec</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AremoveEncodingSpec"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>removeQAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AremoveQAttr"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>removeWhiteSpace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AremoveWhiteSpace"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>replaceChildren</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3AreplaceChildren"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>revPreorderNT</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3ArevPreorderNT"+>Data.NavTree</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>rightNT</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3ArightNT"+>Data.NavTree</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>root</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aroot"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>run</TD+><TD CLASS="indexlinks"+><A HREF="Control-Monad-MonadStateIO.html#v%3Arun"+>Control.Monad.MonadStateIO</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>runIOLA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-IOListArrow.html#v%3ArunIOLA"+>Control.Arrow.IOListArrow</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>runIOSLA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-IOStateListArrow.html#v%3ArunIOSLA"+>Control.Arrow.IOStateListArrow</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>runInLocalURIContext</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3ArunInLocalURIContext"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>runLA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ListArrow.html#v%3ArunLA"+>Control.Arrow.ListArrow</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>runSLA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-StateListArrow.html#v%3ArunSLA"+>Control.Arrow.StateListArrow</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>runSt</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-IOStateListArrow.html#v%3ArunSt"+>Control.Arrow.IOStateListArrow</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>runX</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3ArunX"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/doc-index-S.html view
@@ -0,0 +1,778 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Arrow API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (S)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry" COLSPAN="2"+>SLA</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"+>Control.Arrow.StateListArrow</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-StateListArrow.html#v%3ASLA"+>Control.Arrow.StateListArrow</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>STIO</TD+><TD CLASS="indexlinks"+><A HREF="Control-Monad-MonadStateIO.html#v%3ASTIO"+>Control.Monad.MonadStateIO</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>SelectExpr</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ASelectExpr"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ASelectExpr"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>SortK</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ASortK"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>SortKey</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ASortKey"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>StateIO</TD+><TD CLASS="indexlinks"+><A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>Control.Monad.MonadStateIO</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>StringExpr</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStringExpr"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AStringExpr"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Strips</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>sattr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Asattr"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>selem</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aselem"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>seqA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3AseqA"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>setAttrName</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetAttrName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AsetAttrName"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>setAttribute</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AsetAttribute"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>setAttrl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetAttrl"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>setBaseURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetBaseURI"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>setChildren</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3AsetChildren"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AsetChildren"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>setCmt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AsetCmt"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>setDTDAttrValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetDTDAttrValue"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>setDTDAttrl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AsetDTDAttrl"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>setDefaultBaseURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetDefaultBaseURI"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>setDocumentStatus</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetDocumentStatus"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>setDocumentStatusFromSystemState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetDocumentStatusFromSystemState"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>setElemAttrl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AsetElemAttrl"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>setElemName</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetElemName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AsetElemName"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>setErrMsgStatus</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetErrMsgStatus"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>setErrStatus</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetErrStatus"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>setErrorMsgHandler</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetErrorMsgHandler"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>setName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AsetName"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>setNamespace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AsetNamespace"+>Text.XML.HXT.DOM.NamespacePredicates</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>setNode</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowTree.html#v%3AsetNode"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AsetNode"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>setParam</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetParam"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>setParamInt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetParamInt"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>setParamList</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetParamList"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>setParamString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetParamString"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>setPiName</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetPiName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AsetPiName"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>setQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetQName"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>setState</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowState.html#v%3AsetState"+>Control.Arrow.ArrowState</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Monad-MonadStateIO.html#v%3AsetState"+>Control.Monad.MonadStateIO</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>setText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AsetText"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>setTraceLevel</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetTraceLevel"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>setUriMap</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AsetUriMap"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>setUserState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetUserState"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>single</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3Asingle"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>singles</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3Asingles"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>spanA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3AspanA"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>spi</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Aspi"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>splitExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AsplitExpr"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>splitMatchByPrio</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AsplitMatchByPrio"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>sqattr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Asqattr"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>strict</TD+><TD CLASS="indexlinks"+><A HREF="Control-Strategies-DeepSeq.html#v%3Astrict"+>Control.Strategies.DeepSeq</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>strictA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowStrict.html#v%3AstrictA"+>Control.Arrow.ArrowStrict</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>stringEscapeXml</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringEscapeXml"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>stringProtocol</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AstringProtocol"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>stringToHexString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringToHexString"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>stringToInt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringToInt"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>stringToUpper</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringToUpper"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>stringTrim</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringTrim"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>stripDocument</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AstripDocument"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>stripSpaces</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AstripSpaces"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>stripStylesheet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AstripStylesheet"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>substHtmlEntityRefs</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AsubstHtmlEntityRefs"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>substXmlEntityRefs</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AsubstXmlEntityRefs"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>subtreeNT</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3AsubtreeNT"+>Data.NavTree</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/doc-index-T.html view
@@ -0,0 +1,596 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Arrow API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (T)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>TemplApply</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplApply"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>TemplApplyImports</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplApplyImports"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>TemplAttribute</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplAttribute"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>TemplCall</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplCall"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>TemplChoose</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplChoose"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>TemplComment</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplComment"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>TemplComposite</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplComposite"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>TemplCopy</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplCopy"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>TemplCopyOf</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplCopyOf"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>TemplElement</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplElement"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>TemplForEach</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplForEach"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>TemplMessage</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplMessage"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>TemplProcInstr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplProcInstr"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>TemplText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplText"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>TemplValueOf</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplValueOf"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>TemplVariable</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATemplVariable"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Template</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATemplate"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>TestExpr</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ATestExpr"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3ATestExpr"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Tree</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#t%3ATree"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Text.XML.HXT.Arrow.XmlNode, Text.XML.HXT.XSLT.Common, <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"+>Control.Arrow.ArrowTree</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>t_root</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3At_root"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>t_xml</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3At_xml"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>tagA</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3AtagA"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>textEscapeXml</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AtextEscapeXml"+>Text.XML.HXT.DOM.Util</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>this</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3Athis"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>thisNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AthisNode"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>trace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Atrace"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>traceDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AtraceDoc"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>traceMsg</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AtraceMsg"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>traceSource</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AtraceSource"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>traceState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AtraceState"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>traceString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AtraceString"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>traceTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AtraceTree"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>trans</TD+><TD CLASS="indexlinks"+><A HREF="Control-Monad-MonadStateIO.html#v%3Atrans"+>Control.Monad.MonadStateIO</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>transfAllCdata</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AtransfAllCdata"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>transfAllCharRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AtransfAllCharRef"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>transfCdata</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AtransfCdata"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>transfCharRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AtransfCharRef"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>transferDefaultURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferDefaultURI"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>transferEncoding</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferEncoding"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>transferMessage</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferMessage"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>transferMimeType</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferMimeType"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>transferPrefix</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferPrefix"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>transferProtocol</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferProtocol"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>transferStatus</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferStatus"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>transferURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferURI"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>transferVersion</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferVersion"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>transformDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AtransformDoc"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>trcState</TD+><TD CLASS="indexlinks"+><A HREF="Control-Monad-MonadStateIO.html#v%3AtrcState"+>Control.Monad.MonadStateIO</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>treeRepOfXmlDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AtreeRepOfXmlDoc"+>Text.XML.HXT.Arrow.Edit</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>tryFetchAttribute</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AtryFetchAttribute"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>txt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Atxt"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/doc-index-U.html view
@@ -0,0 +1,474 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Arrow API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (U)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>UString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>UTF8Char</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8Char"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>UTF8String</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Unicode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>UriMapping</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>UsedAttribSets</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AUsedAttribSets"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AUsedAttribSets"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>ucs2</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aucs2"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>ucs2BigEndianToUnicode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Aucs2BigEndianToUnicode"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>ucs2LittleEndianToUnicode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Aucs2LittleEndianToUnicode"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>ucs2ToUnicode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Aucs2ToUnicode"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>unicodeCharToUtf8</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeCharToUtf8"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>unicodeRemoveNoneAscii</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeRemoveNoneAscii"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>unicodeRemoveNoneLatin1</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeRemoveNoneLatin1"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>unicodeString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AunicodeString"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>unicodeToLatin1</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToLatin1"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>unicodeToUtf8</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToUtf8"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>unicodeToXmlEntity</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToXmlEntity"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>unionExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AunionExpr"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>uniqueNamespaces</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AuniqueNamespaces"+>Text.XML.HXT.Arrow.Namespace</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>uniqueNamespacesFromDeclAndQNames</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AuniqueNamespacesFromDeclAndQNames"+>Text.XML.HXT.Arrow.Namespace</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>universalName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AuniversalName"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>universalUri</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AuniversalUri"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>unsetParam</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AunsetParam"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>unzipTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AunzipTree"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>upNT</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3AupNT"+>Data.NavTree</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>uriMap2Attrs</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AuriMap2Attrs"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>usAscii</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AusAscii"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>utf16</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf16"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>utf16be</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf16be"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>utf16beToUnicode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Autf16beToUnicode"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>utf16le</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf16le"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>utf16leToUnicode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Autf16leToUnicode"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>utf8</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf8"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>utf8ToUnicode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Autf8ToUnicode"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>utf8ToUnicodeChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Autf8ToUnicodeChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>utf8WithByteMarkToUnicode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Autf8WithByteMarkToUnicode"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/doc-index-V.html view
@@ -0,0 +1,418 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Arrow API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (V)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>Variable</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>v_0</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_0"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>v_1</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_1"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>v_any</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_any"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>v_children</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_children"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>v_choice</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_choice"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>v_empty</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_empty"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>v_mixed</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_mixed"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>v_no</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_no"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>v_null</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_null"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>v_option</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_option"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>v_pcdata</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_pcdata"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>v_plus</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_plus"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>v_seq</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_seq"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>v_star</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_star"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>v_yes</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_yes"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>validate</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3Avalidate"+>Text.XML.HXT.RelaxNG.Validator</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>validateDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AvalidateDoc"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>validateDocWithRelax</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Validation.html#v%3AvalidateDocWithRelax"+>Text.XML.HXT.RelaxNG.Validation</A+>, Text.XML.HXT.RelaxNG.Validator</TD+></TR+><TR+><TD CLASS="indexentry"+>validateDocument</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ProcessDocument.html#v%3AvalidateDocument"+>Text.XML.HXT.Arrow.ProcessDocument</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>validateDocumentWithRelax</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateDocumentWithRelax"+>Text.XML.HXT.RelaxNG.Validator</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>validateDocumentWithRelaxSchema</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateDocumentWithRelaxSchema"+>Text.XML.HXT.RelaxNG.Validator</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>validateNamespaces</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AvalidateNamespaces"+>Text.XML.HXT.Arrow.Namespace</A+>, <A HREF="Text-XML-HXT-Arrow.html#v%3AvalidateNamespaces"+>Text.XML.HXT.Arrow</A+>, <A HREF="Text-XML-HXT-Arrow.html#v%3AvalidateNamespaces"+>Text.XML.HXT.Arrow</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>validateRelax</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Validation.html#v%3AvalidateRelax"+>Text.XML.HXT.RelaxNG.Validation</A+>, Text.XML.HXT.RelaxNG.Validator</TD+></TR+><TR+><TD CLASS="indexentry"+>validateSchema</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateSchema"+>Text.XML.HXT.RelaxNG.Validator</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>validateSchemaWithSpezification</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateSchemaWithSpezification"+>Text.XML.HXT.RelaxNG.Validator</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>validateWithRelaxAndHandleErrors</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Validation.html#v%3AvalidateWithRelaxAndHandleErrors"+>Text.XML.HXT.RelaxNG.Validation</A+>, Text.XML.HXT.RelaxNG.Validator</TD+></TR+><TR+><TD CLASS="indexentry"+>validateWithSpezification</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateWithSpezification"+>Text.XML.HXT.RelaxNG.Validator</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>validateWithoutSpezification</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Validator.html#v%3AvalidateWithoutSpezification"+>Text.XML.HXT.RelaxNG.Validator</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>validateXMLDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-RelaxNG-Validation.html#v%3AvalidateXMLDoc"+>Text.XML.HXT.RelaxNG.Validation</A+>, Text.XML.HXT.RelaxNG.Validator</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/doc-index-W.html view
@@ -0,0 +1,278 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Arrow API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (W)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>When</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AWhen"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>WhenPart</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AWhenPart"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>warn</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Awarn"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>when</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3Awhen"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>whenNot</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3AwhenNot"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>whenNotP</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3AwhenNotP"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>whenP</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowIf.html#v%3AwhenP"+>Control.Arrow.ArrowIf</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>withDefault</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3AwithDefault"+>Control.Arrow.ArrowList</A+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>withExtendedUserState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AwithExtendedUserState"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>withOtherUserState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AwithOtherUserState"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>withTraceLevel</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AwithTraceLevel"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>writeDocument</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-WriteDocument.html#v%3AwriteDocument"+>Text.XML.HXT.Arrow.WriteDocument</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>writeDocumentToString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-WriteDocument.html#v%3AwriteDocumentToString"+>Text.XML.HXT.Arrow.WriteDocument</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/doc-index-X.html view
@@ -0,0 +1,946 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Arrow API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (X)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>XAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXAttr"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>XCdata</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXCdata"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>XCharRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXCharRef"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>XCmt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXCmt"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>XDTD</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXDTD"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>XEntityRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXEntityRef"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>XError</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXError"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>XIOState</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOState"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AXIOState"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>XIOSys</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AXIOSys"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>XIOSysState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>XNS</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXNS"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>XNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>XPathParams</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Application.html#t%3AXPathParams"+>Text.XML.HXT.XSLT.Application</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>XPi</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXPi"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>XTag</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXTag"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>XText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXText"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>XmlNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"+>Text.XML.HXT.Arrow.XmlNode</A+>, Text.XML.HXT.XSLT.Common</TD+></TR+><TR+><TD CLASS="indexentry"+>XmlNodeSet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>XmlTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>XmlTrees</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xio_attrList</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_attrList"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xio_baseURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_baseURI"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xio_defaultBaseURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_defaultBaseURI"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xio_errorModule</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_errorModule"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xio_errorMsgCollect</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_errorMsgCollect"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xio_errorMsgHandler</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_errorMsgHandler"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xio_errorMsgList</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_errorMsgList"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xio_errorStatus</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_errorStatus"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xio_sysState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_sysState"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xio_trace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_trace"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xio_userState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_userState"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xmlNamespace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AxmlNamespace"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xmlSpace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxmlSpace"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xmlnsNamespace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AxmlnsNamespace"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xmlnsQN</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AxmlnsQN"+>Text.XML.HXT.DOM.NamespacePredicates</A+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xread</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3Axread"+>Text.XML.HXT.Arrow.ReadDocument</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xshow</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Axshow"+>Text.XML.HXT.Arrow.XmlArrow</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xsltApplyImports</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltApplyImports"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltApplyStylesheet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-XsltArrows.html#v%3AxsltApplyStylesheet"+>Text.XML.HXT.XSLT.XsltArrows</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xsltApplyStylesheetFromURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-XsltArrows.html#v%3AxsltApplyStylesheetFromURI"+>Text.XML.HXT.XSLT.XsltArrows</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xsltApplyTemplates</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltApplyTemplates"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltAttribute</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltAttribute"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltAttributeSet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltAttributeSet"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltCallTemplate</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltCallTemplate"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltChoose</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltChoose"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltComment</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltComment"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltCompileStylesheet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-XsltArrows.html#v%3AxsltCompileStylesheet"+>Text.XML.HXT.XSLT.XsltArrows</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xsltCompileStylesheetFromURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-XsltArrows.html#v%3AxsltCompileStylesheetFromURI"+>Text.XML.HXT.XSLT.XsltArrows</A+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD+></TR+><TR+><TD CLASS="indexentry"+>xsltCopy</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltCopy"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltCopyOf</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltCopyOf"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltDataType</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltDataType"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltElement</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltElement"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltElements</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltElements"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltExlcudeResultPrefixes</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltExlcudeResultPrefixes"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltExlcudeResultPrefixesLRE</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltExlcudeResultPrefixesLRE"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltExtensionElementPrefixes</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltExtensionElementPrefixes"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltExtensionElementPrefixesLRE</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltExtensionElementPrefixesLRE"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltForEach</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltForEach"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltHRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltHRef"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltIf</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltIf"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltImport</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltImport"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltInclude</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltInclude"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltMatch</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltMatch"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltMessage</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltMessage"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltMode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltMode"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltName"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltNamespace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltNamespace"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltNamespaceAlias</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltNamespaceAlias"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltOrder</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltOrder"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltOtherwise</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltOtherwise"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltParam</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltParam"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltPrefix</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltPrefix"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltPreserveSpace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltPreserveSpace"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltPriority</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltPriority"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltProcInstr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltProcInstr"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltResultPrefix</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltResultPrefix"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltSelect</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltSelect"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltSort</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltSort"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltStripSpace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltStripSpace"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltStylesheet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltStylesheet"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltStylesheetPrefix</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltStylesheetPrefix"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltTemplate</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltTemplate"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltTerminate</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltTerminate"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltTest</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltTest"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltText"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltTransform</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltTransform"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltUri</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltUri"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltUseAttributeSets</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltUseAttributeSets"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltUseAttributeSetsLRE</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltUseAttributeSetsLRE"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltValueOf</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltValueOf"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltVariable</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltVariable"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltVersion</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltVersion"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltVersionLRE</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltVersionLRE"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltWhen</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltWhen"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xsltWithParam</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Names.html#v%3AxsltWithParam"+>Text.XML.HXT.XSLT.Names</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/doc-index-Z.html view
@@ -0,0 +1,190 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Arrow API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (Z)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>zipTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AzipTree"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>zipTreeWith</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AzipTreeWith"+>Text.XML.HXT.XSLT.Common</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/doc-index.html view
@@ -0,0 +1,168 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Arrow API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-Z.html"+>Z</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+><TD+><A HREF="doc-index-62.html"+>&gt;</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/haddock.css view
@@ -0,0 +1,235 @@+/* -------- Global things --------- */++BODY { +  background-color: #ffffff;+  color: #000000;+  font-family: sans-serif;+  } ++A:link    { color: #0000e0; text-decoration: none }+A:visited { color: #0000a0; text-decoration: none }+A:hover   { background-color: #e0e0ff; text-decoration: none }++TABLE.vanilla {+  width: 100%;+  border-width: 0px;+  /* I can't seem to specify cellspacing or cellpadding properly using CSS... */+}++TABLE.vanilla2 {+  border-width: 0px;+}++/* <TT> font is a little too small in MSIE */+TT  { font-size: 100%; }+PRE { font-size: 100%; }++LI P { margin: 0pt } ++TD {+  border-width: 0px;+}++TABLE.narrow {+  border-width: 0px;+}++TD.s8  {  height: 8px;  }+TD.s15 {  height: 15px; }++SPAN.keyword { text-decoration: underline; }++/* Resize the buttom image to match the text size */+IMG.coll { width : 0.75em; height: 0.75em; margin-bottom: 0; margin-right: 0.5em }++/* --------- Contents page ---------- */++DIV.node {+  padding-left: 3em;+}++DIV.cnode {+  padding-left: 1.75em;+}++SPAN.pkg {+  position: absolute;+  left: 50em;+}++/* --------- Documentation elements ---------- */++TD.children {+  padding-left: 25px;+  }++TD.synopsis {+  padding: 2px;+  background-color: #f0f0f0;+  font-family: monospace+ }++TD.decl { +  padding: 2px;+  background-color: #f0f0f0; +  font-family: monospace;+  vertical-align: top;+  }++/* +  arg is just like decl, except that wrapping is not allowed.  It is+  used for function and constructor arguments which have a text box+  to the right, where if wrapping is allowed the text box squashes up+  the declaration by wrapping it.+*/+TD.arg { +  padding: 2px;+  background-color: #f0f0f0; +  font-family: monospace;+  vertical-align: top;+  white-space: nowrap;+  }++TD.recfield { padding-left: 20px }++TD.doc  { +  padding-top: 2px;+  padding-left: 10px;+  }++TD.ndoc  { +  padding: 2px;+  }++TD.rdoc  { +  padding: 2px;+  padding-left: 10px;+  width: 100%;+  }++TD.body  { +  padding-left: 10px+  }++TD.pkg {+  width: 100%;+  padding-left: 10px+}++TD.indexentry {+  vertical-align: top;+  padding-right: 10px+  }++TD.indexannot {+  vertical-align: top;+  padding-left: 20px;+  white-space: nowrap+  }++TD.indexlinks {+  width: 100%+  }++/* ------- Section Headings ------- */++TD.section1 {+  padding-top: 15px;+  font-weight: bold;+  font-size: 150%+  }++TD.section2 {+  padding-top: 10px;+  font-weight: bold;+  font-size: 130%+  }++TD.section3 {+  padding-top: 5px;+  font-weight: bold;+  font-size: 110%+  }++TD.section4 {+  font-weight: bold;+  font-size: 100%+  }++/* -------------- The title bar at the top of the page */++TD.infohead {+  color: #ffffff;+  font-weight: bold;+  padding-right: 10px;+  text-align: left;+}++TD.infoval {+  color: #ffffff;+  padding-right: 10px;+  text-align: left;+}++TD.topbar {+  background-color: #000099;+  padding: 5px;+}++TD.title {+  color: #ffffff;+  padding-left: 10px;+  width: 100%+  }++TD.topbut {+  padding-left: 5px;+  padding-right: 5px;+  border-left-width: 1px;+  border-left-color: #ffffff;+  border-left-style: solid;+  white-space: nowrap;+  }++TD.topbut A:link {+  color: #ffffff+  }++TD.topbut A:visited {+  color: #ffff00+  }++TD.topbut A:hover {+  background-color: #6060ff;+  }++TD.topbut:hover {+  background-color: #6060ff+  }++TD.modulebar { +  background-color: #0077dd;+  padding: 5px;+  border-top-width: 1px;+  border-top-color: #ffffff;+  border-top-style: solid;+  }++/* --------- The page footer --------- */++TD.botbar {+  background-color: #000099;+  color: #ffffff;+  padding: 5px+  }+TD.botbar A:link {+  color: #ffffff;+  text-decoration: underline+  }+TD.botbar A:visited {+  color: #ffff00+  }+TD.botbar A:hover {+  background-color: #6060ff+  }+
+ doc/hdoc_arrow/haddock.js view
@@ -0,0 +1,15 @@+// Haddock JavaScript utilities+function toggle(button,id)+{+   var n = document.getElementById(id).style;+   if (n.display == "none")+   {+	button.src = "minus.gif";+	n.display = "block";+   }+   else+   {+	button.src = "plus.gif";+	n.display = "none";+   }+}
+ doc/hdoc_arrow/haskell_icon.gif view

binary file changed (absent → 911 bytes)

+ doc/hdoc_arrow/index.html view
@@ -0,0 +1,750 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Arrow API</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Arrow API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Modules</TD+></TR+><TR+><TD+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0"+><TR+><TD STYLE="width: 50em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:0')" ALT="show/hide"+>Control</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:0" STYLE="display:block;"+><TR+><TD STYLE="width: 48em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:1')" ALT="show/hide"+>Arrow</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:1" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 46em"+><A HREF="Control-Arrow-ArrowIO.html"+>Control.Arrow.ArrowIO</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 46em"+><A HREF="Control-Arrow-ArrowIf.html"+>Control.Arrow.ArrowIf</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 46em"+><A HREF="Control-Arrow-ArrowList.html"+>Control.Arrow.ArrowList</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 46em"+><A HREF="Control-Arrow-ArrowState.html"+>Control.Arrow.ArrowState</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 46em"+><A HREF="Control-Arrow-ArrowStrict.html"+>Control.Arrow.ArrowStrict</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 46em"+><A HREF="Control-Arrow-ArrowTree.html"+>Control.Arrow.ArrowTree</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 46em"+><A HREF="Control-Arrow-IOListArrow.html"+>Control.Arrow.IOListArrow</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 46em"+><A HREF="Control-Arrow-IOStateListArrow.html"+>Control.Arrow.IOStateListArrow</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 46em"+><A HREF="Control-Arrow-ListArrow.html"+>Control.Arrow.ListArrow</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 46em"+><A HREF="Control-Arrow-ListArrows.html"+>Control.Arrow.ListArrows</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 46em"+><A HREF="Control-Arrow-StateListArrow.html"+>Control.Arrow.StateListArrow</A+></TD+><TD+></TD+><TD+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD STYLE="width: 48em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:2')" ALT="show/hide"+>Monad</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:2" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 46em"+><A HREF="Control-Monad-MonadStateIO.html"+>Control.Monad.MonadStateIO</A+></TD+><TD+></TD+><TD+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD STYLE="width: 48em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:3')" ALT="show/hide"+>Strategies</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:3" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 46em"+><A HREF="Control-Strategies-DeepSeq.html"+>Control.Strategies.DeepSeq</A+></TD+><TD+></TD+><TD+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD STYLE="width: 50em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:4')" ALT="show/hide"+>Data</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:4" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 48em"+><A HREF="Data-AssocList.html"+>Data.AssocList</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 48em"+><A HREF="Data-NavTree.html"+>Data.NavTree</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="width: 48em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:5')" ALT="show/hide"+>Tree</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:5" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 46em"+><A HREF="Data-Tree-Class.html"+>Data.Tree.Class</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="width: 46em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:6')" ALT="show/hide"+>NTree</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:6" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 44em"+><A HREF="Data-Tree-NTree-TypeDefs.html"+>Data.Tree.NTree.TypeDefs</A+></TD+><TD+></TD+><TD+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD STYLE="width: 50em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:7')" ALT="show/hide"+>Text</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:7" STYLE="display:block;"+><TR+><TD STYLE="width: 48em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:8')" ALT="show/hide"+>XML</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:8" STYLE="display:block;"+><TR+><TD STYLE="width: 46em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:9')" ALT="show/hide"+>HXT</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:9" STYLE="display:block;"+><TR+><TD STYLE="width: 44em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:10')" ALT="show/hide"+><A HREF="Text-XML-HXT-Arrow.html"+>Text.XML.HXT.Arrow</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:10" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Arrow-DOMInterface.html"+>Text.XML.HXT.Arrow.DOMInterface</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Arrow-DTDProcessing.html"+>Text.XML.HXT.Arrow.DTDProcessing</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Arrow-DocumentInput.html"+>Text.XML.HXT.Arrow.DocumentInput</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Arrow-DocumentOutput.html"+>Text.XML.HXT.Arrow.DocumentOutput</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Arrow-Edit.html"+>Text.XML.HXT.Arrow.Edit</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Arrow-GeneralEntitySubstitution.html"+>Text.XML.HXT.Arrow.GeneralEntitySubstitution</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Arrow-Namespace.html"+>Text.XML.HXT.Arrow.Namespace</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html"+>Text.XML.HXT.Arrow.ParserInterface</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Arrow-ProcessDocument.html"+>Text.XML.HXT.Arrow.ProcessDocument</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Arrow-ReadDocument.html"+>Text.XML.HXT.Arrow.ReadDocument</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Arrow-WriteDocument.html"+>Text.XML.HXT.Arrow.WriteDocument</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html"+>Text.XML.HXT.Arrow.XmlArrow</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html"+>Text.XML.HXT.Arrow.XmlIOStateArrow</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Arrow-XmlNode.html"+>Text.XML.HXT.Arrow.XmlNode</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html"+>Text.XML.HXT.Arrow.XmlNodeSet</A+></TD+><TD+></TD+><TD+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD STYLE="width: 44em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:11')" ALT="show/hide"+>DOM</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:11" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html"+>Text.XML.HXT.DOM.NamespacePredicates</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html"+>Text.XML.HXT.DOM.TypeDefs</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-Unicode.html"+>Text.XML.HXT.DOM.Unicode</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-Util.html"+>Text.XML.HXT.DOM.Util</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html"+>Text.XML.HXT.DOM.XmlKeywords</A+></TD+><TD+></TD+><TD+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD STYLE="width: 44em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:12')" ALT="show/hide"+>RelaxNG</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:12" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-RelaxNG-Schema.html"+>Text.XML.HXT.RelaxNG.Schema</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-RelaxNG-SchemaGrammar.html"+>Text.XML.HXT.RelaxNG.SchemaGrammar</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-RelaxNG-Simplification.html"+>Text.XML.HXT.RelaxNG.Simplification</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-RelaxNG-Validation.html"+>Text.XML.HXT.RelaxNG.Validation</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-RelaxNG-Validator.html"+>Text.XML.HXT.RelaxNG.Validator</A+></TD+><TD+></TD+><TD+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD STYLE="width: 44em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:13')" ALT="show/hide"+>XSLT</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:13" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-XSLT-Application.html"+>Text.XML.HXT.XSLT.Application</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-XSLT-Common.html"+>Text.XML.HXT.XSLT.Common</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-XSLT-Compilation.html"+>Text.XML.HXT.XSLT.Compilation</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html"+>Text.XML.HXT.XSLT.CompiledStylesheet</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-XSLT-Names.html"+>Text.XML.HXT.XSLT.Names</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-XSLT-XsltArrows.html"+>Text.XML.HXT.XSLT.XsltArrows</A+></TD+><TD+></TD+><TD+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_arrow/minus.gif view

binary file changed (absent → 56 bytes)

+ doc/hdoc_arrow/plus.gif view

binary file changed (absent → 59 bytes)

+ doc/hdoc_filter/Control-Monad-MonadStateIO.html view
@@ -0,0 +1,408 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Control.Monad.MonadStateIO</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Monad/MonadStateIO.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Control.Monad.MonadStateIO</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>general usefull state monad for a local state and IO+</P+><P+>Version : $Id: MonadStateIO.hs,v 1.1 2004<EM+>09</EM+>02 19:11:55 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>newtype</SPAN+> <A HREF="#t%3AStateIO"+>StateIO</A+> state res = <A HREF="#v%3ASTIO"+>STIO</A+> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="recfield"+><A HREF="#v%3Atrans"+>trans</A+> :: (state -&gt; IO (res, state))</TD+></TR+></TABLE+>}</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aio"+>io</A+> :: IO a -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtrcState"+>trcState</A+> :: (state -&gt; String) -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state ()</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeState"+>changeState</A+> :: (state -&gt; state) -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetState"+>setState</A+> :: state -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetState"+>getState</A+> :: <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Arun"+>run</A+> :: state -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state res -&gt; IO res</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>newtype</SPAN+> <A NAME="t%3AStateIO"+></A+><B+>StateIO</B+> state res</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ASTIO"+></A+><B+>STIO</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="body" COLSPAN="2"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3Atrans"+></A+><B+>trans</B+> :: (state -&gt; IO (res, state))</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:StateIO')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:StateIO" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Monad (<A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aio"+></A+><B+>io</B+> :: IO a -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state a</TD+></TR+><TR+><TD CLASS="doc"+>lift IO command to <TT+><A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtrcState"+></A+><B+>trcState</B+> :: (state -&gt; String) -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state ()</TD+></TR+><TR+><TD CLASS="doc"+>state inspection command: a &quot;show&quot;-like function is applied to the state+ and the result is written to stderr.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeState"+></A+><B+>changeState</B+> :: (state -&gt; state) -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state state</TD+></TR+><TR+><TD CLASS="doc"+>change the state with a given function and return the new state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetState"+></A+><B+>setState</B+> :: state -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state state</TD+></TR+><TR+><TD CLASS="doc"+>set the state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetState"+></A+><B+>getState</B+> :: <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state state</TD+></TR+><TR+><TD CLASS="doc"+>read the state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Arun"+></A+><B+>run</B+> :: state -&gt; <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> state res -&gt; IO res</TD+></TR+><TR+><TD CLASS="doc"+>run a <TT+><A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+></TT+> command with an initial state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Control-Strategies-DeepSeq.html view
@@ -0,0 +1,429 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Control.Strategies.DeepSeq</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Strategies/DeepSeq.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Control.Strategies.DeepSeq</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>stolen from comp.lang.functional from Dean Herington+</P+><P+>DeepSeq.lhs  --  deep strict evaluation support+</P+><P+>The <TT+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+></TT+> class provides a method <TT+><A HREF="Control-Strategies-DeepSeq.html#v%3AdeepSeq"+>deepSeq</A+></TT+> that is similar to+seq except that it forces deep evaluation of its first argument+before returning its second argument.+</P+><P+>Instances of <TT+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+></TT+> are provided for Prelude types.  Other+instances must be supplied by users of this module.+</P+><P+>$Id: DeepSeq.lhs,v 1.5 2002<EM+>04</EM+>01 20:58:24 heringto Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> <A NAME="t%3ADeepSeq"+></A+><B+>DeepSeq</B+> a  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+>Methods</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A NAME="v%3AdeepSeq"+></A+><B+>deepSeq</B+> :: a -&gt; b -&gt; b</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:DeepSeq')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:DeepSeq" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> Bool</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> Char</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> Double</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> Float</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> Int</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> Integer</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> Ordering</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> ()</TD+></TR+><TR+><TD CLASS="decl"+>(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> b) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (a, b)</TD+></TR+><TR+><TD CLASS="decl"+>(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> b, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> c) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (a, b, c)</TD+></TR+><TR+><TD CLASS="decl"+>(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> b, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> c, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> d) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (a, b, c, d)</TD+></TR+><TR+><TD CLASS="decl"+>(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> b, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> c, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> d, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> e) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (a, b, c, d, e)</TD+></TR+><TR+><TD CLASS="decl"+>(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> b, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> c, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> d, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> e, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> f) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (a, b, c, d, e, f)</TD+></TR+><TR+><TD CLASS="decl"+>(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> b, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> c, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> d, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> e, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> f, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> g) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (a, b, c, d, e, f, g)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (a -&gt; b)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (IO a)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (Maybe a)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> [a]</TD+></TR+><TR+><TD CLASS="decl"+>(<A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a, <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> b) =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (Either a b)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%24%21%21"+></A+><B+>($!!)</B+> :: <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a =&gt; (a -&gt; b) -&gt; a -&gt; b</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Astrict"+></A+><B+>strict</B+> :: <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a =&gt; a -&gt; a</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Data-AssocList.html view
@@ -0,0 +1,388 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Data.AssocList</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/AssocList.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Data.AssocList</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>simple key value assocciation list+ implemented as unordered list of pairs+</P+><P+>Version : $Id: AssocList.hs,v 1.2 2005<EM+>05</EM+>27 13:15:23 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AAssocList"+>AssocList</A+> k v = [(k, v)]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AlookupDef"+>lookupDef</A+> :: Eq k =&gt; v -&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; v</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Alookup1"+>lookup1</A+> :: Eq k =&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k [e] -&gt; [e]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasEntry"+>hasEntry</A+> :: Eq k =&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddEntry"+>addEntry</A+> :: Eq k =&gt; k -&gt; v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddEntries"+>addEntries</A+> :: Eq k =&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AdelEntry"+>delEntry</A+> :: Eq k =&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AdelEntries"+>delEntries</A+> :: Eq k =&gt; [k] -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AAssocList"+></A+><B+>AssocList</B+> k v = [(k, v)]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AlookupDef"+></A+><B+>lookupDef</B+> :: Eq k =&gt; v -&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; v</TD+></TR+><TR+><TD CLASS="doc"+>lookup with default value+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Alookup1"+></A+><B+>lookup1</B+> :: Eq k =&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k [e] -&gt; [e]</TD+></TR+><TR+><TD CLASS="doc"+>lookup with empty list (empty string) as default value+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasEntry"+></A+><B+>hasEntry</B+> :: Eq k =&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test for existence of a key+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddEntry"+></A+><B+>addEntry</B+> :: Eq k =&gt; k -&gt; v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v</TD+></TR+><TR+><TD CLASS="doc"+>add an entry, remove an existing entry before adding the new one at the top of the list, addEntry is strict+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddEntries"+></A+><B+>addEntries</B+> :: Eq k =&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v</TD+></TR+><TR+><TD CLASS="doc"+>add a whole list of entries with <TT+><A HREF="Data-AssocList.html#v%3AaddEntry"+>addEntry</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdelEntry"+></A+><B+>delEntry</B+> :: Eq k =&gt; k -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v</TD+></TR+><TR+><TD CLASS="doc"+>delete an entry, delEntry is strict+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdelEntries"+></A+><B+>delEntries</B+> :: Eq k =&gt; [k] -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> k v</TD+></TR+><TR+><TD CLASS="doc"+>delete a list of entries with <TT+><A HREF="Data-AssocList.html#v%3AdelEntry"+>delEntry</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Data-NavTree.html view
@@ -0,0 +1,628 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Data.NavTree</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/NavTree.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Data.NavTree</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>Navigable tree structure which allow a program to traverse+ up the tree as well as down.+ copied and modified from HXML (<A HREF="http://www.flightlab.com/~joe/hxml/"+>http://www.flightlab.com/~joe/hxml/</A+>)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3ANavTree"+>NavTree</A+> a = <A HREF="#v%3ANT"+>NT</A+> (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a) [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a] [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a] [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Antree"+>ntree</A+> :: <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a -&gt; <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsubtreeNT"+>subtreeNT</A+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AdataNT"+>dataNT</A+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AupNT"+>upNT</A+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AdownNT"+>downNT</A+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AleftNT"+>leftNT</A+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ArightNT"+>rightNT</A+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ApreorderNT"+>preorderNT</A+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ArevPreorderNT"+>revPreorderNT</A+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetChildrenNT"+>getChildrenNT</A+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ao%27"+>o'</A+> :: Monad m =&gt; (b -&gt; m c) -&gt; (a -&gt; m b) -&gt; a -&gt; m c</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmaybeStar"+>maybeStar</A+> :: (a -&gt; Maybe a) -&gt; a -&gt; [a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmaybePlus"+>maybePlus</A+> :: (a -&gt; Maybe a) -&gt; a -&gt; [a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Data-Tree-NTree-Filter.html"+>Data.Tree.NTree.Filter</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3ANavTree"+></A+><B+>NavTree</B+> a</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+><P+>navigable tree with nodes of type node+</P+><P+>a navigable tree consists of a n-ary tree for the current fragment tree,+ a navigable tree for all ancestors, and two n-ary trees for+ the previous- and following siblings+</P+></TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ANT"+></A+><B+>NT</B+> (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a) [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a] [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a] [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a]</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:NavTree')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:NavTree" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>??? a =&gt; Eq (<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+>??? a =&gt; Ord (<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+>??? a =&gt; Show (<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Antree"+></A+><B+>ntree</B+> :: <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a -&gt; <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a</TD+></TR+><TR+><TD CLASS="doc"+>converts a n-ary tree in a navigable tree+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsubtreeNT"+></A+><B+>subtreeNT</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a</TD+></TR+><TR+><TD CLASS="doc"+>converts a navigable tree in a n-ary tree+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdataNT"+></A+><B+>dataNT</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; a</TD+></TR+><TR+><TD CLASS="doc"+>function for selecting the value of the current fragment tree+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AupNT"+></A+><B+>upNT</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a)</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdownNT"+></A+><B+>downNT</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a)</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AleftNT"+></A+><B+>leftNT</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a)</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArightNT"+></A+><B+>rightNT</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; Maybe (<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a)</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ApreorderNT"+></A+><B+>preorderNT</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArevPreorderNT"+></A+><B+>revPreorderNT</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetChildrenNT"+></A+><B+>getChildrenNT</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ao%27"+></A+><B+>o'</B+> :: Monad m =&gt; (b -&gt; m c) -&gt; (a -&gt; m b) -&gt; a -&gt; m c</TD+></TR+><TR+><TD CLASS="doc"+>Kleisli composition:+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmaybeStar"+></A+><B+>maybeStar</B+> :: (a -&gt; Maybe a) -&gt; a -&gt; [a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmaybePlus"+></A+><B+>maybePlus</B+> :: (a -&gt; Maybe a) -&gt; a -&gt; [a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Data-Tree-NTree-Filter.html"+>Data.Tree.NTree.Filter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Data-Tree-Class.html view
@@ -0,0 +1,578 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Data.Tree.Class</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/Tree/Class.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Data.Tree.Class</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>Interface definition for trees+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> <A HREF="#t%3ATree"+>Tree</A+> t  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkTree"+>mkTree</A+> :: a -&gt; [t a] -&gt; t a</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkLeaf"+>mkLeaf</A+> :: a -&gt; t a</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisLeaf"+>isLeaf</A+> :: t a -&gt; Bool</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisInner"+>isInner</A+> :: t a -&gt; Bool</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetNode"+>getNode</A+> :: t a -&gt; a</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetChildren"+>getChildren</A+> :: t a -&gt; [t a]</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeNode"+>changeNode</A+> :: (a -&gt; a) -&gt; t a -&gt; t a</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeChildren"+>changeChildren</A+> :: ([t a] -&gt; [t a]) -&gt; t a -&gt; t a</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetNode"+>setNode</A+> :: a -&gt; t a -&gt; t a</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetChildren"+>setChildren</A+> :: [t a] -&gt; t a -&gt; t a</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AfoldTree"+>foldTree</A+> :: (a -&gt; [b] -&gt; b) -&gt; t a -&gt; b</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnodesTree"+>nodesTree</A+> :: t a -&gt; [a]</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AdepthTree"+>depthTree</A+> :: t a -&gt; Int</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcardTree"+>cardTree</A+> :: t a -&gt; Int</TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AformatTree"+>formatTree</A+> :: (a -&gt; String) -&gt; t a -&gt; String</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>class</SPAN+> <A NAME="t%3ATree"+></A+><B+>Tree</B+> t  <SPAN CLASS="keyword"+>where</SPAN+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>The interface for trees+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+>Methods</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A NAME="v%3AmkTree"+></A+><B+>mkTree</B+> :: a -&gt; [t a] -&gt; t a</TD+></TR+><TR+><TD CLASS="doc"+>tree construction: a new tree is constructed by a node attribute and a list of children+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkLeaf"+></A+><B+>mkLeaf</B+> :: a -&gt; t a</TD+></TR+><TR+><TD CLASS="doc"+><P+>leaf construction: leafs don't have any children+</P+><P+>definition: <TT+> mkLeaf n = mkTree n [] </TT+>+</P+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisLeaf"+></A+><B+>isLeaf</B+> :: t a -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>leaf test: list of children empty?+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisInner"+></A+><B+>isInner</B+> :: t a -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>innner node test: <TT+> not . isLeaf </TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetNode"+></A+><B+>getNode</B+> :: t a -&gt; a</TD+></TR+><TR+><TD CLASS="doc"+>select node attribute+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetChildren"+></A+><B+>getChildren</B+> :: t a -&gt; [t a]</TD+></TR+><TR+><TD CLASS="doc"+>select children+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeNode"+></A+><B+>changeNode</B+> :: (a -&gt; a) -&gt; t a -&gt; t a</TD+></TR+><TR+><TD CLASS="doc"+>edit node attribute+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeChildren"+></A+><B+>changeChildren</B+> :: ([t a] -&gt; [t a]) -&gt; t a -&gt; t a</TD+></TR+><TR+><TD CLASS="doc"+>edit children+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetNode"+></A+><B+>setNode</B+> :: a -&gt; t a -&gt; t a</TD+></TR+><TR+><TD CLASS="doc"+>substitute node: <TT+> setNode n = changeNode (const n) </TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetChildren"+></A+><B+>setChildren</B+> :: [t a] -&gt; t a -&gt; t a</TD+></TR+><TR+><TD CLASS="doc"+>substitute children: <TT+> setChildren cl = changeChildren (const cl) </TT+>+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfoldTree"+></A+><B+>foldTree</B+> :: (a -&gt; [b] -&gt; b) -&gt; t a -&gt; b</TD+></TR+><TR+><TD CLASS="doc"+>fold for trees+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnodesTree"+></A+><B+>nodesTree</B+> :: t a -&gt; [a]</TD+></TR+><TR+><TD CLASS="doc"+>all nodes of a tree+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdepthTree"+></A+><B+>depthTree</B+> :: t a -&gt; Int</TD+></TR+><TR+><TD CLASS="doc"+>depth of a tree+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcardTree"+></A+><B+>cardTree</B+> :: t a -&gt; Int</TD+></TR+><TR+><TD CLASS="doc"+>number of nodes in a tree+</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AformatTree"+></A+><B+>formatTree</B+> :: (a -&gt; String) -&gt; t a -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>format tree for readable trace output+</P+><P+>a <EM+>graphical</EM+> representation of the tree in text format+</P+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Tree')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:Tree" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Data-Tree-Class.html#t%3ATree"+>Tree</A+> <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Data-Tree-NTree-Filter.html view
@@ -0,0 +1,3077 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Data.Tree.NTree.Filter</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/Tree/NTree/Filter.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Data.Tree.NTree.Filter</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+><B+>Contents</B+></TD+></TR+><TR+><TD+><DL+><DT+><A HREF="#1"+>Filter+</A+></DT+><DT+><A HREF="#2"+>Monadic Filter+</A+></DT+></DL+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: Filter.hs,v 1.6 2006<EM+>11</EM+>12 14:52:59 hxml Exp $+</P+><P+>Filter for n-ary tree structure with filter combinators+copied and modified from HxXml (<A HREF="http://www.cs.york.ac.uk/fp/HaXml/"+>http://www.cs.york.ac.uk/fp/HaXml/</A+>)+</P+><P+>Similar but more flexible functions for tree processing are defined in the+arrow classes <A HREF="Control-Arrow-ArrowList.html"+>Control.Arrow.ArrowList</A+>, <A HREF="Control-Arrow-ArrowIf.html"+>Control.Arrow.ArrowIf</A+>, <A HREF="Control-Arrow-ArrowTree.html"+>Control.Arrow.ArrowTree</A+> and <A HREF="Control-Arrow-ArrowState.html"+>Control.Arrow.ArrowState</A+>.+For new applications, especially for XML processing, it's recommended to use the arrow interface+<A HREF="Text-XML-HXT-Arrow.html"+>Text.XML.HXT.Arrow</A+> instead of this filter approach as part of the api <A HREF="Text-XML-HXT-Parser.html"+>Text.XML.HXT.Parser</A+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>module <A HREF="Data-Tree-NTree-TypeDefs.html"+>Data.Tree.NTree.TypeDefs</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ATFilter"+>TFilter</A+> node = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>NTrees</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ATSFilter"+>TSFilter</A+> node = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>NTrees</A+> node -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>NTrees</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Asatisfies"+>satisfies</A+> :: (a -&gt; [b]) -&gt; a -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Anone"+>none</A+> :: a -&gt; [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Athis"+>this</A+> :: a -&gt; [a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisOf"+>isOf</A+> :: (a -&gt; Bool) -&gt; a -&gt; [a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisOfNode"+>isOfNode</A+> :: (node -&gt; Bool) -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkNTree"+>mkNTree</A+> :: <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AreplaceNode"+>replaceNode</A+> :: node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AreplaceChildren"+>replaceChildren</A+> :: <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>NTrees</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmodifyNode"+>modifyNode</A+> :: (node -&gt; Maybe node) -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmodifyNode0"+>modifyNode0</A+> :: (node -&gt; node) -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmodifyChildren"+>modifyChildren</A+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATSFilter"+>TSFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsubstChildren"+>substChildren</A+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessChildren"+>processChildren</A+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ao"+>o</A+> :: (a -&gt; [b]) -&gt; (c -&gt; [a]) -&gt; c -&gt; [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A.%3E"+>(.&gt;)</A+> :: (a -&gt; [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; [c]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AseqF"+>seqF</A+> :: [a -&gt; [a]] -&gt; a -&gt; [a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A..%3E"+>(..&gt;)</A+> :: (a -&gt; [b]) -&gt; (a -&gt; b -&gt; [d]) -&gt; a -&gt; [d]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%2B%2B%2B"+>(+++)</A+> :: (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Acat"+>cat</A+> :: [a -&gt; [b]] -&gt; a -&gt; [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AorElse"+>orElse</A+> :: (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aiff"+>iff</A+> :: (a -&gt; [c]) -&gt; (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Achoice"+>choice</A+> :: [<A HREF="Data-Tree-NTree-Filter.html#t%3AIfThen"+>IfThen</A+> (a -&gt; [c]) (a -&gt; [b])] -&gt; a -&gt; [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AIfThen"+>IfThen</A+> a b = <A HREF="#v%3A%3A-%3E"+>(:-&gt;)</A+> a b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Awhen"+>when</A+> :: (a -&gt; [a]) -&gt; (a -&gt; [a]) -&gt; a -&gt; [a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AwhenNot"+>whenNot</A+> :: (a -&gt; [a]) -&gt; (a -&gt; [a]) -&gt; a -&gt; [a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aguards"+>guards</A+> :: (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aneg"+>neg</A+> :: (a -&gt; [c]) -&gt; a -&gt; [a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Acontaining"+>containing</A+> :: (a -&gt; [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnotContaining"+>notContaining</A+> :: (a -&gt; [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%2F%3E"+>(/&gt;)</A+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%3C%2F"+>(&lt;/)</A+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Adeep"+>deep</A+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Adeepest"+>deepest</A+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Amulti"+>multi</A+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessBottomUp"+>processBottomUp</A+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessBottomUpIfNot"+>processBottomUpIfNot</A+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessTopDown"+>processTopDown</A+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessTopDownUntil"+>processTopDownUntil</A+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AinsertChildrenAt"+>insertChildrenAt</A+> :: Int -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AinsertChildrenAfter"+>insertChildrenAfter</A+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AthisM"+>thisM</A+> :: Monad m =&gt; a -&gt; m [a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnoneM"+>noneM</A+> :: Monad m =&gt; a -&gt; m [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A.%3E%3E"+>(.&gt;&gt;)</A+> :: Monad m =&gt; (a -&gt; m [b]) -&gt; (b -&gt; m [c]) -&gt; a -&gt; m [c]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AseqM"+>seqM</A+> :: Monad m =&gt; [a -&gt; m [a]] -&gt; a -&gt; m [a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%2B%2B%2B%3E%3E"+>(+++&gt;&gt;)</A+> :: Monad m =&gt; (a -&gt; m [b]) -&gt; (a -&gt; m [b]) -&gt; a -&gt; m [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcatM"+>catM</A+> :: Monad m =&gt; [a -&gt; m [b]] -&gt; a -&gt; m [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AifM"+>ifM</A+> :: Monad m =&gt; (a -&gt; [b]) -&gt; (a -&gt; m [c]) -&gt; (a -&gt; m [c]) -&gt; a -&gt; m [c]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchoiceM"+>choiceM</A+> :: Monad m =&gt; [<A HREF="Data-Tree-NTree-Filter.html#t%3AIfThen"+>IfThen</A+> (a -&gt; [c]) (a -&gt; m [b])] -&gt; a -&gt; m [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AwhenM"+>whenM</A+> :: Monad m =&gt; (a -&gt; m [a]) -&gt; (a -&gt; [b]) -&gt; a -&gt; m [a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AwhenNotM"+>whenNotM</A+> :: Monad m =&gt; (a -&gt; m [a]) -&gt; (a -&gt; [b]) -&gt; a -&gt; m [a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AguardsM"+>guardsM</A+> :: Monad m =&gt; (a -&gt; [b]) -&gt; (a -&gt; m [c]) -&gt; a -&gt; m [c]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcontainingM"+>containingM</A+> :: Monad m =&gt; (a -&gt; m [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; m [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessChildrenM"+>processChildrenM</A+> :: Monad m =&gt; (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node]) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessTopDownM"+>processTopDownM</A+> :: Monad m =&gt; (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node]) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessBottomUpM"+>processBottomUpM</A+> :: Monad m =&gt; (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node]) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AliftMf"+>liftMf</A+> :: Monad m =&gt; (a -&gt; [b]) -&gt; a -&gt; m [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%24%24"+>($$)</A+> :: (a -&gt; [b]) -&gt; [a] -&gt; [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%24%24%3C"+>($$&lt;)</A+> :: Monad m =&gt; (a -&gt; m [b]) -&gt; [a] -&gt; m [b]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AperformAction"+>performAction</A+> :: Monad m =&gt; (a -&gt; m b) -&gt; a -&gt; m [a]</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Data-Tree-NTree-TypeDefs.html"+>Data.Tree.NTree.TypeDefs</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ATFilter"+></A+><B+>TFilter</B+> node = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>NTrees</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>tree filter type: a function mapping a tree onto a list of trees+</P+><P+>filter can be used in various ways, as predicates, selectors, transformers, ...+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ATSFilter"+></A+><B+>TSFilter</B+> node = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>NTrees</A+> node -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>NTrees</A+> node</TD+></TR+><TR+><TD CLASS="doc"+>a filter for sequences+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Asatisfies"+></A+><B+>satisfies</B+> :: (a -&gt; [b]) -&gt; a -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+><P+>satisfies converts a result of a predicate filter into a boolean+</P+><P+>is a shortcut for not . null+</P+><P+>typical use in guards or ifs: <TT+>if (satisfies f) t then ... else ... </TT+>+</P+><UL+><LI+> 1.parameter f :  the predicate filter+</LI+><LI+> 2.parameter t :  the tree to be tested+</LI+><LI+> returns : <TT+>b = not (null (f t))</TT+>+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+><A NAME="1"+>Filter+</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Anone"+></A+><B+>none</B+> :: a -&gt; [b]</TD+></TR+><TR+><TD CLASS="doc"+>the null filter, returns the empty list+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Athis"+></A+><B+>this</B+> :: a -&gt; [a]</TD+></TR+><TR+><TD CLASS="doc"+>the unit filter, returns the single element list containing the argument+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisOf"+></A+><B+>isOf</B+> :: (a -&gt; Bool) -&gt; a -&gt; [a]</TD+></TR+><TR+><TD CLASS="doc"+><P+>conversion from predicate function to filter+</P+><UL+><LI+> 1.parameter p :  the predicate for testing the tree+</LI+><LI+> returns : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Athis"+>this</A+></TT+> or <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Anone"+>none</A+></TT+> depending on the predicate+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisOfNode"+></A+><B+>isOfNode</B+> :: (node -&gt; Bool) -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>select filter, selects trees with node values with a specific property+</P+><UL+><LI+> 1.parameter p :  the predicate for testing the node value+</LI+><LI+> returns : <TT+>[]</TT+> or <TT+>[t]</TT+> depending on <TT+>p t</TT+>+</LI+></UL+><P+>a special case of <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AisOf"+>isOf</A+></TT+> filter+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkNTree"+></A+><B+>mkNTree</B+> :: <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>filter for substituting an arbitray tree by a constant+</P+><UL+><LI+> 1.parameter t :  the result tree, the input tree is ignored+</LI+><LI+> returns : the filter+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AreplaceNode"+></A+><B+>replaceNode</B+> :: node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>filter for replacing the node+</P+><UL+><LI+> 1.parameter n :  the new node+</LI+><LI+> returns : the editing filter+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AreplaceChildren"+></A+><B+>replaceChildren</B+> :: <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>NTrees</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>filter for replacing the children+</P+><UL+><LI+> 1.parameter cs :  cs the list of children+</LI+><LI+> returns : the filter+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmodifyNode"+></A+><B+>modifyNode</B+> :: (node -&gt; Maybe node) -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmodifyNode0"+></A+><B+>modifyNode0</B+> :: (node -&gt; node) -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>filter for editing the node+</P+><UL+><LI+> 1.parameter nf :  the XNode editing funtion+</LI+><LI+> returns : the filter+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmodifyChildren"+></A+><B+>modifyChildren</B+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATSFilter"+>TSFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>filter for editing the children+</P+><P+>all children are processed with a filter mapping lists to lists,+ this enables not only elementwise editing by lifting a normal+ filter to a list filter with <TT+>(f $$)</TT+> (see '($$)') but also manipulation+ of the order of the elements, e.g. <A HREF="reverse.html"+>reverse</A+> is an appropriate childen+ editing function.+</P+><UL+><LI+> 1.parameter csf :  the children editing function+</LI+><LI+> returns : the filter+</LI+></UL+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessChildren"+>processChildren</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsubstChildren"+></A+><B+>substChildren</B+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+>filter for substituting the children of a tree by+ a new list of childen computed by applying a filter to the input tree.+ <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyChildren"+>modifyChildren</A+></TT+> can be expressed by <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AsubstChildren"+>substChildren</A+></TT+>:+ <TT+>modifyChildren f t</TT+> is equal to <TT+>substChildren (f . getChildren)</TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessChildren"+></A+><B+>processChildren</B+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>Filter for editing the children of a tree element wise+</P+><UL+><LI+> 1.parameter cf :  the filter applied to the children+</LI+><LI+> returns : the editing filter+</LI+></UL+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyChildren"+>modifyChildren</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ao"+></A+><B+>o</B+> :: (a -&gt; [b]) -&gt; (c -&gt; [a]) -&gt; c -&gt; [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>sequential composition of filters, usually written in infix notation f2 <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Ao"+>o</A+></TT+> f1.+</P+><P+>for predicate filter the logical AND+</P+><UL+><LI+> 1.parameter f2 :  the 2. filter+</LI+><LI+> 2.parameter f1 :  the 1. filter+</LI+><LI+> returns : the fiter applying first f1 to n and then f2 to the result (like function composition)+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A.%3E"+></A+><B+>(.&gt;)</B+> :: (a -&gt; [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; [c]</TD+></TR+><TR+><TD CLASS="doc"+><P+>pronounced &quot;followed by&quot;, defined as: <TT+>f .&gt; g = g `o` f</TT+>.+</P+><P+>allows filter composition in a more readable way from left to right+</P+><UL+><LI+> 1.parameter f1 :  the 1. filter+</LI+><LI+> 2.parameter f2 :  the 2. filter+</LI+><LI+> returns : the composition of f1 and f2+</LI+></UL+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Ao"+>o</A+></TT+>, '(..&gt;)'+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AseqF"+></A+><B+>seqF</B+> :: [a -&gt; [a]] -&gt; a -&gt; [a]</TD+></TR+><TR+><TD CLASS="doc"+><P+>apply a list of filters sequentially with '(.&gt;)', for predicate filters the generalized AND+</P+><P+>see also : '(.&gt;)'+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A..%3E"+></A+><B+>(..&gt;)</B+> :: (a -&gt; [b]) -&gt; (a -&gt; b -&gt; [d]) -&gt; a -&gt; [d]</TD+></TR+><TR+><TD CLASS="doc"+><P+>special sequential composition.+</P+><P+>filter f is applied to an argument t.+ then filter g is applied to all elements of the result list,+ but the argument t is also passed as extra parameter to g.+</P+><P+>This allows for step by step transformations of a tree+ with access to the original tree in every+ transformation step.+</P+><P+>see also : '(.&gt;)', <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Ao"+>o</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%2B%2B%2B"+></A+><B+>(+++)</B+> :: (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>binary parallel composition, the logical OR for predicate filter+</P+><UL+><LI+> 1.parameter f1 :  the 1. filter+</LI+><LI+> 2.parameter f2 :  the 2. filter+</LI+><LI+> returns : the filter for applying f1 and f2 both to an argument tree and concatenating the results+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Acat"+></A+><B+>cat</B+> :: [a -&gt; [b]] -&gt; a -&gt; [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>apply a list of filters, a &quot;union&quot; for lists, for predicate filters the generalized OR+</P+><UL+><LI+> 1.parameter fs :  the list of filters+</LI+><LI+> returns : the composing filter+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AorElse"+></A+><B+>orElse</B+> :: (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>directional choice, usually written in infix notation as f <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AorElse"+>orElse</A+></TT+> g+</P+><UL+><LI+> 1.parameter f :  the 1. filter+</LI+><LI+> 2.parameter g :  the 2. filter+</LI+><LI+> 3.parameter t :  the tree+</LI+><LI+> returns : the filter, that applies f to t, if the result is not the empty list, the result is found, else g t is the result+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aiff"+></A+><B+>iff</B+> :: (a -&gt; [c]) -&gt; (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>if then else lifted to filters+</P+><UL+><LI+> 1.parameter p :  the predicate filter+</LI+><LI+> 2.parameter t :  the &quot;then&quot; filter+</LI+><LI+> 3.parameter e :  the &quot;else&quot; filter+</LI+><LI+> returns : the resulting conditional filter+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Achoice"+></A+><B+>choice</B+> :: [<A HREF="Data-Tree-NTree-Filter.html#t%3AIfThen"+>IfThen</A+> (a -&gt; [c]) (a -&gt; [b])] -&gt; a -&gt; [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>multiway branch. The list of cases <TT+>f :-&gt; g</TT+> is processed sequentially,+ in the first case for that f holds g is applied, if no case matches, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Anone"+>none</A+></TT+> is+ applied.+ This filter can be used like a case expression: <TT+>choice [ p1 :-&gt; f1, p2 :-&gt; f2, ... , this :-&gt; defaultFilter]</TT+>+</P+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Aiff"+>iff</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AchoiceM"+>choiceM</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AIfThen"+></A+><B+>IfThen</B+> a b</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>auxiliary datatype for cases within choice filter+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3A%3A-%3E"+></A+><B+>(:-&gt;)</B+> a b</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Awhen"+></A+><B+>when</B+> :: (a -&gt; [a]) -&gt; (a -&gt; [a]) -&gt; a -&gt; [a]</TD+></TR+><TR+><TD CLASS="doc"+><P+>when the predicate p holds, f is applied, else the identity filter this+</P+><UL+><LI+> 1.parameter f :  the conditinally applied filter+</LI+><LI+> 2.parameter p :  the predicate+</LI+><LI+> returns : the conditional filter+</LI+></UL+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Aiff"+>iff</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNot"+>whenNot</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Aguards"+>guards</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenM"+>whenM</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AwhenNot"+></A+><B+>whenNot</B+> :: (a -&gt; [a]) -&gt; (a -&gt; [a]) -&gt; a -&gt; [a]</TD+></TR+><TR+><TD CLASS="doc"+><P+>the complementary filter of when+</P+><P+>shortcut for f <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Awhen"+>when</A+></TT+> neg g+</P+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Aiff"+>iff</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Awhen"+>when</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNotM"+>whenNotM</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Aneg"+>neg</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aguards"+></A+><B+>guards</B+> :: (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>when the predicate p holds, f is applied, else the null filter none+</P+><UL+><LI+> 1.parameter p :  the predicate filter+</LI+><LI+> 2.parameter f :  the conditionally applied filter+</LI+><LI+> returns : the conditional filter+</LI+></UL+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Aiff"+>iff</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Awhen"+>when</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AguardsM"+>guardsM</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aneg"+></A+><B+>neg</B+> :: (a -&gt; [c]) -&gt; a -&gt; [a]</TD+></TR+><TR+><TD CLASS="doc"+><P+>negation lifted to filters+</P+><UL+><LI+> 1.parameter f :  the predicate filter+</LI+><LI+> returns : the filter, that succeeds, when f failed+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Acontaining"+></A+><B+>containing</B+> :: (a -&gt; [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>pruning: keep only those results from f for which g holds, usually written in infix notation as f <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Acontaining"+>containing</A+></TT+> g+</P+><UL+><LI+> 1.parameter f :  the processing filter+</LI+><LI+> 2.parameter g :  the predicate filter+</LI+><LI+> 3.parameter t :  the tree+</LI+><LI+> returns : all trees r from f t, for which g r holds (is not the empty list)+</LI+></UL+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AnotContaining"+>notContaining</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnotContaining"+></A+><B+>notContaining</B+> :: (a -&gt; [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>pruning: keep only those results from f for which g does not hold+</P+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Acontaining"+>containing</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%2F%3E"+></A+><B+>(/&gt;)</B+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+>pronounced &quot;slash&quot;, meaning g inside f+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%3C%2F"+></A+><B+>(&lt;/)</B+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+>pronounced &quot;outside&quot; meaning f containing g+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Adeep"+></A+><B+>deep</B+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>top down search.+</P+><P+>search terminates, when filter f succeeds+ can e.g. be used for finding all outermost tag node of a specific kind+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Adeepest"+></A+><B+>deepest</B+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>bottom up search.+</P+><P+>first the children are processed,+ if this does not succeed, the node itself is processed+ can e.g. be used for finding all innermost tag nodes of a specific kind+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Amulti"+></A+><B+>multi</B+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>process all nodes of the whole tree.+</P+><P+>can e.g. be used for finding all nodes of a specific kind+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessBottomUp"+></A+><B+>processBottomUp</B+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>bottom up transformation+</P+><UL+><LI+> 1.parameter f :  the <EM+>simple</EM+> transforming filter+</LI+><LI+> returns : the filter that applies f to all subtrees and the tree itself in a deepth first left to right manner+</LI+></UL+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDown"+>processTopDown</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUpIfNot"+>processBottomUpIfNot</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessBottomUpIfNot"+></A+><B+>processBottomUpIfNot</B+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>guarded bottom up transformation, stops at subtrees for which a predicate p holds+</P+><UL+><LI+> 1.parameter f :  the transforming filter+</LI+><LI+> 2.parameter p :  the predicate filter for the guard+</LI+><LI+> returns : the filter for processing all (sub-)trees+</LI+></UL+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUp"+>processBottomUp</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessTopDown"+></A+><B+>processTopDown</B+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>top down transformation+</P+><UL+><LI+> 1.parameter f :  the <EM+>simple</EM+> transforming filter+</LI+><LI+> returns : the filter that applies f first to the tree and then recursively to all subtrees of the result+</LI+></UL+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUp"+>processBottomUp</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessTopDownUntil"+></A+><B+>processTopDownUntil</B+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>top down transformation until a node to be transformed is found+</P+><UL+><LI+> 1.parameter f :  the <EM+>simple</EM+> transforming filter+</LI+><LI+> returns : the filter that applies f first to the tree and, if the filter does not succeed,+		  recursively to all children of the input tree.+</LI+></UL+><P+>Example:+</P+><PRE+>processTopDownUntil none</PRE+><P+>is the identity filter (maybe a bit more inefficient).+</P+><P+>Example:+</P+><PRE+>processTopDownUntil (add1Attr &quot;border&quot; &quot;2&quot; `containing` isTag &quot;table&quot;)</PRE+><P+>is a filter for adding an attribute border=&quot;2&quot; in all top level table tags.+		  The content of table tags will remain unchanged.+</P+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDown"+>processTopDown</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUp"+>processBottomUp</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AinsertChildrenAt"+></A+><B+>insertChildrenAt</B+> :: Int -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>insertion of trees into the list of children at a given position+</P+><P+>useful for inserting something into the list of children at a given position+ the list of children is split with the <TT+>splitAt</TT+> function+ the nodes are inserted between these two sublists.+</P+><P+>examples: <TT+>insertChildrenAt 0 ins t</TT+> inserts all elements computed with <TT+>ins t</TT+> in front+ of the childen of <TT+>t</TT+>, <TT+>insertChildrenAt 1 ins t</TT+> behind the first child+</P+><P+>see also: <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AinsertChildrenAfter"+>insertChildrenAfter</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AinsertChildrenAfter"+></A+><B+>insertChildrenAfter</B+> :: <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> node</TD+></TR+><TR+><TD CLASS="doc"+><P+>insertion of trees into the list of children after specific elements+</P+><P+>useful for inserting something into the list of children of a node+ the list of children is split with the <TT+>span</TT+> function and the filter p as predicate+ the nodes are inserted between these two sublists+</P+><P+>examples: <TT+>insertChildrenAfter none ins t</TT+> inserts all elements computed with <TT+>ins t</TT+> in front+ of the childen of <TT+>t</TT+>, <TT+>insertChildrenAfter this ins t</TT+> appends the elements to the children+</P+><P+>see also: <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AinsertChildrenAt"+>insertChildrenAt</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+><A NAME="2"+>Monadic Filter+</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AthisM"+></A+><B+>thisM</B+> :: Monad m =&gt; a -&gt; m [a]</TD+></TR+><TR+><TD CLASS="doc"+><P+>the monadic version of the identity filter this.+</P+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Athis"+>this</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnoneM"+></A+><B+>noneM</B+> :: Monad m =&gt; a -&gt; m [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>the monadic version of the null filter none.+</P+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Anone"+>none</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A.%3E%3E"+></A+><B+>(.&gt;&gt;)</B+> :: Monad m =&gt; (a -&gt; m [b]) -&gt; (b -&gt; m [c]) -&gt; a -&gt; m [c]</TD+></TR+><TR+><TD CLASS="doc"+><P+>sequential composition of monadic filters, monadic version of &quot;.&gt;&quot;.+</P+><UL+><LI+> 1.parameter f1 :  the 1. monadic filter+</LI+><LI+> 2.parameter f2 :  the 2. monadic filter+</LI+><LI+> returns : the monadic fiter applying first f1 to n and then f2 to the result (like function composition)+</LI+></UL+><P+>see also : '(.&gt;)'+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AseqM"+></A+><B+>seqM</B+> :: Monad m =&gt; [a -&gt; m [a]] -&gt; a -&gt; m [a]</TD+></TR+><TR+><TD CLASS="doc"+>generalized sequential composition of monadic filters+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%2B%2B%2B%3E%3E"+></A+><B+>(+++&gt;&gt;)</B+> :: Monad m =&gt; (a -&gt; m [b]) -&gt; (a -&gt; m [b]) -&gt; a -&gt; m [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>binary parallel composition, the logical OR for predicate filter+</P+><UL+><LI+> 1.parameter f1 :  the 1. filter+</LI+><LI+> 2.parameter f2 :  the 2. filter+</LI+><LI+> returns : the filter for applying f1 and f2 both to an argument tree and concatenating the results+ see also: <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Acat"+>cat</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3A%2B%2B%2B"+>+++</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AcatM"+>catM</A+></TT+>+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcatM"+></A+><B+>catM</B+> :: Monad m =&gt; [a -&gt; m [b]] -&gt; a -&gt; m [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>apply a list of monadic filters+</P+><UL+><LI+> 1.parameter fs :  the list of filters+</LI+><LI+> returns : the composing filter+ see also: <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Acat"+>cat</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3A%2B%2B%2B"+>+++</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3A%2B%2B%2B%3E%3E"+>+++&gt;&gt;</A+></TT+>+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AifM"+></A+><B+>ifM</B+> :: Monad m =&gt; (a -&gt; [b]) -&gt; (a -&gt; m [c]) -&gt; (a -&gt; m [c]) -&gt; a -&gt; m [c]</TD+></TR+><TR+><TD CLASS="doc"+><P+>monadic if-then-else.+</P+><UL+><LI+> 1.parameter p :  the predicate+</LI+><LI+> 2.parameter thenP :  the then part: the monadic filter, that is applied if p holds for the input tree+</LI+><LI+> 3.parameter elseP :  the else part+</LI+><LI+> returns : the monadic filter for the conditional+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchoiceM"+></A+><B+>choiceM</B+> :: Monad m =&gt; [<A HREF="Data-Tree-NTree-Filter.html#t%3AIfThen"+>IfThen</A+> (a -&gt; [c]) (a -&gt; m [b])] -&gt; a -&gt; m [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>monadic version of multiway branch. The list of cases <TT+>f :-&gt; g</TT+> is processed sequentially,+ in the first case for that f holds g is applied, if no case matches, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AnoneM"+>noneM</A+></TT+> is+ applied.+ This filter can be used like a case expression: <TT+>choiceM [ p1 :-&gt; f1, p2 :-&gt; f2, ... , thisM :-&gt; defaultFilter]</TT+>+</P+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Achoice"+>choice</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AifM"+>ifM</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AwhenM"+></A+><B+>whenM</B+> :: Monad m =&gt; (a -&gt; m [a]) -&gt; (a -&gt; [b]) -&gt; a -&gt; m [a]</TD+></TR+><TR+><TD CLASS="doc"+><P+>when the predicate p holds, the monadic filter f is applied, else the identity filter.+</P+><UL+><LI+> 1.parameter f :  the conditinally applied monadic filter+</LI+><LI+> 2.parameter p :  the simple predicate+</LI+><LI+> returns : the conditional filter+</LI+></UL+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AifM"+>ifM</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Awhen"+>when</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AguardsM"+>guardsM</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNotM"+>whenNotM</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AwhenNotM"+></A+><B+>whenNotM</B+> :: Monad m =&gt; (a -&gt; m [a]) -&gt; (a -&gt; [b]) -&gt; a -&gt; m [a]</TD+></TR+><TR+><TD CLASS="doc"+><P+>the complementary filter of whenM.+</P+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AifM"+>ifM</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenM"+>whenM</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNot"+>whenNot</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AguardsM"+></A+><B+>guardsM</B+> :: Monad m =&gt; (a -&gt; [b]) -&gt; (a -&gt; m [c]) -&gt; a -&gt; m [c]</TD+></TR+><TR+><TD CLASS="doc"+><P+>when the predicate p holds, the monadic filter f is applied, else the null filter.+</P+><UL+><LI+> 1.parameter p :  the simple predicate filter+</LI+><LI+> 2.parameter f :  the conditionally applied monadic filter+</LI+><LI+> returns : the conditional filter+</LI+></UL+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AifM"+>ifM</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Aguards"+>guards</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenM"+>whenM</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcontainingM"+></A+><B+>containingM</B+> :: Monad m =&gt; (a -&gt; m [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; m [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>pruning: monadic version of containing, usually written in infix notation as f <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AcontainingM"+>containingM</A+></TT+> g+</P+><UL+><LI+> 1.parameter f :  the monadic processing filter+</LI+><LI+> 2.parameter g :  the predicate filter+</LI+><LI+> 3.parameter t :  the tree+</LI+><LI+> returns : all trees r from f t, for which g r holds (is not the empty list)+</LI+></UL+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AnotContaining"+>notContaining</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessChildrenM"+></A+><B+>processChildrenM</B+> :: Monad m =&gt; (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node]) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node]</TD+></TR+><TR+><TD CLASS="doc"+><P+>Filter for editing the children of a tree with a monadic filter+</P+><UL+><LI+> 1.parameter cf :  the monadic filter applied to the children+</LI+><LI+> returns : the monadic editing filter+</LI+></UL+><P+>see also : <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessChildren"+>processChildren</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessTopDownM"+></A+><B+>processTopDownM</B+> :: Monad m =&gt; (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node]) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node]</TD+></TR+><TR+><TD CLASS="doc"+>monadic variant of <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDown"+>processTopDown</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessBottomUpM"+></A+><B+>processBottomUpM</B+> :: Monad m =&gt; (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node]) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node]</TD+></TR+><TR+><TD CLASS="doc"+>monadic variant of <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUp"+>processBottomUp</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AliftMf"+></A+><B+>liftMf</B+> :: Monad m =&gt; (a -&gt; [b]) -&gt; a -&gt; m [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>lift a filter to a monadic filter+</P+><UL+><LI+> 1.parameter f :  the <EM+>simple</EM+> filter+</LI+><LI+> returns : the lifted monadic version+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%24%24"+></A+><B+>($$)</B+> :: (a -&gt; [b]) -&gt; [a] -&gt; [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>infix operator for applying a filter to a list of trees+</P+><UL+><LI+> 1.parameter f :  the filter+</LI+><LI+> 2.parameter ts :  the list of trees+</LI+><LI+> returns : the concatenated list of results+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%24%24%3C"+></A+><B+>($$&lt;)</B+> :: Monad m =&gt; (a -&gt; m [b]) -&gt; [a] -&gt; m [b]</TD+></TR+><TR+><TD CLASS="doc"+><P+>infix operator for applying a monadic filter to a list of trees,+ typically used in do-notation for processing of intermediate results.+</P+><UL+><LI+> 1.parameter f :  the monadic filter+</LI+><LI+> 2.parameter ts :  the list of trees+</LI+><LI+> returns : the concatenated list of results+</LI+></UL+><P+>see also : '($$)'+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AperformAction"+></A+><B+>performAction</B+> :: Monad m =&gt; (a -&gt; m b) -&gt; a -&gt; m [a]</TD+></TR+><TR+><TD CLASS="doc"+><P+>run an arbitray command on a tree t and return the tree,+ used for inserting arbitray commands in a filter pipeline+</P+><UL+><LI+> 1.parameter cmd :  the command+</LI+><LI+> 2.parameter t :  the argument tree+</LI+><LI+> returns : the unchanged tree as a single element list+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Data-Tree-NTree-TypeDefs.html view
@@ -0,0 +1,367 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Data.Tree.NTree.TypeDefs</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/Tree/NTree/TypeDefs.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Data.Tree.NTree.TypeDefs</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: TypeDefs.hs,v 1.6 2005<EM+>09</EM+>02 17:09:39 hxml Exp $+</P+><P+>Interface definition for trees+</P+><P+>n-ary tree structure (rose trees)+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>module <A HREF="Data-Tree-Class.html"+>Data.Tree.Class</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3ANTree"+>NTree</A+> a = <A HREF="#v%3ANTree"+>NTree</A+> a (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>NTrees</A+> a)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ANTrees"+>NTrees</A+> a = [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AformatNTreeF"+>formatNTreeF</A+> :: (node -&gt; String) -&gt; (String -&gt; String) -&gt; (String -&gt; String) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; String -&gt; String</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Data-Tree-Class.html"+>Data.Tree.Class</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3ANTree"+></A+><B+>NTree</B+> a</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+><P+>n-ary ordered tree (rose trees)+</P+><P+>a tree consists of a node and a possible empty list of children.+ If the list of children is empty, the node is a leaf, else it's+ an inner node.+</P+><P+>NTree implements Eq, Ord, Show and Read+</P+></TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ANTree"+></A+><B+>NTree</B+> a (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>NTrees</A+> a)</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:NTree')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:NTree" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Functor <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Data-Tree-Class.html#t%3ATree"+>Tree</A+> <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> a =&gt; <A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+>(Eq a, ??? a) =&gt; Eq (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+>(Ord a, ??? a) =&gt; Ord (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+>(Read a, ??? a) =&gt; Read (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+>(Show a, ??? a) =&gt; Show (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+>(Typeable a, ??? a) =&gt; Typeable (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ANTrees"+></A+><B+>NTrees</B+> a = [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a]</TD+></TR+><TR+><TD CLASS="doc"+>shortcut for a sequence of n-ary trees+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AformatNTreeF"+></A+><B+>formatNTreeF</B+> :: (node -&gt; String) -&gt; (String -&gt; String) -&gt; (String -&gt; String) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>convert a tree into a pseudo graphical string reprsentation+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/System-PipeOpen.html view
@@ -0,0 +1,166 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>System.PipeOpen</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./System/PipeOpen.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>System.PipeOpen</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>none portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: PipeOpen.hs,v 1.2 2005<EM+>09</EM+>02 17:09:39 hxml Exp $+</P+><P+>pipe open implemented with System.Process functions+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3Apopen"+>popen</A+> :: String -&gt; [String] -&gt; IO (String, String, Int)</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Apopen"+></A+><B+>popen</B+> :: String -&gt; [String] -&gt; IO (String, String, Int)</TD+></TR+><TR+><TD CLASS="doc"+>call an external program with a list of command line arguments+ and return content of stdout, content of stderr and return code+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-DOM-EditFilters.html view
@@ -0,0 +1,1202 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.EditFilters</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/EditFilters.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.EditFilters</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>XML editing filters+</P+><P+>Version : $Id: EditFilters.hs,v 1.5 2006<EM+>11</EM+>12 14:52:59 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AcanonicalizeTree"+>canonicalizeTree</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcanonicalizeAllNodes"+>canonicalizeAllNodes</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcanonicalizeForXPath"+>canonicalizeForXPath</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcollapseXText"+>collapseXText</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcollapseAllXText"+>collapseAllXText</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AindentDoc"+>indentDoc</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AremoveWhiteSpace"+>removeWhiteSpace</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AremoveAllWhiteSpace"+>removeAllWhiteSpace</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AremoveDocWhiteSpace"+>removeDocWhiteSpace</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AremoveComment"+>removeComment</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AremoveAllComment"+>removeAllComment</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransfCdata"+>transfCdata</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransfAllCdata"+>transfAllCdata</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransfCdataEscaped"+>transfCdataEscaped</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransfAllCdataEscaped"+>transfAllCdataEscaped</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransfCharRef"+>transfCharRef</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransfAllCharRef"+>transfAllCharRef</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AescapeXmlDoc"+>escapeXmlDoc</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AescapeXmlText"+>escapeXmlText</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AescapeXmlAttrValue"+>escapeXmlAttrValue</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AunparseXmlDoc"+>unparseXmlDoc</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnumberLinesInXmlDoc"+>numberLinesInXmlDoc</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnumberLines"+>numberLines</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtreeRepOfXmlDoc"+>treeRepOfXmlDoc</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhaskellRepOfXmlDoc"+>haskellRepOfXmlDoc</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddHeadlineToXmlDoc"+>addHeadlineToXmlDoc</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddXmlPiToDoc"+>addXmlPiToDoc</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcanonicalizeTree"+></A+><B+>canonicalizeTree</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Applies some <A HREF="Canonical XML.html"+>Canonical XML</A+> rules to the nodes of a tree.+</P+><P+>The rule differ slightly for canonical XML and XPath in handling of comments+</P+><P+>Note: This is not the whole canonicalization as it is specified by the W3C+ Recommendation. Adding attribute defaults or sorting attributes in lexicographic+ order is done by the <TT+>transform</TT+> function of module <TT+>Text.XML.HXT.Validator.Validation</TT+>.+ Replacing entities or line feed normalization is done by the parser.+</P+><P+>Not implemented yet:+</P+><UL+><LI+> Whitespace within start and end tags is normalized+</LI+><LI+> Special characters in attribute values and character content are replaced by character references+</LI+></UL+><P+>see <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcanonicalizeAllNodes"+>canonicalizeAllNodes</A+></TT+> and <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcanonicalizeForXPath"+>canonicalizeForXPath</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcanonicalizeAllNodes"+></A+><B+>canonicalizeAllNodes</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>canonicalize tree and remove comments and &lt;?xml ... ?&gt; declarations+</P+><P+>see <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcanonicalizeTree"+>canonicalizeTree</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcanonicalizeForXPath"+></A+><B+>canonicalizeForXPath</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Canonicalize a tree for XPath+ Comment nodes are not removed+</P+><P+>see <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcanonicalizeTree"+>canonicalizeTree</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcollapseXText"+></A+><B+>collapseXText</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Collects sequences of child XText nodes into one XText node.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcollapseAllXText"+></A+><B+>collapseAllXText</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Applies collapseXText recursively.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcollapseXText"+>collapseXText</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AindentDoc"+></A+><B+>indentDoc</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>filter for indenting a document tree for pretty printing.+</P+><P+>the tree is traversed for inserting whitespace for tag indentation.+</P+><P+>whitespace is only inserted or changed at places, where it isn't significant,+ is's not inserted between tags and text containing non whitespace chars.+</P+><P+>whitespace is only inserted or changed at places, where it's not significant.+ preserving whitespace may be controlled in a document tree+ by a tag attribute <TT+>xml:space</TT+>+</P+><P+>allowed values for this attribute are <TT+>default | preserve</TT+>.+</P+><P+>input is a complete document tree.+ result the semantically equivalent formatted tree.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveDocWhiteSpace"+>removeDocWhiteSpace</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveWhiteSpace"+></A+><B+>removeWhiteSpace</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>simple filter for removing whitespace.+</P+><P+>no check on sigificant whitespace is done.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveAllWhiteSpace"+>removeAllWhiteSpace</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveDocWhiteSpace"+>removeDocWhiteSpace</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveAllWhiteSpace"+></A+><B+>removeAllWhiteSpace</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>simple recursive filter for removing all whitespace.+</P+><P+>removes all text nodes in a tree that consist only of whitespace.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveWhiteSpace"+>removeWhiteSpace</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveDocWhiteSpace"+>removeDocWhiteSpace</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveDocWhiteSpace"+></A+><B+>removeDocWhiteSpace</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>filter for removing all not significant whitespace.+</P+><P+>the tree traversed for removing whitespace between tags,+ that was inserted for indentation and readability.+ whitespace is only removed at places, where it's not significat+ preserving whitespace may be controlled in a document tree+ by a tag attribute <TT+>xml:space</TT+>+</P+><P+>allowed values for this attribute are <TT+>default | preserve</TT+>+</P+><P+>input is root node of the document to be cleaned up+ output the semantically equivalent simplified tree+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AindentDoc"+>indentDoc</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveAllWhiteSpace"+>removeAllWhiteSpace</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveComment"+></A+><B+>removeComment</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>remove Comments+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveAllComment"+></A+><B+>removeAllComment</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>remove all Comments recursively+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransfCdata"+></A+><B+>transfCdata</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>converts CDATA section in normal text sections+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransfAllCdata"+></A+><B+>transfAllCdata</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>converts CDATA sections in whole document tree+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransfCdataEscaped"+></A+><B+>transfCdataEscaped</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>converts CDATA section in normal text nodes+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransfAllCdataEscaped"+></A+><B+>transfAllCdataEscaped</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>converts CDATA sections in whole document tree into normal text nodes+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransfCharRef"+></A+><B+>transfCharRef</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>converts character references to normal text+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransfAllCharRef"+></A+><B+>transfAllCharRef</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>recursively converts all character references to normal text+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AescapeXmlDoc"+></A+><B+>escapeXmlDoc</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>convert the special XML chars &quot;, &lt;, &gt;, &amp; and ' in a document to char references,+ attribute values are converted with <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlAttrValue"+>escapeXmlAttrValue</A+></TT+>+</P+><P+>see also: <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlText"+>escapeXmlText</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlAttrValue"+>escapeXmlAttrValue</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AescapeXmlText"+></A+><B+>escapeXmlText</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>convert the special XML chars in a text or comment node+ into character references+</P+><P+>see also <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlDoc"+>escapeXmlDoc</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AescapeXmlAttrValue"+></A+><B+>escapeXmlAttrValue</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>convert the special XML chars in an attribute value into+ charachter references. Not only the XML specials but also \n, \r and \t are converted+</P+><P+>see also: <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlDoc"+>escapeXmlDoc</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlText"+>escapeXmlText</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AunparseXmlDoc"+></A+><B+>unparseXmlDoc</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>convert a document tree into an output string representation+ with respect to the output encoding.+</P+><P+>The children of the document root are stubstituted by+ a single text node for the text representation of the document.+</P+><P+>Encoding of the document is performed with respect+ to the <TT+>output-encoding</TT+> attribute in the root node, or if not present,+ of the <TT+>encoding</TT+> attribute for the original input encoding.+ If the encoding is not specified or not supported, UTF-8 is taken.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnumberLinesInXmlDoc"+></A+><B+>numberLinesInXmlDoc</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>convert a document into a text and add line numbers to the text representation.+</P+><P+>Result is a root node with a single text node as child.+ Useful for debugging and trace output.+ see also : <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AhaskellRepOfXmlDoc"+>haskellRepOfXmlDoc</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtreeRepOfXmlDoc"+>treeRepOfXmlDoc</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnumberLines"+></A+><B+>numberLines</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtreeRepOfXmlDoc"+></A+><B+>treeRepOfXmlDoc</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>convert a document into a text representation in tree form.+</P+><P+>Useful for debugging and trace output.+ see also : <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AhaskellRepOfXmlDoc"+>haskellRepOfXmlDoc</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AnumberLinesInXmlDoc"+>numberLinesInXmlDoc</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhaskellRepOfXmlDoc"+></A+><B+>haskellRepOfXmlDoc</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>convert a document into a Haskell representation (with show).+</P+><P+>Useful for debugging and trace output.+ see also : <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtreeRepOfXmlDoc"+>treeRepOfXmlDoc</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AnumberLinesInXmlDoc"+>numberLinesInXmlDoc</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddHeadlineToXmlDoc"+></A+><B+>addHeadlineToXmlDoc</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddXmlPiToDoc"+></A+><B+>addXmlPiToDoc</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-DOM-FormatXmlTree.html view
@@ -0,0 +1,134 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.FormatXmlTree</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/FormatXmlTree.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.FormatXmlTree</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>format a xml tree in tree representation+</P+><P+>Version : $Id: FormatXmlTree.hs,v 1.2 2006<EM+>05</EM+>01 18:56:24 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AformatXmlTree"+></A+><B+>formatXmlTree</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AformatXmlContents"+></A+><B+>formatXmlContents</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-DOM-Namespace.html view
@@ -0,0 +1,181 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.Namespace</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/Namespace.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.Namespace</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>main namespace filter for propagation, checking, tracing and error handling+</P+><P+>$Id: Namespace.hs,v 1.3 2005<EM+>01</EM+>06 10:48:07 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3ApropagateAndValidateNamespaces"+>propagateAndValidateNamespaces</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-NamespaceFilter.html"+>Text.XML.HXT.DOM.NamespaceFilter</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ApropagateAndValidateNamespaces"+></A+><B+>propagateAndValidateNamespaces</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>propagate all namespace declarations, check namespace constraints and issue errors.+ If no error was found, result is the unchanged input tree, else the root node &quot;/&quot; with an empty document is returned.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3ApropagateNamespaces"+>propagateNamespaces</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3AvalidateNamespaces"+>validateNamespaces</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-NamespaceFilter.html"+>Text.XML.HXT.DOM.NamespaceFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-DOM-NamespaceFilter.html view
@@ -0,0 +1,409 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.NamespaceFilter</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/NamespaceFilter.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.NamespaceFilter</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Namespace filter+</P+><P+>$Id: NamespaceFilter.hs,v 1.4 2006<EM+>11</EM+>12 14:53:00 hxml Exp $+</P+><P+>Namespaces are processed with two main filter, <TT+><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3ApropagateNamespaces"+>propagateNamespaces</A+></TT+>+ and <TT+><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3AvalidateNamespaces"+>validateNamespaces</A+></TT+>.+</P+><P+><TT+><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3ApropagateNamespaces"+>propagateNamespaces</A+></TT+> takes a XML tree and+ attaches extra namespace info at every tag name and attribute name.+ So after processing a tree with <TT+><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3ApropagateNamespaces"+>propagateNamespaces</A+></TT+>, the access functions+ <A HREF="namespaceOf.html"+>namespaceOf</A+> and <A HREF="universalNameOf.html"+>universalNameOf</A+> deliver the associated namespace (or &quot;&quot;)+ for tag names and attribute names.+</P+><P+><TT+><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3AvalidateNamespaces"+>validateNamespaces</A+></TT+> checks whether names are wellformed related to the XML namespace definition.+ whether a legal namespace is declared for all prefixes, and whether attribute names are unique+ related to universal names.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ANamespaceTable"+>NamespaceTable</A+> = <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ApropagateNamespaces"+>propagateNamespaces</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ApropagateNamespaceEnv"+>propagateNamespaceEnv</A+> :: <A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#t%3ANamespaceTable"+>NamespaceTable</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateNamespaces"+>validateNamespaces</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Avalidate1Namespaces"+>validate1Namespaces</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisNamespaceDecl"+>isNamespaceDecl</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-NamespacePredicates.html"+>Text.XML.HXT.DOM.NamespacePredicates</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ANamespaceTable"+></A+><B+>NamespaceTable</B+> = <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+></TD+></TR+><TR+><TD CLASS="doc"+>Type for the namespace association list, used when propagating namespaces by+ modifying the <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TT+> values in a tree+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ApropagateNamespaces"+></A+><B+>propagateNamespaces</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>propagate all namespace declarations &quot;xmlns:ns=...&quot; to all+ tag and attribute nodes of a document.+</P+><P+>This filter does not check for illegal use of namespaces.+ The real work is done by <TT+><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3ApropagateNamespaceEnv"+>propagateNamespaceEnv</A+></TT+>.+</P+><P+>The filter may be applied repeatedly if neccessary.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ApropagateNamespaceEnv"+></A+><B+>propagateNamespaceEnv</B+> :: <A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#t%3ANamespaceTable"+>NamespaceTable</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>attaches the namespace info given by the namespace table+ to a tag node and its attributes and children.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateNamespaces"+></A+><B+>validateNamespaces</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>validate the namespace constraints in a whole tree.+ result is the list of errors concerning namespaces.+ Work is done by applying <TT+><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3Avalidate1Namespaces"+>validate1Namespaces</A+></TT+> to all nodes.+ Predicates <TT+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedQName"+>isWellformedQName</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedQualifiedName"+>isWellformedQualifiedName</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisDeclaredNamespace"+>isDeclaredNamespace</A+></TT+>+ and <TT+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedNSDecl"+>isWellformedNSDecl</A+></TT+> are applied to the appropriate tags and attributes.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Avalidate1Namespaces"+></A+><B+>validate1Namespaces</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>a single node for namespace constrains.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisNamespaceDecl"+></A+><B+>isNamespaceDecl</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-NamespacePredicates.html"+>Text.XML.HXT.DOM.NamespacePredicates</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-DOM-NamespacePredicates.html view
@@ -0,0 +1,348 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.NamespacePredicates</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/NamespacePredicates.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.NamespacePredicates</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>basic Namespace and QName predicates and functions+</P+><P+>$Id: NamespacePredicates.hs,v 1.3 2006<EM+>11</EM+>12 14:53:00 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetNamespace"+>setNamespace</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlnsQN"+>xmlnsQN</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisNCName"+>isNCName</A+> :: String -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisWellformedQualifiedName"+>isWellformedQualifiedName</A+> :: String -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisWellformedQName"+>isWellformedQName</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisWellformedNSDecl"+>isWellformedNSDecl</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisDeclaredNamespace"+>isDeclaredNamespace</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetNamespace"+></A+><B+>setNamespace</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Compute the name prefix and the namespace uri for a qualified name.+</P+><P+>This function does not test whether the name is a wellformed qualified name.+ see Namespaces in XML Rule [6] to [8]. Error checking is done with separate functions,+ see <TT+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedQName"+>isWellformedQName</A+></TT+> and <TT+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedQualifiedName"+>isWellformedQualifiedName</A+></TT+> for error checking.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlnsQN"+></A+><B+>xmlnsQN</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisNCName"+></A+><B+>isNCName</B+> :: String -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test for wellformed NCName, rule [4] XML Namespaces+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisWellformedQualifiedName"+></A+><B+>isWellformedQualifiedName</B+> :: String -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test for wellformed QName, rule [6] XML Namespaces+ predicate is used in filter valdateNamespaces.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisWellformedQName"+></A+><B+>isWellformedQName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test for wellformed QName values.+ A QName is wellformed, if the local part is a NCName, the namePrefix, if not empty, is also a NCName.+ predicate is used in filter valdateNamespaces.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisWellformedNSDecl"+></A+><B+>isWellformedNSDecl</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test for a wellformed namespace declaration+ all namespace prefixes starting with &quot;xml&quot; are reserved for XML related definitions.+ predicate is used in filter valdateNamespaces.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisDeclaredNamespace"+></A+><B+>isDeclaredNamespace</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>predicate is used in filter valdateNamespaces.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-DOM-TypeDefs.html view
@@ -0,0 +1,1951 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.TypeDefs</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/TypeDefs.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.TypeDefs</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>The core data types of HDOM.+</P+><P+>Version : $Id: TypeDefs.hs,v 1.13 2006<EM+>11</EM+>09 20:27:42 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>module <A HREF="Data-AssocList.html"+>Data.AssocList</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AXmlTree"+>XmlTree</A+> = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AXmlTrees"+>XmlTrees</A+> = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>NTrees</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AXNode"+>XNode</A+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>= <A HREF="#v%3AXText"+>XText</A+> String</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXCharRef"+>XCharRef</A+> Int</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXEntityRef"+>XEntityRef</A+> String</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXCmt"+>XCmt</A+> String</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXCdata"+>XCdata</A+> String</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXPi"+>XPi</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXTag"+>XTag</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXDTD"+>XDTD</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXAttr"+>XAttr</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXError"+>XError</A+> Int String</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3ADTDElem"+>DTDElem</A+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>= <A HREF="#v%3ADOCTYPE"+>DOCTYPE</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AELEMENT"+>ELEMENT</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ACONTENT"+>CONTENT</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AATTLIST"+>ATTLIST</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AENTITY"+>ENTITY</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3APENTITY"+>PENTITY</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ANOTATION"+>NOTATION</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ACONDSECT"+>CONDSECT</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ANAME"+>NAME</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3APEREF"+>PEREF</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AAttributes"+>Attributes</A+> = <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> String String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AQName"+>QName</A+>  = <A HREF="#v%3AQN"+>QN</A+> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="recfield"+><A HREF="#v%3AnamePrefix"+>namePrefix</A+> :: String</TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3AlocalPart"+>localPart</A+> :: String</TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3AnamespaceUri"+>namespaceUri</A+> :: String</TD+></TR+></TABLE+>}</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AqualifiedName"+>qualifiedName</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AuniversalName"+>universalName</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AuniversalUri"+>universalUri</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AbuildUniversalName"+>buildUniversalName</A+> :: (String -&gt; String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkName"+>mkName</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkPrefixLocalPart"+>mkPrefixLocalPart</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkNsName"+>mkNsName</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkSNsName"+>mkSNsName</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnullQName"+>nullQName</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AequalQName"+>equalQName</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AequivQName"+>equivQName</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AequivUri"+>equivUri</A+> :: String -&gt; String -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AequalQNameBy"+>equalQNameBy</A+> :: (String -&gt; String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnormalizeNsUri"+>normalizeNsUri</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ANsEnv"+>NsEnv</A+> = <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> String String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ac_ok"+>c_ok</A+> :: Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ac_warn"+>c_warn</A+> :: Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ac_err"+>c_err</A+> :: Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ac_fatal"+>c_fatal</A+> :: Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AXmlNodeSet"+>XmlNodeSet</A+>  = <A HREF="#v%3AXNS"+>XNS</A+> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="recfield"+><A HREF="#v%3AthisNode"+>thisNode</A+> :: Bool</TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3AattrNodes"+>attrNodes</A+> :: [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>]</TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3AchildNodes"+>childNodes</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AChildNodes"+>ChildNodes</A+></TD+></TR+></TABLE+>}</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AChildNodes"+>ChildNodes</A+> = [(Int, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+>)]</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Data-AssocList.html"+>Data.AssocList</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AXmlTree"+></A+><B+>XmlTree</B+> = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="doc"+>Node of xml tree representation+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AXmlTrees"+></A+><B+>XmlTrees</B+> = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>NTrees</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="doc"+>List of nodes of xml tree representation+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AXNode"+></A+><B+>XNode</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>Represents elements+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AXText"+></A+><B+>XText</B+> String</TD+><TD CLASS="rdoc"+>ordinary text				(leaf)+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXCharRef"+></A+><B+>XCharRef</B+> Int</TD+><TD CLASS="rdoc"+>character reference			(leaf)+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXEntityRef"+></A+><B+>XEntityRef</B+> String</TD+><TD CLASS="rdoc"+>entity reference				(leaf)+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXCmt"+></A+><B+>XCmt</B+> String</TD+><TD CLASS="rdoc"+>comment					(leaf)+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXCdata"+></A+><B+>XCdata</B+> String</TD+><TD CLASS="rdoc"+>CDATA section				(leaf)+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXPi"+></A+><B+>XPi</B+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+><TD CLASS="rdoc"+>Processing Instr with qualified name	(leaf)+   with list of attributes.+   If tag name is xml, attributs are &quot;version&quot;, &quot;encoding&quot;, &quot;standalone&quot;,+   else attribute list is empty, content is a text child node+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXTag"+></A+><B+>XTag</B+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+><TD CLASS="rdoc"+>tag with qualified name and list of attributes (inner node or leaf)+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXDTD"+></A+><B+>XDTD</B+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+></TD+><TD CLASS="rdoc"+>DTD element with assoc list for dtd element features+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXAttr"+></A+><B+>XAttr</B+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+><TD CLASS="rdoc"+>attribute with qualified name, the attribute value is stored in children+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXError"+></A+><B+>XError</B+> Int String</TD+><TD CLASS="rdoc"+>error message with level and text+</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XNode')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:XNode" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="decl"+>Ord <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="decl"+>Read <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="decl"+>Typeable <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3ADTDElem"+></A+><B+>DTDElem</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>Represents a DTD element+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ADOCTYPE"+></A+><B+>DOCTYPE</B+></TD+><TD CLASS="rdoc"+>attr: name, system, public,	XDTD elems as children+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AELEMENT"+></A+><B+>ELEMENT</B+></TD+><TD CLASS="rdoc"+><P+>attr: name, kind+</P+><P+>name: element name+</P+><P+>kind: &quot;EMPTY&quot; | &quot;ANY&quot; | &quot;#PCDATA&quot; | children | mixed+</P+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ACONTENT"+></A+><B+>CONTENT</B+></TD+><TD CLASS="rdoc"+><P+>element content+</P+><P+>attr: kind, modifier+</P+><P+>modifier: &quot;&quot; | &quot;?&quot; | &quot;*&quot; | &quot;+&quot;+</P+><P+>kind: seq | choice+</P+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AATTLIST"+></A+><B+>ATTLIST</B+></TD+><TD CLASS="rdoc"+><P+>attributes:+  name - name of element+</P+><P+>value - name of attribute+</P+><P+>type: &quot;CDATA&quot; | &quot;ID&quot; | &quot;IDREF&quot; | &quot;IDREFS&quot; | &quot;ENTITY&quot; | &quot;ENTITIES&quot; |+</P+><P+>&quot;NMTOKEN&quot; | &quot;NMTOKENS&quot; |&quot;NOTATION&quot; | &quot;ENUMTYPE&quot;+</P+><P+>kind: &quot;<A NAME="REQUIRED%5C%22%20%7C%20%5C%22"+></A+>IMPLIED&quot; | &quot;DEFAULT&quot;+</P+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AENTITY"+></A+><B+>ENTITY</B+></TD+><TD CLASS="rdoc"+>for entity declarations+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3APENTITY"+></A+><B+>PENTITY</B+></TD+><TD CLASS="rdoc"+>for parameter entity declarations+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ANOTATION"+></A+><B+>NOTATION</B+></TD+><TD CLASS="rdoc"+>for notations+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ACONDSECT"+></A+><B+>CONDSECT</B+></TD+><TD CLASS="rdoc"+><P+>for INCLUDEs, IGNOREs and peRefs: attr: type+</P+><P+>type = INCLUDE, IGNORE or %...;+</P+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ANAME"+></A+><B+>NAME</B+></TD+><TD CLASS="rdoc"+><P+>attr: name+</P+><P+>for lists of names in notation types or nmtokens in enumeration types+</P+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3APEREF"+></A+><B+>PEREF</B+></TD+><TD CLASS="rdoc"+>for Parameter Entity References in DTDs+</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:DTDElem')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:DTDElem" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+></TD+></TR+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+></TD+></TR+><TR+><TD CLASS="decl"+>Ord <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+></TD+></TR+><TR+><TD CLASS="decl"+>Read <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+></TD+></TR+><TR+><TD CLASS="decl"+>Typeable <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AAttributes"+></A+><B+>Attributes</B+> = <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> String String</TD+></TR+><TR+><TD CLASS="doc"+><P+>Attribute list+</P+><P+>used for storing option lists and features of DTD parts+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AQName"+></A+><B+>QName</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+><P+>Namespace support for element and attribute names.+</P+><P+>A qualified name consists of a name prefix, a local name+ and a namespace uri.+ All modules, which are not namespace aware, use only the <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AlocalPart"+>localPart</A+></TT+> component.+ When dealing with namespaces, the document tree must be processed by <A HREF="propagateNamespaces.html"+>propagateNamespaces</A+>+ to split names of structure &quot;prefix:localPart&quot; and label the name with the apropriate namespace uri+</P+></TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AQN"+></A+><B+>QN</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="body" COLSPAN="2"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AnamePrefix"+></A+><B+>namePrefix</B+> :: String</TD+><TD CLASS="rdoc"+>the name prefix part of a qualified name &quot;namePrefix:localPart&quot;+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AlocalPart"+></A+><B+>localPart</B+> :: String</TD+><TD CLASS="rdoc"+>the local part of a qualified name &quot;namePrefix:localPart&quot;+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AnamespaceUri"+></A+><B+>namespaceUri</B+> :: String</TD+><TD CLASS="rdoc"+>the associated namespace uri+</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:QName')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:QName" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>DeepSeq</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="decl"+>Ord <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="decl"+>Read <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="decl"+>Typeable <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AqualifiedName"+></A+><B+>qualifiedName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>builds the full name &quot;prefix:localPart&quot;, if prefix is not null, else the local part is the result+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AuniversalName"+></A+><B+>universalName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>builds the &quot;universal&quot; name, that is the namespace uri surrounded with &quot;{&quot; and &quot;}&quot; followed by the local part+ (specialisation of <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AbuildUniversalName"+>buildUniversalName</A+></TT+>)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AuniversalUri"+></A+><B+>universalUri</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>builds an &quot;universal&quot; uri, that is the namespace uri followed by the local part. This is usefull for RDF applications,+ where the subject, predicate and object often are concatenated from namespace uri and local part+ (specialisation of <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AbuildUniversalName"+>buildUniversalName</A+></TT+>)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AbuildUniversalName"+></A+><B+>buildUniversalName</B+> :: (String -&gt; String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>builds a string from the namespace uri and the local part. If the namespace uri is empty, the local part is returned, else+ namespace uri and local part are combined with the combining function given by the first parameter+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkName"+></A+><B+>mkName</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="doc"+>constructs a simple, namespace unaware name, <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnamePrefix"+>namePrefix</A+></TT+> and <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnamespaceUri"+>namespaceUri</A+></TT+> are set to the empty string.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkPrefixLocalPart"+></A+><B+>mkPrefixLocalPart</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>constructs a simple name, with prefix and localPart but without a namespace uri.+</P+><P+>see also <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkName"+>mkName</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkNsName"+>mkNsName</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkSNsName"+>mkSNsName</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkNsName"+></A+><B+>mkNsName</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>constructs a simple, namespace aware name, with prefix:localPart as first parameter, namspace uri as second.+</P+><P+>see also <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkName"+>mkName</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkPrefixLocalPart"+>mkPrefixLocalPart</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkSNsName"+></A+><B+>mkSNsName</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>constructs a simple name, with prefix:localPart as 1 parameter, with empty namspace uri, same as 'mkPrefixLocalPart, but with a single parameter+</P+><P+>see also <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkNsName"+>mkNsName</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkPrefixLocalPart"+>mkPrefixLocalPart</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnullQName"+></A+><B+>nullQName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="doc"+>Empty QName+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AequalQName"+></A+><B+>equalQName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>Equality of QNames: Two QNames are equal, if the local parts are equal+ and the namespace URIs are equal.+ The comparison works with and without namespace propagation.+ If namespaces have been propagated, the name is split into prefix and local part+ and the namespace uri is set. In this case the prefix is not significant for equality test.+ If namespaces have not been propagated, the local part contains the full name, prefix+ and namespace URI are empty. The full name (prefix and local part) is used for comparison.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AequivQName"+></A+><B+>equivQName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>Equivalent QNames are defined as follows: The URIs are normalized before comparison.+ Comparison is done with <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequalQNameBy"+>equalQNameBy</A+></TT+> and <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequivUri"+>equivUri</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AequivUri"+></A+><B+>equivUri</B+> :: String -&gt; String -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>Comparison of normalized namespace URIs using <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnormalizeNsUri"+>normalizeNsUri</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AequalQNameBy"+></A+><B+>equalQNameBy</B+> :: (String -&gt; String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>Sometimes a weaker equality relation than <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequalQName"+>equalQName</A+></TT+> is appropriate, e.g no case significance in names, ...+ a name normalization function can be applied to the strings before comparing. Called by <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequalQName"+>equalQName</A+></TT+> and+ <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequivQName"+>equivQName</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnormalizeNsUri"+></A+><B+>normalizeNsUri</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>Normalization of URIs: Normalization is done by conversion into lowercase letters. A trailing &quot;/&quot; is ignored+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ANsEnv"+></A+><B+>NsEnv</B+> = <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> String String</TD+></TR+><TR+><TD CLASS="doc"+>Type for the namespace association list, used when propagating namespaces by+ modifying the <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TT+> values in a tree+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ac_ok"+></A+><B+>c_ok</B+> :: Int</TD+></TR+><TR+><TD CLASS="doc"+>no error, everything is ok+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ac_warn"+></A+><B+>c_warn</B+> :: Int</TD+></TR+><TR+><TD CLASS="doc"+>Error level for XError, type warning+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ac_err"+></A+><B+>c_err</B+> :: Int</TD+></TR+><TR+><TD CLASS="doc"+>Error level for XError, type error+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ac_fatal"+></A+><B+>c_fatal</B+> :: Int</TD+></TR+><TR+><TD CLASS="doc"+>Error level for XError, type fatal error+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AXmlNodeSet"+></A+><B+>XmlNodeSet</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+><P+>data type for representing a set of nodes as a tree structure+</P+><P+>this structure is e.g. used to repesent the result of an XPath query+ such that the selected nodes can be processed or selected later in+ processing a document tree+</P+></TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AXNS"+></A+><B+>XNS</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="body" COLSPAN="2"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AthisNode"+></A+><B+>thisNode</B+> :: Bool</TD+><TD CLASS="rdoc"+>is this node part of the set ?+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AattrNodes"+></A+><B+>attrNodes</B+> :: [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>]</TD+><TD CLASS="rdoc"+>the set of attribute nodes+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AchildNodes"+></A+><B+>childNodes</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AChildNodes"+>ChildNodes</A+></TD+><TD CLASS="rdoc"+>the set of child nodes, a list of pairs of index and node set +</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XmlNodeSet')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:XmlNodeSet" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="decl"+>Typeable <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AChildNodes"+></A+><B+>ChildNodes</B+> = [(Int, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+>)]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-DOM-Unicode.html view
@@ -0,0 +1,1752 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.Unicode</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/Unicode.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.Unicode</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="section4"+><B+>Contents</B+></TD+></TR+><TR+><TD+><DL+><DT+><A HREF="#1"+>Unicode Type declarations+</A+></DT+><DT+><A HREF="#2"+>Unicode and UTF-8 predicates+</A+></DT+><DT+><A HREF="#3"+>UTF-8 and Unicode conversion functions+</A+></DT+></DL+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>Unicode (UCS-2) and UTF-8 Conversion Funtions+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AUnicode"+>Unicode</A+> = Char</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AUString"+>UString</A+> = [<A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+>]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AUTF8Char"+>UTF8Char</A+> = Char</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AUTF8String"+>UTF8String</A+> = String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisLeadingMultiByteChar"+>isLeadingMultiByteChar</A+> :: Char -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisFollowingMultiByteChar"+>isFollowingMultiByteChar</A+> :: Char -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisMultiByteChar"+>isMultiByteChar</A+> :: Char -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisNByteChar"+>isNByteChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; (Int, Int, Int)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ais1ByteXmlChar"+>is1ByteXmlChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisMultiByteXmlChar"+>isMultiByteXmlChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlChar"+>isXmlChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlLatin1Char"+>isXmlLatin1Char</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlSpaceChar"+>isXmlSpaceChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXml11SpaceChar"+>isXml11SpaceChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlNameChar"+>isXmlNameChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlNameStartChar"+>isXmlNameStartChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlNCNameChar"+>isXmlNCNameChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlNCNameStartChar"+>isXmlNCNameStartChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlPubidChar"+>isXmlPubidChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlLetter"+>isXmlLetter</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlBaseChar"+>isXmlBaseChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlIdeographicChar"+>isXmlIdeographicChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlCombiningChar"+>isXmlCombiningChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlDigit"+>isXmlDigit</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlExtender"+>isXmlExtender</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlControlOrPermanentlyUndefined"+>isXmlControlOrPermanentlyUndefined</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Autf8ToUnicodeChar"+>utf8ToUnicodeChar</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"+>UTF8String</A+> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Autf8ToUnicode"+>utf8ToUnicode</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"+>UTF8String</A+> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Autf8WithByteMarkToUnicode"+>utf8WithByteMarkToUnicode</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"+>UTF8String</A+> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Alatin1ToUnicode"+>latin1ToUnicode</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aucs2ToUnicode"+>ucs2ToUnicode</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aucs2BigEndianToUnicode"+>ucs2BigEndianToUnicode</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aucs2LittleEndianToUnicode"+>ucs2LittleEndianToUnicode</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Autf16beToUnicode"+>utf16beToUnicode</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Autf16leToUnicode"+>utf16leToUnicode</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AunicodeCharToUtf8"+>unicodeCharToUtf8</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"+>UTF8String</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AunicodeToUtf8"+>unicodeToUtf8</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"+>UTF8String</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AunicodeToXmlEntity"+>unicodeToXmlEntity</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AunicodeToLatin1"+>unicodeToLatin1</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AunicodeRemoveNoneAscii"+>unicodeRemoveNoneAscii</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AunicodeRemoveNoneLatin1"+>unicodeRemoveNoneLatin1</A+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AintToCharRef"+>intToCharRef</A+> :: Int -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AintToCharRefHex"+>intToCharRefHex</A+> :: Int -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetEncodingFct"+>getEncodingFct</A+> :: String -&gt; Maybe (<A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; String)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetOutputEncodingFct"+>getOutputEncodingFct</A+> :: String -&gt; Maybe (String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+>)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnormalizeNL"+>normalizeNL</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AguessEncoding"+>guessEncoding</A+> :: String -&gt; String</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+><A NAME="1"+>Unicode Type declarations+</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AUnicode"+></A+><B+>Unicode</B+> = Char</TD+></TR+><TR+><TD CLASS="doc"+>Unicode is represented as the Char type+   Precondition for this is the support of Unicode character range+   in the compiler (e.g. ghc but not hugs)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AUString"+></A+><B+>UString</B+> = [<A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+>]</TD+></TR+><TR+><TD CLASS="doc"+>the type for Unicode strings+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AUTF8Char"+></A+><B+>UTF8Char</B+> = Char</TD+></TR+><TR+><TD CLASS="doc"+>UTF-8 charachters are represented by the Char type+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AUTF8String"+></A+><B+>UTF8String</B+> = String</TD+></TR+><TR+><TD CLASS="doc"+>UTF-8 strings are implemented as Haskell strings+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+><A NAME="2"+>Unicode and UTF-8 predicates+</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisLeadingMultiByteChar"+></A+><B+>isLeadingMultiByteChar</B+> :: Char -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test for leading multibyte UTF-8 character+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisFollowingMultiByteChar"+></A+><B+>isFollowingMultiByteChar</B+> :: Char -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test for following multibyte UTF-8 character+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisMultiByteChar"+></A+><B+>isMultiByteChar</B+> :: Char -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test for following multibyte UTF-8 character+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisNByteChar"+></A+><B+>isNByteChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; (Int, Int, Int)</TD+></TR+><TR+><TD CLASS="doc"+>compute the number of following bytes and the mask bits of a leading UTF-8 multibyte char+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ais1ByteXmlChar"+></A+><B+>is1ByteXmlChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test for a legal 1 byte XML char+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisMultiByteXmlChar"+></A+><B+>isMultiByteXmlChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test for a legal multi byte XML char+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlChar"+></A+><B+>isXmlChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>checking for valid XML characters+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlLatin1Char"+></A+><B+>isXmlLatin1Char</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test for a legal latin1 XML char+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlSpaceChar"+></A+><B+>isXmlSpaceChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>checking for XML space character: \n, \r, \t and &quot; &quot;+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXml11SpaceChar"+></A+><B+>isXml11SpaceChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+><P+>checking for XML1.1 space character: additional space 0x85 and 0x2028+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlSpaceChar"+>isXmlSpaceChar</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlNameChar"+></A+><B+>isXmlNameChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>checking for XML name character+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlNameStartChar"+></A+><B+>isXmlNameStartChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+><P+>checking for XML name start character+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNameChar"+>isXmlNameChar</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlNCNameChar"+></A+><B+>isXmlNCNameChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+><P+>checking for XML NCName character: no &quot;:&quot; allowed+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNameChar"+>isXmlNameChar</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlNCNameStartChar"+></A+><B+>isXmlNCNameStartChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+><P+>checking for XML NCName start character: no &quot;:&quot; allowed+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNameChar"+>isXmlNameChar</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNCNameChar"+>isXmlNCNameChar</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlPubidChar"+></A+><B+>isXmlPubidChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>checking for XML public id character+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlLetter"+></A+><B+>isXmlLetter</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>checking for XML letter+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlBaseChar"+></A+><B+>isXmlBaseChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>checking for XML base charater+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlIdeographicChar"+></A+><B+>isXmlIdeographicChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>checking for XML ideographic charater+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlCombiningChar"+></A+><B+>isXmlCombiningChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>checking for XML combining charater+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlDigit"+></A+><B+>isXmlDigit</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>checking for XML digit+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlExtender"+></A+><B+>isXmlExtender</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>checking for XML extender+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlControlOrPermanentlyUndefined"+></A+><B+>isXmlControlOrPermanentlyUndefined</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+><P+>checking for XML control or permanently discouraged char+</P+><P+>see Errata to XML1.0 (http://www.w3.org/XML/xml-V10-2e-errata) No 46+</P+><P+>Document authors are encouraged to avoid <A HREF="compatibility characters.html"+>compatibility characters</A+>,+ as defined in section 6.8 of [Unicode] (see also D21 in section 3.6 of [Unicode3]).+ The characters defined in the following ranges are also discouraged.+ They are either control characters or permanently undefined Unicode characters:+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+><A NAME="3"+>UTF-8 and Unicode conversion functions+</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Autf8ToUnicodeChar"+></A+><B+>utf8ToUnicodeChar</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"+>UTF8String</A+> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+></TD+></TR+><TR+><TD CLASS="doc"+>conversion of a UTF-8 encoded single Unicode character into the corresponding Unicode value.+ precondition: the character is a valid UTF-8 encoded character+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Autf8ToUnicode"+></A+><B+>utf8ToUnicode</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"+>UTF8String</A+> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="doc"+>conversion of a UTF-8 encoded string into a sequence of unicode values.+ precondition: the string is a valid UTF-8 encoded string+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Autf8WithByteMarkToUnicode"+></A+><B+>utf8WithByteMarkToUnicode</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"+>UTF8String</A+> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="doc"+>UTF-8 to Unicode conversion with deletion of leading byte order mark, as described in XML standard F.1+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Alatin1ToUnicode"+></A+><B+>latin1ToUnicode</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="doc"+>code conversion from latin1 to Unicode+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aucs2ToUnicode"+></A+><B+>ucs2ToUnicode</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="doc"+>UCS-2 to UTF-8 conversion with byte order mark analysis+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aucs2BigEndianToUnicode"+></A+><B+>ucs2BigEndianToUnicode</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="doc"+>UCS-2 big endian to Unicode conversion+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aucs2LittleEndianToUnicode"+></A+><B+>ucs2LittleEndianToUnicode</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="doc"+>UCS-2 little endian to Unicode conversion+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Autf16beToUnicode"+></A+><B+>utf16beToUnicode</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="doc"+>UTF-16 big endian to UTF-8 conversion with removal of byte order mark+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Autf16leToUnicode"+></A+><B+>utf16leToUnicode</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+></TD+></TR+><TR+><TD CLASS="doc"+>UTF-16 little endian to UTF-8 conversion with removal of byte order mark+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AunicodeCharToUtf8"+></A+><B+>unicodeCharToUtf8</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"+>UTF8String</A+></TD+></TR+><TR+><TD CLASS="doc"+>conversion from Unicode (Char) to a UTF8 encoded string.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AunicodeToUtf8"+></A+><B+>unicodeToUtf8</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"+>UTF8String</A+></TD+></TR+><TR+><TD CLASS="doc"+>conversion from Unicode strings (UString) to UTF8 encoded strings.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AunicodeToXmlEntity"+></A+><B+>unicodeToXmlEntity</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>substitute all Unicode characters, that are not legal 1-byte+ UTF-8 XML characters by a character reference.+</P+><P+>This function can be used to translate all text nodes and+ attribute values into pure ascii.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToLatin1"+>unicodeToLatin1</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AunicodeToLatin1"+></A+><B+>unicodeToLatin1</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>substitute all Unicode characters, that are not legal latin1+ UTF-8 XML characters by a character reference.+</P+><P+>This function can be used to translate all text nodes and+ attribute values into ISO latin1.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToXmlEntity"+>unicodeToXmlEntity</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AunicodeRemoveNoneAscii"+></A+><B+>unicodeRemoveNoneAscii</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>removes all non ascii chars, may be used to transform+ a document into a pure ascii representation by removing+ all non ascii chars from tag and attibute names+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeRemoveNoneLatin1"+>unicodeRemoveNoneLatin1</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToXmlEntity"+>unicodeToXmlEntity</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AunicodeRemoveNoneLatin1"+></A+><B+>unicodeRemoveNoneLatin1</B+> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>removes all non latin1 chars, may be used to transform+ a document into a pure ascii representation by removing+ all non ascii chars from tag and attibute names+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeRemoveNoneAscii"+>unicodeRemoveNoneAscii</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToLatin1"+>unicodeToLatin1</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AintToCharRef"+></A+><B+>intToCharRef</B+> :: Int -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>convert an Unicode into a XML character reference.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AintToCharRefHex"+>intToCharRefHex</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AintToCharRefHex"+></A+><B+>intToCharRefHex</B+> :: Int -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>convert an Unicode into a XML hexadecimal character reference.+</P+><P+>see also: <TT+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AintToCharRef"+>intToCharRef</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetEncodingFct"+></A+><B+>getEncodingFct</B+> :: String -&gt; Maybe (<A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+> -&gt; String)</TD+></TR+><TR+><TD CLASS="doc"+>the lookup function for selecting the encoding function+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetOutputEncodingFct"+></A+><B+>getOutputEncodingFct</B+> :: String -&gt; Maybe (String -&gt; <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>UString</A+>)</TD+></TR+><TR+><TD CLASS="doc"+>the lookup function for selecting the encoding function+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnormalizeNL"+></A+><B+>normalizeNL</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>White Space (XML Standard 2.3) and + end of line handling (2.11)+</P+><P+>#x0D and #x0D#x0A are mapped to #x0A+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AguessEncoding"+></A+><B+>guessEncoding</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-DOM-Util.html view
@@ -0,0 +1,633 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.Util</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/Util.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.Util</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>utility functions+</P+><P+>Version : $Id: Util.hs,v 1.3 2006<EM+>05</EM+>01 18:56:24 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AstringTrim"+>stringTrim</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AstringToUpper"+>stringToUpper</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnormalizeNumber"+>normalizeNumber</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnormalizeWhitespace"+>normalizeWhitespace</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AescapeURI"+>escapeURI</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtextEscapeXml"+>textEscapeXml</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AstringEscapeXml"+>stringEscapeXml</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AattrEscapeXml"+>attrEscapeXml</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AstringToInt"+>stringToInt</A+> :: Int -&gt; String -&gt; Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AstringToHexString"+>stringToHexString</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcharToHexString"+>charToHexString</A+> :: Char -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AintToHexString"+>intToHexString</A+> :: Int -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhexStringToInt"+>hexStringToInt</A+> :: String -&gt; Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AdecimalStringToInt"+>decimalStringToInt</A+> :: String -&gt; Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Adoubles"+>doubles</A+> :: Eq a =&gt; [a] -&gt; [a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Asingles"+>singles</A+> :: Eq a =&gt; [a] -&gt; [a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnoDoubles"+>noDoubles</A+> :: Eq a =&gt; [a] -&gt; [a]</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AstringTrim"+></A+><B+>stringTrim</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>remove leading and trailing whitespace with standard Haskell predicate isSpace+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AstringToUpper"+></A+><B+>stringToUpper</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>convert string to upercase with standard Haskell toUpper function+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnormalizeNumber"+></A+><B+>normalizeNumber</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>Removes leading / trailing whitespaces and leading zeros+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnormalizeWhitespace"+></A+><B+>normalizeWhitespace</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>Reduce whitespace sequences to a single whitespace+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AescapeURI"+></A+><B+>escapeURI</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>Escape all disallowed characters in URI + references (see <A HREF="http://www.w3.org/TR/xlink/#link-locators"+>http://www.w3.org/TR/xlink/#link-locators</A+>)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtextEscapeXml"+></A+><B+>textEscapeXml</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>escape XML chars &amp;lt;  and ampercent by transforming them into character references, used for escaping text nodes+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AattrEscapeXml"+>attrEscapeXml</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AstringEscapeXml"+></A+><B+>stringEscapeXml</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>escape XML chars &amp;lt;, &amp;gt;, &amp;quot;,  and ampercent by transforming them into character references+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AattrEscapeXml"+>attrEscapeXml</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AattrEscapeXml"+></A+><B+>attrEscapeXml</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>escape XML chars in attribute values, same as stringEscapeXml, but none blank whitespace+ is also escaped+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringEscapeXml"+>stringEscapeXml</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AstringToInt"+></A+><B+>stringToInt</B+> :: Int -&gt; String -&gt; Int</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AstringToHexString"+></A+><B+>stringToHexString</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>convert a string into a hexadecimal string applying charToHexString+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AcharToHexString"+>charToHexString</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcharToHexString"+></A+><B+>charToHexString</B+> :: Char -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>convert a char (byte) into a 2-digit hexadecimal string+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringToHexString"+>stringToHexString</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AintToHexString"+>intToHexString</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AintToHexString"+></A+><B+>intToHexString</B+> :: Int -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>convert a none negative Int into a hexadecimal string+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AcharToHexString"+>charToHexString</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhexStringToInt"+></A+><B+>hexStringToInt</B+> :: String -&gt; Int</TD+></TR+><TR+><TD CLASS="doc"+>convert a string of hexadecimal digits into an Int+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdecimalStringToInt"+></A+><B+>decimalStringToInt</B+> :: String -&gt; Int</TD+></TR+><TR+><TD CLASS="doc"+>convert a string of digits into an Int+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Adoubles"+></A+><B+>doubles</B+> :: Eq a =&gt; [a] -&gt; [a]</TD+></TR+><TR+><TD CLASS="doc"+>take all elements of a list which occur more than once. The result does not contain doubles.+ (doubles . doubles == doubles)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Asingles"+></A+><B+>singles</B+> :: Eq a =&gt; [a] -&gt; [a]</TD+></TR+><TR+><TD CLASS="doc"+>drop all elements from a list which occur more than once.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnoDoubles"+></A+><B+>noDoubles</B+> :: Eq a =&gt; [a] -&gt; [a]</TD+></TR+><TR+><TD CLASS="doc"+>remove duplicates from list+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-DOM-XmlKeywords.html view
@@ -0,0 +1,2926 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.XmlKeywords</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlKeywords.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.XmlKeywords</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: XmlKeywords.hs,v 1.10 2006<EM+>11</EM+>02 09:34:09 hxml Exp $+</P+><P+>Constants for XML keywords, for special attribute names+   and special attribute values+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3At_xml"+>t_xml</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3At_root"+>t_root</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_canonicalize"+>a_canonicalize</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_default"+>a_default</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_check_namespaces"+>a_check_namespaces</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_contentLength"+>a_contentLength</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_collect_errors"+>a_collect_errors</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_column"+>a_column</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_default_baseuri"+>a_default_baseuri</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_canonicalize"+>a_do_not_canonicalize</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_check_namespaces"+>a_do_not_check_namespaces</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_issue_errors"+>a_do_not_issue_errors</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_issue_warnings"+>a_do_not_issue_warnings</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_preserve_comment"+>a_do_not_preserve_comment</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_remove_whitespace"+>a_do_not_remove_whitespace</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_use_curl"+>a_do_not_use_curl</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_validate"+>a_do_not_validate</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_encoding"+>a_encoding</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_error"+>a_error</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_error_log"+>a_error_log</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_help"+>a_help</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_indent"+>a_indent</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_issue_errors"+>a_issue_errors</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_issue_warnings"+>a_issue_warnings</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_kind"+>a_kind</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_line"+>a_line</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_module"+>a_module</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_modifier"+>a_modifier</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_name"+>a_name</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_no_xml_pi"+>a_no_xml_pi</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_options_curl"+>a_options_curl</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_output_encoding"+>a_output_encoding</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_output_file"+>a_output_file</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_output_xml"+>a_output_xml</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_output_html"+>a_output_html</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_parse_html"+>a_parse_html</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_parse_xml"+>a_parse_xml</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_peref"+>a_peref</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_preserve_comment"+>a_preserve_comment</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_propagate_errors"+>a_propagate_errors</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_proxy"+>a_proxy</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_remove_whitespace"+>a_remove_whitespace</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_show_haskell"+>a_show_haskell</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_show_tree"+>a_show_tree</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_source"+>a_source</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_status"+>a_status</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_standalone"+>a_standalone</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_trace"+>a_trace</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_type"+>a_type</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_use_curl"+>a_use_curl</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_url"+>a_url</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_validate"+>a_validate</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_value"+>a_value</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_verbose"+>a_verbose</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_version"+>a_version</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_xml"+>a_xml</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_xmlns"+>a_xmlns</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_0"+>v_0</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_1"+>v_1</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_yes"+>v_yes</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_no"+>v_no</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_any"+>v_any</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_children"+>v_children</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_choice"+>v_choice</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_empty"+>v_empty</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_mixed"+>v_mixed</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_seq"+>v_seq</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_null"+>v_null</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_option"+>v_option</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_pcdata"+>v_pcdata</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_star"+>v_star</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Av_plus"+>v_plus</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_any"+>k_any</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_cdata"+>k_cdata</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_empty"+>k_empty</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_enitity"+>k_enitity</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_entities"+>k_entities</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_id"+>k_id</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_idref"+>k_idref</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_idrefs"+>k_idrefs</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_include"+>k_include</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_ignore"+>k_ignore</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_nmtoken"+>k_nmtoken</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_nmtokens"+>k_nmtokens</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_peref"+>k_peref</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_public"+>k_public</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_system"+>k_system</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_enumeration"+>k_enumeration</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_fixed"+>k_fixed</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_implied"+>k_implied</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_ndata"+>k_ndata</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_notation"+>k_notation</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_pcdata"+>k_pcdata</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_required"+>k_required</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ak_default"+>k_default</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransferPrefix"+>transferPrefix</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransferProtocol"+>transferProtocol</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransferMimeType"+>transferMimeType</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransferEncoding"+>transferEncoding</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransferURI"+>transferURI</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransferDefaultURI"+>transferDefaultURI</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransferStatus"+>transferStatus</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransferMessage"+>transferMessage</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtransferVersion"+>transferVersion</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhttpPrefix"+>httpPrefix</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AstringProtocol"+>stringProtocol</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisoLatin1"+>isoLatin1</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AusAscii"+>usAscii</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aucs2"+>ucs2</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Autf8"+>utf8</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Autf16"+>utf16</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Autf16be"+>utf16be</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Autf16le"+>utf16le</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AunicodeString"+>unicodeString</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlNamespace"+>xmlNamespace</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlnsNamespace"+>xmlnsNamespace</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ArelaxNamespace"+>relaxNamespace</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_relax_schema"+>a_relax_schema</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_check_restrictions"+>a_do_not_check_restrictions</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_check_restrictions"+>a_check_restrictions</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_validate_externalRef"+>a_do_not_validate_externalRef</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_validate_externalRef"+>a_validate_externalRef</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_validate_include"+>a_do_not_validate_include</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_validate_include"+>a_validate_include</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_output_changes"+>a_output_changes</A+> :: String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aa_do_not_collect_errors"+>a_do_not_collect_errors</A+> :: String</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3At_xml"+></A+><B+>t_xml</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3At_root"+></A+><B+>t_root</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_canonicalize"+></A+><B+>a_canonicalize</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_default"+></A+><B+>a_default</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_check_namespaces"+></A+><B+>a_check_namespaces</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_contentLength"+></A+><B+>a_contentLength</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_collect_errors"+></A+><B+>a_collect_errors</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_column"+></A+><B+>a_column</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_default_baseuri"+></A+><B+>a_default_baseuri</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_canonicalize"+></A+><B+>a_do_not_canonicalize</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_check_namespaces"+></A+><B+>a_do_not_check_namespaces</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_issue_errors"+></A+><B+>a_do_not_issue_errors</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_issue_warnings"+></A+><B+>a_do_not_issue_warnings</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_preserve_comment"+></A+><B+>a_do_not_preserve_comment</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_remove_whitespace"+></A+><B+>a_do_not_remove_whitespace</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_use_curl"+></A+><B+>a_do_not_use_curl</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_validate"+></A+><B+>a_do_not_validate</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_encoding"+></A+><B+>a_encoding</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_error"+></A+><B+>a_error</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_error_log"+></A+><B+>a_error_log</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_help"+></A+><B+>a_help</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_indent"+></A+><B+>a_indent</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_issue_errors"+></A+><B+>a_issue_errors</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_issue_warnings"+></A+><B+>a_issue_warnings</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_kind"+></A+><B+>a_kind</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_line"+></A+><B+>a_line</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_module"+></A+><B+>a_module</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_modifier"+></A+><B+>a_modifier</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_name"+></A+><B+>a_name</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_no_xml_pi"+></A+><B+>a_no_xml_pi</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_options_curl"+></A+><B+>a_options_curl</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_output_encoding"+></A+><B+>a_output_encoding</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_output_file"+></A+><B+>a_output_file</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_output_xml"+></A+><B+>a_output_xml</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_output_html"+></A+><B+>a_output_html</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_parse_html"+></A+><B+>a_parse_html</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_parse_xml"+></A+><B+>a_parse_xml</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_peref"+></A+><B+>a_peref</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_preserve_comment"+></A+><B+>a_preserve_comment</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_propagate_errors"+></A+><B+>a_propagate_errors</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_proxy"+></A+><B+>a_proxy</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_remove_whitespace"+></A+><B+>a_remove_whitespace</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_show_haskell"+></A+><B+>a_show_haskell</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_show_tree"+></A+><B+>a_show_tree</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_source"+></A+><B+>a_source</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_status"+></A+><B+>a_status</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_standalone"+></A+><B+>a_standalone</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_trace"+></A+><B+>a_trace</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_type"+></A+><B+>a_type</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_use_curl"+></A+><B+>a_use_curl</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_url"+></A+><B+>a_url</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_validate"+></A+><B+>a_validate</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_value"+></A+><B+>a_value</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_verbose"+></A+><B+>a_verbose</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_version"+></A+><B+>a_version</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_xml"+></A+><B+>a_xml</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_xmlns"+></A+><B+>a_xmlns</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_0"+></A+><B+>v_0</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_1"+></A+><B+>v_1</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_yes"+></A+><B+>v_yes</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_no"+></A+><B+>v_no</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_any"+></A+><B+>v_any</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_children"+></A+><B+>v_children</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_choice"+></A+><B+>v_choice</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_empty"+></A+><B+>v_empty</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_mixed"+></A+><B+>v_mixed</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_seq"+></A+><B+>v_seq</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_null"+></A+><B+>v_null</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_option"+></A+><B+>v_option</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_pcdata"+></A+><B+>v_pcdata</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_star"+></A+><B+>v_star</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Av_plus"+></A+><B+>v_plus</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_any"+></A+><B+>k_any</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_cdata"+></A+><B+>k_cdata</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_empty"+></A+><B+>k_empty</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_enitity"+></A+><B+>k_enitity</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_entities"+></A+><B+>k_entities</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_id"+></A+><B+>k_id</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_idref"+></A+><B+>k_idref</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_idrefs"+></A+><B+>k_idrefs</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_include"+></A+><B+>k_include</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_ignore"+></A+><B+>k_ignore</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_nmtoken"+></A+><B+>k_nmtoken</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_nmtokens"+></A+><B+>k_nmtokens</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_peref"+></A+><B+>k_peref</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_public"+></A+><B+>k_public</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_system"+></A+><B+>k_system</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_enumeration"+></A+><B+>k_enumeration</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_fixed"+></A+><B+>k_fixed</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_implied"+></A+><B+>k_implied</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_ndata"+></A+><B+>k_ndata</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_notation"+></A+><B+>k_notation</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_pcdata"+></A+><B+>k_pcdata</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_required"+></A+><B+>k_required</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ak_default"+></A+><B+>k_default</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransferPrefix"+></A+><B+>transferPrefix</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransferProtocol"+></A+><B+>transferProtocol</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransferMimeType"+></A+><B+>transferMimeType</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransferEncoding"+></A+><B+>transferEncoding</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransferURI"+></A+><B+>transferURI</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransferDefaultURI"+></A+><B+>transferDefaultURI</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransferStatus"+></A+><B+>transferStatus</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransferMessage"+></A+><B+>transferMessage</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtransferVersion"+></A+><B+>transferVersion</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhttpPrefix"+></A+><B+>httpPrefix</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AstringProtocol"+></A+><B+>stringProtocol</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisoLatin1"+></A+><B+>isoLatin1</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AusAscii"+></A+><B+>usAscii</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aucs2"+></A+><B+>ucs2</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Autf8"+></A+><B+>utf8</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Autf16"+></A+><B+>utf16</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Autf16be"+></A+><B+>utf16be</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Autf16le"+></A+><B+>utf16le</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AunicodeString"+></A+><B+>unicodeString</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlNamespace"+></A+><B+>xmlNamespace</B+> :: String</TD+></TR+><TR+><TD CLASS="doc"+>the predefined namespace uri for xml: &quot;http://www.w3.org/XML/1998/namespaces&quot;+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlnsNamespace"+></A+><B+>xmlnsNamespace</B+> :: String</TD+></TR+><TR+><TD CLASS="doc"+>the predefined namespace uri for xmlns: &quot;http://www.w3.org/2000/xmlns/&quot;+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArelaxNamespace"+></A+><B+>relaxNamespace</B+> :: String</TD+></TR+><TR+><TD CLASS="doc"+>Relax NG namespace+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_relax_schema"+></A+><B+>a_relax_schema</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_check_restrictions"+></A+><B+>a_do_not_check_restrictions</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_check_restrictions"+></A+><B+>a_check_restrictions</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_validate_externalRef"+></A+><B+>a_do_not_validate_externalRef</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_validate_externalRef"+></A+><B+>a_validate_externalRef</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_validate_include"+></A+><B+>a_do_not_validate_include</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_validate_include"+></A+><B+>a_validate_include</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_output_changes"+></A+><B+>a_output_changes</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_do_not_collect_errors"+></A+><B+>a_do_not_collect_errors</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-DOM-XmlOptions.html view
@@ -0,0 +1,508 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.XmlOptions</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlOptions.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.XmlOptions</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Common useful options+</P+><P+>Version : $Id: XmlOptions.hs,v 1.1 2006<EM+>11</EM+>09 20:27:42 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AinputOptions"+>inputOptions</A+> :: [OptDescr (String, String)]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ArelaxOptions"+>relaxOptions</A+> :: [OptDescr (String, String)]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AoutputOptions"+>outputOptions</A+> :: [OptDescr (String, String)]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgeneralOptions"+>generalOptions</A+> :: [OptDescr (String, String)]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AversionOptions"+>versionOptions</A+> :: [OptDescr (String, String)]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowOptions"+>showOptions</A+> :: [OptDescr (String, String)]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AselectOptions"+>selectOptions</A+> :: [String] -&gt; [OptDescr (String, String)] -&gt; [OptDescr (String, String)]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AremoveOptions"+>removeOptions</A+> :: [String] -&gt; [OptDescr (String, String)] -&gt; [OptDescr (String, String)]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AoptionIsSet"+>optionIsSet</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; Bool</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AinputOptions"+></A+><B+>inputOptions</B+> :: [OptDescr (String, String)]</TD+></TR+><TR+><TD CLASS="doc"+><P+>commonly useful options for XML input+</P+><P+>can be used for option definition with haskell getopt+</P+><P+>defines options: <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_trace"+>a_trace</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_proxy"+>a_proxy</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_use_curl"+>a_use_curl</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_use_curl"+>a_do_not_use_curl</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_options_curl"+>a_options_curl</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_encoding"+>a_encoding</A+></TT+>,+ <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_errors"+>a_issue_errors</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_issue_errors"+>a_do_not_issue_errors</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_html"+>a_parse_html</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_warnings"+>a_issue_warnings</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_issue_warnings"+>a_do_not_issue_warnings</A+></TT+>,+ <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_xml"+>a_parse_xml</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate"+>a_validate</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_validate"+>a_do_not_validate</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_canonicalize"+>a_canonicalize</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_canonicalize"+>a_do_not_canonicalize</A+></TT+>,+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArelaxOptions"+></A+><B+>relaxOptions</B+> :: [OptDescr (String, String)]</TD+></TR+><TR+><TD CLASS="doc"+><P+>available Relax NG validation options+</P+><P+>defines options+ <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_check_restrictions"+>a_check_restrictions</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate_externalRef"+>a_validate_externalRef</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate_include"+>a_validate_include</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_check_restrictions"+>a_do_not_check_restrictions</A+></TT+>,  + <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_validate_externalRef"+>a_do_not_validate_externalRef</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_validate_include"+>a_do_not_validate_include</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AoutputOptions"+></A+><B+>outputOptions</B+> :: [OptDescr (String, String)]</TD+></TR+><TR+><TD CLASS="doc"+><P+>commonly useful options for XML output+</P+><P+>defines options: <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_indent"+>a_indent</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_encoding"+>a_output_encoding</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_file"+>a_output_file</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_html"+>a_output_html</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgeneralOptions"+></A+><B+>generalOptions</B+> :: [OptDescr (String, String)]</TD+></TR+><TR+><TD CLASS="doc"+><P+>commonly useful options+</P+><P+>defines options: <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_verbose"+>a_verbose</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_help"+>a_help</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AversionOptions"+></A+><B+>versionOptions</B+> :: [OptDescr (String, String)]</TD+></TR+><TR+><TD CLASS="doc"+>defines <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_version"+>a_version</A+></TT+> option+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowOptions"+></A+><B+>showOptions</B+> :: [OptDescr (String, String)]</TD+></TR+><TR+><TD CLASS="doc"+>debug output options+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AselectOptions"+></A+><B+>selectOptions</B+> :: [String] -&gt; [OptDescr (String, String)] -&gt; [OptDescr (String, String)]</TD+></TR+><TR+><TD CLASS="doc"+>select options from a predefined list of option desciptions+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveOptions"+></A+><B+>removeOptions</B+> :: [String] -&gt; [OptDescr (String, String)] -&gt; [OptDescr (String, String)]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AoptionIsSet"+></A+><B+>optionIsSet</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+><P+>check whether an option is set+</P+><P+>reads the value of an attribute, usually applied to a document root node,+ and checks if the value represents True. The following strings are interpreted+ as true: &quot;1&quot;, &quot;True&quot;, &quot;true&quot;, &quot;yes&quot;, &quot;Yes&quot;.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-DOM-XmlState.html view
@@ -0,0 +1,2479 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.XmlState</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlState.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.XmlState</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>This module provides a Monad for an internal state and IO commands.+ The state consists of two parts, the user state and the system state+ user state ist a type parameter, the system state is a list+ name-value pair. If the user state is not needed, the type parameter+ can be instantiated with <TT+>()</TT+>.+</P+><P+>Furthermore there are types for Xml filter working on this monad+ and functions for manipulating the state components+ and for lifting i/o commands and XmlFilter to monad filters.+</P+><P+>Error reporting functions are also located in this module.+</P+><P+>Version : $Id: XmlState.hs,v 1.3 2005<EM+>05</EM+>27 13:15:23 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3ASysState"+>SysState</A+>  = <A HREF="#v%3ASysState"+>SysState</A+> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="recfield"+><A HREF="#v%3AsysStateAttrs"+>sysStateAttrs</A+> :: !<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysStateAttrs"+>SysStateAttrs</A+></TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3AsysStateErrorHandler"+>sysStateErrorHandler</A+> :: !(<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> ())</TD+></TR+></TABLE+>}</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ASysStateAttrs"+>SysStateAttrs</A+> = <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AXmlState"+>XmlState</A+> state = <A HREF="#v%3AXmlState"+>XmlState</A+> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="recfield"+><A HREF="#v%3AsysState"+>sysState</A+> :: !<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+></TD+></TR+><TR+><TD CLASS="recfield"+><A HREF="#v%3AuserState"+>userState</A+> :: !state</TD+></TR+></TABLE+>}</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AXState"+>XState</A+> state res = <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> (<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlState"+>XmlState</A+> state) res</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AXmlStateFilter"+>XmlStateFilter</A+> state = <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeState"+>changeState</A+> :: (state -&gt; state) -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetState"+>setState</A+> :: state -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetState"+>getState</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeSysState"+>changeSysState</A+> :: (<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+>) -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetSysState"+>setSysState</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetSysState"+>getSysState</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AinitialSysState"+>initialSysState</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AchangeSysStateAttrs"+>changeSysStateAttrs</A+> :: (<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysStateAttrs"+>SysStateAttrs</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysStateAttrs"+>SysStateAttrs</A+>) -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetSysErrorHandler"+>setSysErrorHandler</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> () -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetSysErrorHandler"+>getSysErrorHandler</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state (<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> ())</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetSysParamTree"+>setSysParamTree</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetSysParam"+>setSysParam</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetSysParamInt"+>setSysParamInt</A+> :: String -&gt; Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetSystemParams"+>setSystemParams</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetSysParamTree"+>getSysParamTree</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetSysParam"+>getSysParam</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetSysParamWithDefault"+>getSysParamWithDefault</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetSysParamInt"+>getSysParamInt</A+> :: String -&gt; Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Arun0"+>run0</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlState"+>XmlState</A+> state -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state res -&gt; IO (res, <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlState"+>XmlState</A+> state)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Arun"+>run</A+> :: state -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state res -&gt; IO res</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Arun%27"+>run'</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> () res -&gt; IO res</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Achain%27"+>chain'</A+> :: state1 -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state1 res -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state0 (res, state1)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Achain"+>chain</A+> :: state1 -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state1 res -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state0 res</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AliftF"+>liftF</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aio"+>io</A+> :: IO a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetTraceLevel"+>setTraceLevel</A+> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetTraceLevel"+>getTraceLevel</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtraceCmd"+>traceCmd</A+> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Atrace"+>trace</A+> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtraceState"+>traceState</A+> :: Int -&gt; (state -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AclearStatus"+>clearStatus</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AissueError"+>issueError</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AerrorMsgHandler"+>errorMsgHandler</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetErrorMsgLevel"+>setErrorMsgLevel</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AerrorMsgToStderr"+>errorMsgToStderr</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AerrorMsgLogging"+>errorMsgLogging</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AerrorMsgLoggingAndToStderr"+>errorMsgLoggingAndToStderr</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetErrorMsg"+>getErrorMsg</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AerrClass"+>errClass</A+> :: Int -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AissueWarn"+>issueWarn</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AissueErr"+>issueErr</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AissueFatal"+>issueFatal</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddFatal"+>addFatal</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcheckStatus"+>checkStatus</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetStatus"+>setStatus</A+> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AstatusOk"+>statusOk</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcheckResult"+>checkResult</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessAttrM"+>processAttrM</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3ASysState"+></A+><B+>SysState</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>The internal system state consists of a list of name-value pairs+ of type <TT+>(String, XmlTrees)</TT+>, so arbitrary lists of trees can be stored.+ For options, often only strings are used as values, so a set of access+ functions with string values is available+ The error handling method can be controlled by an error handler filter,+ the default filter issues the errors on stderr+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ASysState"+></A+><B+>SysState</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="body" COLSPAN="2"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AsysStateAttrs"+></A+><B+>sysStateAttrs</B+> :: !<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysStateAttrs"+>SysStateAttrs</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AsysStateErrorHandler"+></A+><B+>sysStateErrorHandler</B+> :: !(<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> ())</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ASysStateAttrs"+></A+><B+>SysStateAttrs</B+> = <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AXmlState"+></A+><B+>XmlState</B+> state</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>The State has a system and a user part+ the user state is a type parameter+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AXmlState"+></A+><B+>XmlState</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="body" COLSPAN="2"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AsysState"+></A+><B+>sysState</B+> :: !<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AuserState"+></A+><B+>userState</B+> :: !state</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AXState"+></A+><B+>XState</B+> state res = <A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>StateIO</A+> (<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlState"+>XmlState</A+> state) res</TD+></TR+><TR+><TD CLASS="doc"+>The monad type for commands. It is an instance of <A HREF="StateIO.html"+>StateIO</A+> from the+ general module <A HREF="Control-Monad-MonadStateIO.html"+>Control.Monad.MonadStateIO</A+>.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AXmlStateFilter"+></A+><B+>XmlStateFilter</B+> state = <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="doc"+>The <A HREF="XmlFilter.html"+>XmlFilter</A+> type for filters working on a state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeState"+></A+><B+>changeState</B+> :: (state -&gt; state) -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state state</TD+></TR+><TR+><TD CLASS="doc"+><P+>change the user state+</P+><UL+><LI+> 1.parameter fct :  the user state change function+</LI+><LI+> returns : the new state+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetState"+></A+><B+>setState</B+> :: state -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state state</TD+></TR+><TR+><TD CLASS="doc"+><P+>set the user state.+</P+><UL+><LI+> 1.parameter s :  the new state+</LI+><LI+> returns : the new state+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetState"+></A+><B+>getState</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state state</TD+></TR+><TR+><TD CLASS="doc"+><P+>read the user state+</P+><UL+><LI+> returns : the current state+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeSysState"+></A+><B+>changeSysState</B+> :: (<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+>) -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>change the system part of the state.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AchangeState"+>changeState</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetSysState"+></A+><B+>setSysState</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>set the system part of the state.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetState"+>setState</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetSysState"+></A+><B+>getSysState</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>read the system part of the state.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetState"+>getState</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AinitialSysState"+></A+><B+>initialSysState</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>the initial system state+</P+><P+>an empty list of attribute value pairs+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchangeSysStateAttrs"+></A+><B+>changeSysStateAttrs</B+> :: (<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysStateAttrs"+>SysStateAttrs</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysStateAttrs"+>SysStateAttrs</A+>) -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>SysState</A+></TD+></TR+><TR+><TD CLASS="doc"+>change the attributes in the system state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetSysErrorHandler"+></A+><B+>setSysErrorHandler</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> () -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="doc"+>set the error message handler+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetSysErrorHandler"+></A+><B+>getSysErrorHandler</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state (<A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> ())</TD+></TR+><TR+><TD CLASS="doc"+>get the error handler+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetSysParamTree"+></A+><B+>setSysParamTree</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="doc"+><P+>set or change a single system parameter.+</P+><UL+><LI+> 1.parameter name :  the name of the parameter+</LI+><LI+> 2.parameter value :  the list of associated trees+</LI+><LI+> returns : nothing+</LI+></UL+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSysParam"+>setSysParam</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSysParamInt"+>setSysParamInt</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetSysParam"+></A+><B+>setSysParam</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="doc"+><P+>set or change a single system parameter of type string.+</P+><UL+><LI+> 1.parameter name :  the name of the parameter+</LI+><LI+> 2.parameter value :  the (new) string value+</LI+><LI+> returns : nothing+</LI+></UL+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSysParamTree"+>setSysParamTree</A+></TT+>, setSysParamInt+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetSysParamInt"+></A+><B+>setSysParamInt</B+> :: String -&gt; Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="doc"+><P+>set or change a single integer type system parameter+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSysParam"+>setSysParam</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetSystemParams"+></A+><B+>setSystemParams</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+>add (or change) all attributes of the document root to the system state+     - returns : this+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetSysParamTree"+></A+><B+>getSysParamTree</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>read a system parameter+</P+><UL+><LI+> 1.parameter name :  the name of the parameter+</LI+><LI+> returns : the list of tres associated with the key, or the empty list for unknown parameters+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetSysParam"+></A+><B+>getSysParam</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state String</TD+></TR+><TR+><TD CLASS="doc"+><P+>read a system string parameter+</P+><UL+><LI+> 1.parameter name :  the name of the parameter+</LI+><LI+> returns : the value, or the empty string for unknown parameters+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetSysParamWithDefault"+></A+><B+>getSysParamWithDefault</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state String</TD+></TR+><TR+><TD CLASS="doc"+><P+>read a system parameter or return a default value+</P+><UL+><LI+> 1.parameter name :  the name of the parameter+</LI+><LI+> 2.parameter default :  the default value+</LI+><LI+> returns : the value if found, else the default+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetSysParamInt"+></A+><B+>getSysParamInt</B+> :: String -&gt; Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state Int</TD+></TR+><TR+><TD CLASS="doc"+><P+>read an integer system parameter+</P+><UL+><LI+> 1.parameter name : +</LI+><LI+> 2.parameter default : +</LI+></UL+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetSysParamWithDefault"+>getSysParamWithDefault</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Arun0"+></A+><B+>run0</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlState"+>XmlState</A+> state -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state res -&gt; IO (res, <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlState"+>XmlState</A+> state)</TD+></TR+><TR+><TD CLASS="doc"+><P+>exec a XState command with initial state.+</P+><UL+><LI+> 1.parameter initalState :  the inital user state+</LI+><LI+> 2.parameter cmd :  the command+</LI+><LI+> returns : the i/o command with result and user state+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Arun"+></A+><B+>run</B+> :: state -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state res -&gt; IO res</TD+></TR+><TR+><TD CLASS="doc"+>exec a XState command with initial user state.+ ignore final user state.+ like run0, but ignore the resulting user state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Arun%27"+></A+><B+>run'</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> () res -&gt; IO res</TD+></TR+><TR+><TD CLASS="doc"+>exec a XState command in th IO monad.+ like run with the empty state ().+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Achain%27"+></A+><B+>chain'</B+> :: state1 -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state1 res -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state0 (res, state1)</TD+></TR+><TR+><TD CLASS="doc"+><P+>run a command in a new user state.+ chain the system state part,+ init new system state with the current one, run the command and+ update the old system state with the resulting new system state+</P+><UL+><LI+> 1.parameter initialUserState :  the initial user state+</LI+><LI+> 2.parameter cmd :  the command+</LI+><LI+> returns : the result of executing cmd and the final state+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Achain"+></A+><B+>chain</B+> :: state1 -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state1 res -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state0 res</TD+></TR+><TR+><TD CLASS="doc"+><P+>like chain' but forget the final user state+</P+><UL+><LI+> 1.parameter initialUserState :  the initial user state+</LI+><LI+> 2.parameter cmd :  the command+</LI+><LI+> returns : only the result of executing cmd+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AliftF"+></A+><B+>liftF</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+><P+>lift a XmlFilter to a XmlStateFilter filter+ issue all error nodes as error messages+ and remove the error nodes from the result+</P+><UL+><LI+> 1.parameter f :  the filter+</LI+><LI+> returns : the filter running in the state monad+</LI+></UL+><P+>all errors are filtered from the result and issued on stderr+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aio"+></A+><B+>io</B+> :: IO a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state a</TD+></TR+><TR+><TD CLASS="doc"+><P+>lift an I/O command+</P+><UL+><LI+> 1.parameter cmd :  the i/o command+</LI+><LI+> returns : the i/o command lifted to the XML state monad+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetTraceLevel"+></A+><B+>setTraceLevel</B+> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="doc"+><P+>set the trace level.+</P+><P+>convention:+</P+><P+>0: no trace output (default)+</P+><P+>1: trace important computation steps, e.g. accessing a document+</P+><P+>2: trace small computation steps+</P+><P+>3: output an intermediate result XmlTree in XML source format+</P+><P+>4: output an intermediate result XmlTree in tree representation+</P+><UL+><LI+> 1.parameter level :  the trace level+</LI+><LI+> returns : nothing+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetTraceLevel"+></A+><B+>getTraceLevel</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state Int</TD+></TR+><TR+><TD CLASS="doc"+><P+>get the current trace level.+</P+><UL+><LI+> returns : the current trace level+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtraceCmd"+></A+><B+>traceCmd</B+> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="doc"+><P+>trace output for arbitray commands.+</P+><UL+><LI+> 1.parameter level :  the trace level,+			  for which the command will be execuded+			  if level &lt;= current trace level+</LI+><LI+> 2.parameter cmd :  the command to be executed+</LI+><LI+> returns : nothing+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Atrace"+></A+><B+>trace</B+> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="doc"+><P+>trace output function for simple text.+</P+><UL+><LI+> 1.parameter level :  like in traceCmd+</LI+><LI+> 2.parameter str :  the test+</LI+><LI+> returns : nothing+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtraceState"+></A+><B+>traceState</B+> :: Int -&gt; (state -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="doc"+><P+>trace output of the user part of the program state.+</P+><UL+><LI+> 1.parameter level :  like in traceCmd+</LI+><LI+> 2.parameter showFct :  the toString function+</LI+><LI+> returns : nothing+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AclearStatus"+></A+><B+>clearStatus</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+>filter to reset the state attribute <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_status"+>a_status</A+></TT+>+    - returns : this+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AissueError"+></A+><B+>issueError</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+><P+>report an error message.+</P+><UL+><LI+> returns : if the input tree n represents an error, <TT+>res = []</TT+>+		  and the error is processed by the errror handler filter (default: error is issued on stderr)+		  else <TT+>res = [n]</TT+>+</LI+></UL+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueErr"+>issueErr</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AerrorMsgHandler"+></A+><B+>errorMsgHandler</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetErrorMsgLevel"+></A+><B+>setErrorMsgLevel</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+>set the error level in system state+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AerrorMsgToStderr"+></A+><B+>errorMsgToStderr</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+>default error handler for writing errors to stderr+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AerrorMsgLogging"+></A+><B+>errorMsgLogging</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+>error message handler for collecting all error messages+ all messages are stored under attribute <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_error_log"+>a_error_log</A+></TT+>+ they can be read with <TT+>getSysParamTree a_error_log</TT+> or by+ applying the filter <TT+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetErrorMsg"+>getErrorMsg</A+></TT+> to the root node+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AerrorMsgLoggingAndToStderr"+></A+><B+>errorMsgLoggingAndToStderr</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetErrorMsg"+></A+><B+>getErrorMsg</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+><P+>the filter for reading all collected error mesages+</P+><P+>result is the list of error messages, the input tree is ignored+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AerrClass"+></A+><B+>errClass</B+> :: Int -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>error level translation+ <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_warn"+>c_warn</A+></TT+> (1) : warning,+ <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"+>c_err</A+></TT+> (2): error (e.g. parse error, validation error, ...),+ <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_fatal"+>c_fatal</A+></TT+> (3) : fatal error (document access error, internal error, ...)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AissueWarn"+></A+><B+>issueWarn</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+><P+>short cut for issuing a warning+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueError"+>issueError</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueErr"+>issueErr</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AissueErr"+></A+><B+>issueErr</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+><P+>short cut for issuing an error+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueError"+>issueError</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AissueFatal"+></A+><B+>issueFatal</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+><P+>short cut for issuing a fatal error+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueError"+>issueError</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueErr"+>issueErr</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddFatal"+></A+><B+>addFatal</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcheckStatus"+></A+><B+>checkStatus</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+>checks the value of the attribute <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_status"+>a_status</A+></TT+> in a document root.+ if it contains a value greater or equal to <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"+>c_err</A+></TT+>, an error with error message+ stored in attribute <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_module"+>a_module</A+></TT+> is issued and the filter acts as the <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AnoneM"+>noneM</A+></TT+> filter+ else its the <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AthisM"+>thisM</A+></TT+> filter+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetStatus"+></A+><B+>setStatus</B+> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>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 <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"+>c_err</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AstatusOk"+></A+><B+>statusOk</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>check whether tree is a document root and the status attribute has a value less than <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"+>c_err</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcheckResult"+></A+><B+>checkResult</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+>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 error info is added as attributes with <TT+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetStatus"+>setStatus</A+></TT+>+ else nothing is changed+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessAttrM"+></A+><B+>processAttrM</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>monadic filter for processing the attribute list of a tag.+ for other trees this filter acts like <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AnoneM"+>noneM</A+></TT+>+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AprocessAttr"+>processAttr</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AprocessAttrl"+>processAttrl</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-DOM-XmlTree.html view
@@ -0,0 +1,147 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.XmlTree</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlTree.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.XmlTree</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>This helper module exports elements from the basic libraries:+ XmlTreeTypes, XmlKeywords, XNodeFunctions, XmlTreeFunctions and XmlTreeFilter+</P+><P+>Version : $Id: XmlTree.hs,v 1.1 2004<EM+>09</EM+>02 19:11:58 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html"+>Text.XML.HXT.DOM.XmlTreeTypes</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-XmlKeywords.html"+>Text.XML.HXT.DOM.XmlKeywords</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html"+>Text.XML.HXT.DOM.XmlTreeFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-DOM-XmlTreeFilter.html view
@@ -0,0 +1,4347 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.XmlTreeFilter</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlTreeFilter.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.XmlTreeFilter</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>basic XmlTree filter+</P+><P+>Version : $Id: XmlTreeFilter.hs,v 1.4 2006<EM+>11</EM+>12 14:53:00 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AisRoot"+>isRoot</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisTag"+>isTag</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisNsTag"+>isNsTag</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasLocalPart"+>hasLocalPart</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasPrefix"+>hasPrefix</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasNamespace"+>hasNamespace</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisOfTag"+>isOfTag</A+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"+>TagName</A+> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasAttr"+>hasAttr</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasNsAttr"+>hasNsAttr</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasValue"+>hasValue</A+> :: String -&gt; (String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisPi"+>isPi</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXmlPi"+>isXmlPi</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisOfPi"+>isOfPi</A+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"+>TagName</A+> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXCdata"+>isXCdata</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXCharRef"+>isXCharRef</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXCmt"+>isXCmt</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXDTD"+>isXDTD</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXEntityRef"+>isXEntityRef</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXError"+>isXError</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXPi"+>isXPi</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXTag"+>isXTag</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXAttr"+>isXAttr</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisAttr"+>isAttr</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisNsAttr"+>isNsAttr</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisOfAttr"+>isOfAttr</A+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AAttrName"+>AttrName</A+> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXText"+>isXText</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisText"+>isText</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisOfText"+>isOfText</A+> :: (String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisWhiteSpace"+>isWhiteSpace</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisDoctype"+>isDoctype</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisAttlist"+>isAttlist</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisElement"+>isElement</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisEntity"+>isEntity</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisPeRef"+>isPeRef</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisDTDName"+>isDTDName</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisCondSect"+>isCondSect</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisParameterEntity"+>isParameterEntity</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisNotation"+>isNotation</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisDefaultAttrKind"+>isDefaultAttrKind</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisEnumAttrType"+>isEnumAttrType</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisFixedAttrKind"+>isFixedAttrKind</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisIdAttrType"+>isIdAttrType</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisIdRefAttrType"+>isIdRefAttrType</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisNotationAttrType"+>isNotationAttrType</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisRequiredAttrKind"+>isRequiredAttrKind</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisAttlistParameterEntity"+>isAttlistParameterEntity</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisEmptyElement"+>isEmptyElement</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisMixedContentElement"+>isMixedContentElement</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisElemWithContent"+>isElemWithContent</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisAttlistOfElement"+>isAttlistOfElement</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisElemContentParamEntity"+>isElemContentParamEntity</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisUnparsedEntity"+>isUnparsedEntity</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisExternalParameterEntity"+>isExternalParameterEntity</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisInternalParameterEntity"+>isInternalParameterEntity</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisWarning"+>isWarning</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisError"+>isError</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisFatalError"+>isFatalError</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXTag"+>mkXTag</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkQTag"+>mkQTag</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXNsTag"+>mkXNsTag</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXAttr"+>mkXAttr</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkQAttr"+>mkQAttr</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXNsAttr"+>mkXNsAttr</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXText"+>mkXText</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXCharRef"+>mkXCharRef</A+> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXEntityRef"+>mkXEntityRef</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXCmt"+>mkXCmt</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXDTD"+>mkXDTD</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXCdata"+>mkXCdata</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXPi"+>mkXPi</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXError"+>mkXError</A+> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetName"+>getName</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetAttrl"+>getAttrl</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetValue"+>getValue</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetNsValue"+>getNsValue</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetDTDValue"+>getDTDValue</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXCmt"+>getXCmt</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXCdata"+>getXCdata</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AreplaceQName"+>replaceQName</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmodifyText"+>modifyText</A+> :: (String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmodifyQName"+>modifyQName</A+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"+>TagName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"+>TagName</A+>) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessAttrl"+>processAttrl</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlSFilter"+>XmlSFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessAttr"+>processAttr</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AreplaceAttrl"+>replaceAttrl</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Adel1Attr"+>del1Attr</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aadd1Attr"+>add1Attr</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddAttrl"+>addAttrl</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddAttr"+>addAttr</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddAttrInt"+>addAttrInt</A+> :: String -&gt; Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmodifyAttr"+>modifyAttr</A+> :: String -&gt; (String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaddDTDAttr"+>addDTDAttr</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%2B%3D"+>(+=)</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%2B%2B%3D"+>(++=)</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalueOf"+>valueOf</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AintValueOf"+>intValueOf</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Atag"+>tag</A+> :: String -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Astag"+>stag</A+> :: String -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aatag"+>atag</A+> :: String -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aetag"+>etag</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aqetag"+>qetag</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aqtag"+>qtag</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ArootTag"+>rootTag</A+> :: [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aattr"+>attr</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aqattr"+>qattr</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Asattr"+>sattr</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Atxt"+>txt</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Acmt"+>cmt</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aspi"+>spi</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Acdata"+>cdata</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Adtd"+>dtd</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Awarn"+>warn</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aerr"+>err</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Afatal"+>fatal</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhasOption"+>hasOption</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisRoot"+></A+><B+>isRoot</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a document root node.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisTag"+></A+><B+>isTag</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>test whether the root of a tree contains a tag node.+</P+><P+>see also: <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisNsTag"+>isNsTag</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisNsTag"+></A+><B+>isNsTag</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>namespace aware test whether the root of a tree contains a tag node. Parameters are the local part and namespace.+ Only usable after namespace propagation.+</P+><P+>see also: <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisTag"+>isTag</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasLocalPart"+></A+><B+>hasLocalPart</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree has a given local name+ see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasNamespace"+>hasNamespace</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasPrefix"+>hasPrefix</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisTag"+>isTag</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttr"+>isAttr</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasPrefix"+></A+><B+>hasPrefix</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree has a given prefix name+ see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasNamespace"+>hasNamespace</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasLocalPart"+>hasLocalPart</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisTag"+>isTag</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttr"+>isAttr</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasNamespace"+></A+><B+>hasNamespace</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree belongs to a given namespace+ see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisTag"+>isTag</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttr"+>isAttr</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasLocalPart"+>hasLocalPart</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasPrefix"+>hasPrefix</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisOfTag"+></A+><B+>isOfTag</B+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"+>TagName</A+> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a tag node with a special name.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasAttr"+></A+><B+>hasAttr</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>test whether the node of a tree is a XTag node or a XPi node with an attibute of a specific name+</P+><P+>see also: <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttr"+>isAttr</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasNsAttr"+>hasNsAttr</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasNsAttr"+></A+><B+>hasNsAttr</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>test whether the tree is a XTag node with an attibute of a specific local name and namespace uri+</P+><P+>see also: <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasAttr"+>hasAttr</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisNsAttr"+>isNsAttr</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasValue"+></A+><B+>hasValue</B+> :: String -&gt; (String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>test whether the given node is a XTag node or a XPI node with an attribute with a value with a specific property.+ In case of a match, the attribute value represented by a text node is returned as single element list,+ else the empty list is the result.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetValue"+>getValue</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisPi"+></A+><B+>isPi</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the tree is a processing instruction with a given name.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXmlPi"+></A+><B+>isXmlPi</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the tree is a &lt;?xml ... ?&gt; declaration+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisOfPi"+></A+><B+>isOfPi</B+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"+>TagName</A+> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a processing instruction of a special name.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXCdata"+></A+><B+>isXCdata</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a CDATA node.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXCharRef"+></A+><B+>isXCharRef</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a character reference node.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXCmt"+></A+><B+>isXCmt</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a comment node.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXDTD"+></A+><B+>isXDTD</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a DTD part.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXEntityRef"+></A+><B+>isXEntityRef</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains an entity reference node.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXError"+></A+><B+>isXError</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains an error node.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXPi"+></A+><B+>isXPi</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a processing instruction node.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXTag"+></A+><B+>isXTag</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a tag node.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXAttr"+></A+><B+>isXAttr</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains an attribute node.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisAttr"+></A+><B+>isAttr</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree is an attribute node for a given attribute name+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisNsAttr"+></A+><B+>isNsAttr</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>namespace aware test whether the tree contains an attribute node. Parameters are the local part of the atribute name and the namespace.+ Only usable after namespace propagation.+</P+><P+>see also: <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisNsTag"+>isNsTag</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttr"+>isAttr</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasNsAttr"+>hasNsAttr</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisOfAttr"+></A+><B+>isOfAttr</B+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AAttrName"+>AttrName</A+> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>general test for an attribute name+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXText"+></A+><B+>isXText</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a text node.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisText"+></A+><B+>isText</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a special text.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisOfText"+></A+><B+>isOfText</B+> :: (String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a text node with a special property+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisWhiteSpace"+></A+><B+>isWhiteSpace</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a text node only with whitespace.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisDoctype"+></A+><B+>isDoctype</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a DOCTYPE DTD part.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisAttlist"+></A+><B+>isAttlist</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains an ATTLIST DTD part.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisElement"+></A+><B+>isElement</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains an ELEMENT DTD part.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisEntity"+></A+><B+>isEntity</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains an ENTITY DTD part.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisPeRef"+></A+><B+>isPeRef</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a parameter ENTITY reference.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisDTDName"+></A+><B+>isDTDName</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a DTD name part.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisCondSect"+></A+><B+>isCondSect</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a conditional section DTD part.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisParameterEntity"+></A+><B+>isParameterEntity</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a parameter entity declaration.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisNotation"+></A+><B+>isNotation</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains a NOTATION DTD part.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisDefaultAttrKind"+></A+><B+>isDefaultAttrKind</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisEnumAttrType"+></A+><B+>isEnumAttrType</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisFixedAttrKind"+></A+><B+>isFixedAttrKind</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisIdAttrType"+></A+><B+>isIdAttrType</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisIdRefAttrType"+></A+><B+>isIdRefAttrType</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisNotationAttrType"+></A+><B+>isNotationAttrType</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisRequiredAttrKind"+></A+><B+>isRequiredAttrKind</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisAttlistParameterEntity"+></A+><B+>isAttlistParameterEntity</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisEmptyElement"+></A+><B+>isEmptyElement</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisMixedContentElement"+></A+><B+>isMixedContentElement</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisElemWithContent"+></A+><B+>isElemWithContent</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisAttlistOfElement"+></A+><B+>isAttlistOfElement</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisElemContentParamEntity"+></A+><B+>isElemContentParamEntity</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisUnparsedEntity"+></A+><B+>isUnparsedEntity</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisExternalParameterEntity"+></A+><B+>isExternalParameterEntity</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisInternalParameterEntity"+></A+><B+>isInternalParameterEntity</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisWarning"+></A+><B+>isWarning</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains an error node for a warning.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisError"+></A+><B+>isError</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains an error node for an error.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisFatalError"+></A+><B+>isFatalError</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>test whether the root of a tree contains an error node for a fatal error.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXTag"+></A+><B+>mkXTag</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>constructor filter for a tag node.+ a new tree is constructed.+ the attributes and the children are computed by applying the aproprate filter to the input tree+</P+><UL+><LI+> 1.parameter n :  the tag name+</LI+><LI+> 2.parameter af :  the filter for the attribute list+</LI+><LI+> 3.parameter cf :  the filter for the children+</LI+><LI+> returns : the constructor filter+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkQTag"+></A+><B+>mkQTag</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Version with qualified names of <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXTag"+>mkXTag</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXNsTag"+></A+><B+>mkXNsTag</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>constructor filter for a tag node.+ a new tree is constructed.+ the attributes and the children are computed by applying the aproprate filter to the input tree+</P+><UL+><LI+> 1.parameter n :  the tag name in form of prefix:localpart+</LI+><LI+> 2.parameter ns:   the namespace uri+</LI+><LI+> 3.parameter af :  the filter for the attribute list+</LI+><LI+> 4.parameter cf :  the filter for the children+</LI+><LI+> returns : the constructor filter+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXAttr"+></A+><B+>mkXAttr</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>filter for attribute construction.+ a new tree with attribute name and a value computed by a filter+ is build.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkQAttr"+></A+><B+>mkQAttr</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Qualified version <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXAttr"+>mkXAttr</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXNsAttr"+></A+><B+>mkXNsAttr</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>filter for attribute construction.+ a new tree with attribute name and namespace and a value computed by a filter+ is build.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXText"+></A+><B+>mkXText</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>constructor filter for a text node.+ a new tree is constructed.+ the input tree is ignored.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXCharRef"+></A+><B+>mkXCharRef</B+> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>constructor filter for a character reference node.+ a new tree is constructed.+ the input tree is ignored.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXEntityRef"+></A+><B+>mkXEntityRef</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>constructor filter for an entity reference node.+ a new tree is constructed.+ the input tree is ignored.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXCmt"+></A+><B+>mkXCmt</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>constructor filter for a comment node.+ a new tree is constructed.+ the xml string representation of the filter result+ forms the comment+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXDTD"+></A+><B+>mkXDTD</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>constructor filter for a DTD part.+ a new tree is constructed.+ the input tree is ignored.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXCdata"+></A+><B+>mkXCdata</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>constructor filter for a CDATA section node.+ a new tree is constructed.+ the input tree is ignored.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXPi"+></A+><B+>mkXPi</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>constructor filter for a processing instruction+ a new tree is constructed from the text representation+ of the input tree+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXError"+></A+><B+>mkXError</B+> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>constructor filter for an error message node.+ a new tree is constructed.+ the input tree is ignored.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetName"+></A+><B+>getName</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>filter for selecting the name of a tag node, an attribute node or a pi node.+ Result of the filter is a single element list with a text node or the empty list+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetAttrl"+></A+><B+>getAttrl</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>filter for selecting the attibute list+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetValue"+></A+><B+>getValue</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>filter for selecting the value of an attribute in a tag node.+ Result of the filter is a single element list with a text node or the empty list+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasValue"+>hasValue</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetNsValue"+>getNsValue</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetNsValue"+></A+><B+>getNsValue</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>filter for selecting the value of an attribute with namespace in a tag node.+ Result of the filter is a single element list with a text node or the empty list+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetValue"+>getValue</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisNsAttr"+>isNsAttr</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetDTDValue"+></A+><B+>getDTDValue</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>filter for selecting an attribute of a DTD node.+ Result of the filter is a single element list with a text node or the empty list+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXCmt"+></A+><B+>getXCmt</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>filter for selecting content of a comment.+ Result of the filter is a single element list with a text node or the empty list+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXCdata"+></A+><B+>getXCdata</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>filter for selecting the CDATA content.+ Result of the filter is a single element list with a text node or the empty list+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AreplaceQName"+></A+><B+>replaceQName</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>edit filter for changing the name of a tag node, an attribute or a pi.+ result of the filter is a single element list with a tag node or the empty list+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmodifyText"+></A+><B+>modifyText</B+> :: (String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>edit filter for changing the text of a text node.+ result of the filter is a single element list with a text node or the empty list+</P+><P+>example for editing all text nodes of a tree with an edit function <TT+>f</TT+>:+</P+><PRE+>processBottomUp (modifyText f `when` isXText)</PRE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmodifyQName"+></A+><B+>modifyQName</B+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"+>TagName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"+>TagName</A+>) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>edit filter for changing the name of a tag node.+ result of the filter is a single element list with a text node or the empty list+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessAttrl"+></A+><B+>processAttrl</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlSFilter"+>XmlSFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>process the attribute list of a tag node with a tree list filter.+ for other trees this filter acts like <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Anone"+>none</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessAttr"+></A+><B+>processAttr</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>elementwise processing of the attributes of a tag.+ for other trees this filter acts like <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Anone"+>none</A+></TT+>+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AprocessAttrl"+>processAttrl</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AreplaceAttrl"+></A+><B+>replaceAttrl</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>replace an attribute list+ to be renamed when replaceAttrl is eliminated+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Adel1Attr"+></A+><B+>del1Attr</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>delete an attribute from the attribute list of a tag tree+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aadd1Attr"+></A+><B+>add1Attr</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>add an attribute to the attribute list of a tag.+ If the attribute already exists, it's substituted,+</P+><P+>see also: <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Asattr"+>sattr</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%3D"+>+=</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddAttrl"+></A+><B+>addAttrl</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>adds an attribute list computed by a filter, uses <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aadd1Attr"+>add1Attr</A+></TT+>.+</P+><P+>see also: <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%3D"+>+=</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddAttr"+></A+><B+>addAttr</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>add or change an attribute with a given string as value for a XTag or XPi tree,+ uses <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aadd1Attr"+>add1Attr</A+></TT+>.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddAttrInt"+></A+><B+>addAttrInt</B+> :: String -&gt; Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>add or change an attribute with an Int value.+ uses <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AaddAttr"+>addAttr</A+></TT+>.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmodifyAttr"+></A+><B+>modifyAttr</B+> :: String -&gt; (String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>edit filter for changing the value of an attribute in a tag node.+ result of the filter is a single element list with the tag node or the empty list.+</P+><UL+><LI+> 1.parameter n :  the name of the attribute+</LI+><LI+> 2.parameter f :  the edit function for the attribute value+</LI+><LI+> returns : the edit filter+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaddDTDAttr"+></A+><B+>addDTDAttr</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>add or change an attribute of a DTD tree+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%2B%3D"+></A+><B+>(+=)</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>convenient function for tag node tree construction+</P+><P+>infixl 7+</P+><P+>filter combinator for tag tree constrcution+ take a 1. filter for computing a tag node tree (or a whole list of tag node trees)+ then add all trees computed by the 2. filter to the attribute list when they represent attributes+ else append them to the list of children.+</P+><P+>if the 1. filter computes a list of tag nodes, the results of the 2. filter are added to all trees+</P+><P+>example: <TT+> etag &quot;a&quot; += sattr &quot;href&quot; &quot;#42&quot; += txt &quot;the answer&quot; </TT+>+ gives the tree <TT+> &lt;a href=&quot;#42&quot;&gt;the answer&lt;/a&gt; </TT+>+</P+><P+>example: <TT+> ( etag &quot;a&quot; +++ etag &quot;b&quot; ) += sattr &quot;x&quot; &quot;42&quot; </TT+>+ gives the tree <TT+> &lt;a x=&quot;42&quot;/&gt;&lt;b x=&quot;42&quot;/&gt; </TT+>+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aetag"+>etag</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Atag"+>tag</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aadd1Attr"+>add1Attr</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyChildren"+>modifyChildren</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%2B%3D"+>++=</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3A%2B%2B%3D"+></A+><B+>(++=)</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>convenient filter function adding a whole list of trees, just for not writing to many ( ... ).+</P+><P+>infixl 7+</P+><PRE+> f ++= gl  == f += cat gl </PRE+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%3D"+>+=</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalueOf"+></A+><B+>valueOf</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>combination of <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetValue"+>getValue</A+></TT+> and conversion into a String+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AintValueOf"+></A+><B+>intValueOf</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; Int</TD+></TR+><TR+><TD CLASS="doc"+>combination of <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetValue"+>getValue</A+></TT+> and conversion to a Int+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Atag"+></A+><B+>tag</B+> :: String -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>variant of mkXTag with a list of filters for the attributes and a list of filters for the children.+ this variant leads to a more readable source for a complicated construction filter+ than the simple solution with a combination of <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXTag"+>mkXTag</A+></TT+> and <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Acat"+>cat</A+></TT+>.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXTag"+>mkXTag</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Astag"+>stag</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aetag"+>etag</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Acat"+>cat</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%3D"+>+=</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Astag"+></A+><B+>stag</B+> :: String -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>variant of tag, useful for tags without attributes and with a list of filters for+ constructing the children+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXTag"+>mkXTag</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Atag"+>tag</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aetag"+>etag</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Acat"+>cat</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%3D"+>+=</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aatag"+></A+><B+>atag</B+> :: String -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>variant of tag, useful for tags with attributes but without children+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXTag"+>mkXTag</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Atag"+>tag</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Astag"+>stag</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aetag"+>etag</A+></TT+>, <TT+><A HREF="Data-Tree-NTree-Filter.html#v%3Acat"+>cat</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aetag"+></A+><B+>etag</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Short cut for empty tags without attributes+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Atag"+>tag</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aatag"+>atag</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Astag"+>stag</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXTag"+>mkXTag</A+></TT+> and <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%3D"+>+=</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aqetag"+></A+><B+>qetag</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Qualified version of etag+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aqtag"+></A+><B+>qtag</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Alias for mkQTag+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArootTag"+></A+><B+>rootTag</B+> :: [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>filter for creating a document root node with a list of filters for the attributes and a list of filters for the document.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Atag"+>tag</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aattr"+></A+><B+>attr</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Alias for <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXAttr"+>mkXAttr</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aqattr"+></A+><B+>qattr</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Alias for mkQAttr+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Asattr"+></A+><B+>sattr</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>short cut for attribute construction with string constants+</P+><P+>set also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aattr"+>attr</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXAttr"+>mkXAttr</A+></TT+> and <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXText"+>mkXText</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Atxt"+></A+><B+>txt</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>short cut for <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXText"+>mkXText</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Acmt"+></A+><B+>cmt</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>short cut for simple comment+ the input tree is ignored+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXCmt"+>mkXCmt</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aspi"+></A+><B+>spi</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>short cut for generating simple processing instructions (spi)+ the input tree is ignored+</P+><P+><TT+>spi &quot;xyz&quot; &quot;abc&quot;</TT+> is equal to <TT+>mkXPi &quot;xyz&quot; (txt &quot;abc&quot;)</TT+>+ (the name pi is already used in prelude)+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Acdata"+></A+><B+>cdata</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>short cut for generating simple cdata sections,+ the input tree is ignored+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Adtd"+></A+><B+>dtd</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; [<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+>] -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>DTD part generation with filter for attributes and children+ see also: <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXDTDTree"+>mkXDTDTree</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Awarn"+></A+><B+>warn</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>short cut for mkXError c_warn.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXError"+>mkXError</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aerr"+></A+><B+>err</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>short cut for mkXError c_fatal.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXError"+>mkXError</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Afatal"+></A+><B+>fatal</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>short cut for mkXError c_fatal.+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXError"+>mkXError</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhasOption"+></A+><B+>hasOption</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>check whether an option is set+</P+><P+>reads the value of an attribute, usually applied to a document root node,+ and checks if the value represents True. The following strings are interpreted+ as true: &quot;1&quot;, &quot;True&quot;, &quot;true&quot;, &quot;yes&quot;, &quot;Yes&quot;.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-DOM-XmlTreeFunctions.html view
@@ -0,0 +1,3085 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.XmlTreeFunctions</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlTreeFunctions.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.XmlTreeFunctions</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>basic XmlTree functions+</P+><P+>Version : $Id: XmlTreeFunctions.hs,v 1.4 2006<EM+>11</EM+>12 14:53:00 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXCdataNode"+>isXCdataNode</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXCharRefNode"+>isXCharRefNode</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXCmtNode"+>isXCmtNode</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXDTDNode"+>isXDTDNode</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXAttrNode"+>isXAttrNode</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXEntityRefNode"+>isXEntityRefNode</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXErrorNode"+>isXErrorNode</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXPiNode"+>isXPiNode</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXTagNode"+>isXTagNode</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisXTextNode"+>isXTextNode</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisRootNode"+>isRootNode</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisTagNode"+>isTagNode</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisOfTagNode"+>isOfTagNode</A+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"+>TagName</A+> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisAttrNode"+>isAttrNode</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisOfAttrNode"+>isOfAttrNode</A+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AAttrName"+>AttrName</A+> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisTextNode"+>isTextNode</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisOfTextNode"+>isOfTextNode</A+> :: (String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisPiNode"+>isPiNode</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisOfPiNode"+>isOfPiNode</A+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"+>TagName</A+> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisDTDElemNode"+>isDTDElemNode</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisErrorNode"+>isErrorNode</A+> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXTagTree"+>mkXTagTree</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkQTagTree"+>mkQTagTree</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXNsTagTree"+>mkXNsTagTree</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnewRoot"+>newRoot</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AemptyRoot"+>emptyRoot</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnewDocument"+>newDocument</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnewDocument%27"+>newDocument'</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkRootTree"+>mkRootTree</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXTextTree"+>mkXTextTree</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXCharRefTree"+>mkXCharRefTree</A+> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXEntityRefTree"+>mkXEntityRefTree</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXCmtTree"+>mkXCmtTree</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXDTDTree"+>mkXDTDTree</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXAttrTree"+>mkXAttrTree</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkQAttrTree"+>mkQAttrTree</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXNsAttrTree"+>mkXNsAttrTree</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXPERefTree"+>mkXPERefTree</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXPiTree"+>mkXPiTree</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXmlDeclTree"+>mkXmlDeclTree</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXCdataTree"+>mkXCdataTree</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkXErrorTree"+>mkXErrorTree</A+> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmaybeString2XText"+>maybeString2XText</A+> :: Maybe String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowXText"+>showXText</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowXCharRef"+>showXCharRef</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowXEntityRef"+>showXEntityRef</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowXErrors"+>showXErrors</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Axshow"+>xshow</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlTreesToString"+>xmlTreesToString</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlTreesToText"+>xmlTreesToText</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlSFilter"+>XmlSFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlContentModelToString"+>xmlContentModelToString</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowXmlTree"+>showXmlTree</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowXmlTrees"+>showXmlTrees</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowXmlTrees%27"+>showXmlTrees'</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowQName"+>showQName</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowQuoteString"+>showQuoteString</A+> :: String -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowAttr"+>showAttr</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowPEAttr"+>showPEAttr</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowExternalId"+>showExternalId</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowNData"+>showNData</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowXmlDTD"+>showXmlDTD</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowElemType"+>showElemType</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowContent"+>showContent</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowEntity"+>showEntity</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowEntityValue"+>showEntityValue</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowBlank"+>showBlank</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowEq"+>showEq</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowLt"+>showLt</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowGt"+>showGt</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowSlash"+>showSlash</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowApos"+>showApos</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowQuot"+>showQuot</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowLpar"+>showLpar</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowRpar"+>showRpar</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AshowNL"+>showNL</A+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnameOf"+>nameOf</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AlocalPartOf"+>localPartOf</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnamespaceOf"+>namespaceOf</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprefixOf"+>prefixOf</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AuniversalNameOf"+>universalNameOf</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AattrlOfDTD"+>attrlOfDTD</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalueOfDTD"+>valueOfDTD</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AofDTDequals"+>ofDTDequals</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Axcmt"+>xcmt</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Axerr"+>xerr</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Axwarn"+>xwarn</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Axtext"+>xtext</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Axtag"+>xtag</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Axattr"+>xattr</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtoTreel"+>toTreel</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtoAttrl"+>toAttrl</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AfromTreel"+>fromTreel</A+> :: <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AfromAttrl"+>fromAttrl</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXCdataNode"+></A+><B+>isXCdataNode</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXCharRefNode"+></A+><B+>isXCharRefNode</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXCmtNode"+></A+><B+>isXCmtNode</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXDTDNode"+></A+><B+>isXDTDNode</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXAttrNode"+></A+><B+>isXAttrNode</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXEntityRefNode"+></A+><B+>isXEntityRefNode</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXErrorNode"+></A+><B+>isXErrorNode</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXPiNode"+></A+><B+>isXPiNode</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXTagNode"+></A+><B+>isXTagNode</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisXTextNode"+></A+><B+>isXTextNode</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisRootNode"+></A+><B+>isRootNode</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisTagNode"+></A+><B+>isTagNode</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisOfTagNode"+></A+><B+>isOfTagNode</B+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"+>TagName</A+> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisAttrNode"+></A+><B+>isAttrNode</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisOfAttrNode"+></A+><B+>isOfAttrNode</B+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AAttrName"+>AttrName</A+> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisTextNode"+></A+><B+>isTextNode</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisOfTextNode"+></A+><B+>isOfTextNode</B+> :: (String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisPiNode"+></A+><B+>isPiNode</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisOfPiNode"+></A+><B+>isOfPiNode</B+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"+>TagName</A+> -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisDTDElemNode"+></A+><B+>isDTDElemNode</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisErrorNode"+></A+><B+>isErrorNode</B+> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXTagTree"+></A+><B+>mkXTagTree</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Create a tree with a tag node.+</P+><UL+><LI+> 1.parameter n :  the name of the tag+</LI+><LI+> 2.parameter al :  the tag attribte list+</LI+><LI+> 3.parameter cs :  the list of children+</LI+><LI+> returns : the new tree+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkQTagTree"+></A+><B+>mkQTagTree</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>Version with qualified name of <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXTagTree"+>mkXTagTree</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXNsTagTree"+></A+><B+>mkXNsTagTree</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>create a tree with a namespace aware tag node.+</P+><UL+><LI+> 1.parameter n :  the prefix:localpart of the tag+</LI+><LI+> 2.parameter ns:  the namespace uri+</LI+><LI+> 3.parameter al :  the tag attribte list+</LI+><LI+> 4.parameter cs :  the list of children+</LI+><LI+> returns : the new tree+</LI+></UL+><P+>see also: <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXTagTree"+>mkXTagTree</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnewRoot"+></A+><B+>newRoot</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>creates a new document tree with empty contents.+</P+><UL+><LI+> 1.parameter al : the attribute list for the root node+</LI+></UL+><P+>returns a single node tree with tag name &quot;/&quot; indicating a root and+ with empty list of children+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AemptyRoot"+>emptyRoot</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AemptyRoot"+></A+><B+>emptyRoot</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>the empty document tree+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnewRoot"+>newRoot</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnewDocument"+></A+><B+>newDocument</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>create a new empty document with source name as parameter+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnewDocument%27"+></A+><B+>newDocument'</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>create a new empty document with a list of attributes for source location and options+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnewDocument"+>newDocument</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkRootTree"+></A+><B+>mkRootTree</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>create a document root tree.+</P+><UL+><LI+> 1.parameter al :  the attribute list for the root. This list must contain at+		  least an attribute &quot;source&quot; that contains the URI of the document to be processed+</LI+><LI+> 2.parameter cs :  the list for the document content+</LI+><LI+> returns : the document root+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXTextTree"+></A+><B+>mkXTextTree</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>create a leaf for a text element.+</P+><UL+><LI+> 1.parameter txt :  the text+</LI+><LI+> returns : the tree with the single node containing the text+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXCharRefTree"+></A+><B+>mkXCharRefTree</B+> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>create a leaf for a char reference.+</P+><UL+><LI+> 1.parameter i :  the integer representing the Unicode char+</LI+><LI+> returns : the tree with the single node containing the char reference+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXEntityRefTree"+></A+><B+>mkXEntityRefTree</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>create a leaf for an entity reference.+</P+><UL+><LI+> 1.parameter n :  the name of the entity reference+</LI+><LI+> returns : the tree with the single node containing the entity reference+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXCmtTree"+></A+><B+>mkXCmtTree</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>create a leaf for a comment,+</P+><UL+><LI+> 1.parameter c :  the comment text+</LI+><LI+> returns : the tree with the single node containing the comment+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXDTDTree"+></A+><B+>mkXDTDTree</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>create a tree for a part of a DTD+</P+><UL+><LI+> 1.parameter d :  the type of the DTD part+</LI+><LI+> 2.parameter al :  the attribute list for the DTD part+</LI+><LI+> 3.parameter ds :  the possibly empty list of components for the DTD part+</LI+><LI+> returns : the tree with the composed DTD part+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXAttrTree"+></A+><B+>mkXAttrTree</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>create an attribute tree as part of a tag attribute list of tag nodes+</P+><UL+><LI+> 1.parameter al : the attribute name+</LI+><LI+> 2.parameter av : the attribute value as tree list, usually containing a single text node+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkQAttrTree"+></A+><B+>mkQAttrTree</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>Qualified version of <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXAttrTree"+>mkXAttrTree</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXNsAttrTree"+></A+><B+>mkXNsAttrTree</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>create an attribute tree with a namespace+</P+><UL+><LI+> 1.parameter al : the attribute name+</LI+><LI+> 2.parameter ns : namespace uri+</LI+><LI+> 3.parameter av : the attribute value as tree list, usually containing a single text node+</LI+></UL+><P+>see also: <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXAttrTree"+>mkXAttrTree</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXNsTagTree"+>mkXNsTagTree</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXPERefTree"+></A+><B+>mkXPERefTree</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>create a parameter entity reference DTD part.+</P+><UL+><LI+> 1.parameter ref :  the name of the reference+</LI+><LI+> returns : the DTD part for a PERef+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXPiTree"+></A+><B+>mkXPiTree</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>create a processing instruction tree.+</P+><UL+><LI+> 1.parameter n :  the name of the PI+</LI+><LI+> 2.parameter str :  the content of a PI+</LI+><LI+> returns : the processing instruction tree with a single attribute &quot;value&quot;+      with the str parameter as attribute value, with <TT+>valueOf a_value</TT+> applied to the result tree+      the content of the PI can be selected+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXmlDeclTree"+></A+><B+>mkXmlDeclTree</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>create xml declaration+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXCdataTree"+></A+><B+>mkXCdataTree</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>create a CDATA section tree.+</P+><UL+><LI+> 1.parameter s :  the content of the CDATA section+</LI+><LI+> returns : the tree for the CDATA section+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkXErrorTree"+></A+><B+>mkXErrorTree</B+> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>create an error tree.+</P+><UL+><LI+> 1.parameter l :  the level of the error (warning, error fatal)+</LI+><LI+> 2.parameter msg :  the error message+</LI+><LI+> 3.parameter cs :  the context, where the error was detected+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmaybeString2XText"+></A+><B+>maybeString2XText</B+> :: Maybe String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowXText"+></A+><B+>showXText</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowXCharRef"+></A+><B+>showXCharRef</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowXEntityRef"+></A+><B+>showXEntityRef</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowXErrors"+></A+><B+>showXErrors</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Axshow"+></A+><B+>xshow</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>convert the result of a filter into a string+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AxmlTreesToText"+>xmlTreesToText</A+></TT+> for filter version, <TT+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Axread"+>xread</A+></TT+> for the inverse operation +</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlTreesToString"+></A+><B+>xmlTreesToString</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>old name for <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axshow"+>xshow</A+></TT+> (deprecated)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlTreesToText"+></A+><B+>xmlTreesToText</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlSFilter"+>XmlSFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>conversion of a filter result into a text node+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axshow"+>xshow</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlContentModelToString"+></A+><B+>xmlContentModelToString</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowXmlTree"+></A+><B+>showXmlTree</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowXmlTrees"+></A+><B+>showXmlTrees</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowXmlTrees%27"+></A+><B+>showXmlTrees'</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowQName"+></A+><B+>showQName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowQuoteString"+></A+><B+>showQuoteString</B+> :: String -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowAttr"+></A+><B+>showAttr</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowPEAttr"+></A+><B+>showPEAttr</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowExternalId"+></A+><B+>showExternalId</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowNData"+></A+><B+>showNData</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowXmlDTD"+></A+><B+>showXmlDTD</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowElemType"+></A+><B+>showElemType</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowContent"+></A+><B+>showContent</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowEntity"+></A+><B+>showEntity</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowEntityValue"+></A+><B+>showEntityValue</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowBlank"+></A+><B+>showBlank</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowEq"+></A+><B+>showEq</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowLt"+></A+><B+>showLt</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowGt"+></A+><B+>showGt</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowSlash"+></A+><B+>showSlash</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowApos"+></A+><B+>showApos</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowQuot"+></A+><B+>showQuot</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowLpar"+></A+><B+>showLpar</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowRpar"+></A+><B+>showRpar</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AshowNL"+></A+><B+>showNL</B+> :: String -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnameOf"+></A+><B+>nameOf</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>select the name of a node. For tags, attributes and pi's the name string+ is returned, else the empty string.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AlocalPartOf"+></A+><B+>localPartOf</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>select the local part of a name of a node. For tags, attributes the name string+ is returned, for pi's the whole name, else the empty string.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnamespaceOf"+></A+><B+>namespaceOf</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>select the namespace URI of a tag or an attribute tree, else the empty string is returned+ see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnameOf"+>nameOf</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprefixOf"+></A+><B+>prefixOf</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>select the namespace prefix of a tag or an attribute tree, else the empty string is returned+ see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnameOf"+>nameOf</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AlocalPartOf"+>localPartOf</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AuniversalNameOf"+></A+><B+>universalNameOf</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>select the universal name (namespace uri ++ localPart) of a tag or an attribute tree, else the empty string is returned+ see also : <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnameOf"+>nameOf</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnamespaceOf"+>namespaceOf</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AattrlOfDTD"+></A+><B+>attrlOfDTD</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+></TD+></TR+><TR+><TD CLASS="doc"+>select the attributes of a dtd tree+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalueOfDTD"+></A+><B+>valueOfDTD</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>select a special attribute of a DTD part+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AofDTDequals"+></A+><B+>ofDTDequals</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>test an attribute of a DTD part+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Axcmt"+></A+><B+>xcmt</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Axerr"+></A+><B+>xerr</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Axwarn"+></A+><B+>xwarn</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Axtext"+></A+><B+>xtext</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Axtag"+></A+><B+>xtag</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Axattr"+></A+><B+>xattr</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtoTreel"+></A+><B+>toTreel</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtoAttrl"+></A+><B+>toAttrl</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfromTreel"+></A+><B+>fromTreel</B+> :: <A HREF="Data-AssocList.html#t%3AAssocList"+>AssocList</A+> String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfromAttrl"+></A+><B+>fromAttrl</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-DOM-XmlTreeTypes.html view
@@ -0,0 +1,566 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM.XmlTreeTypes</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlTreeTypes.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM.XmlTreeTypes</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>exports the core data types+ and some additional types and functions+ for compatibility with none arrow modules+</P+><P+>Version : $Id: XmlTreeTypes.hs,v 1.6 2006<EM+>05</EM+>09 15:30:43 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>module <A HREF="Data-Tree-NTree-Filter.html"+>Data.Tree.NTree.Filter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-TypeDefs.html"+>Text.XML.HXT.DOM.TypeDefs</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmkNode"+>mkNode</A+> :: node -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>NTrees</A+> node -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AformatNTree"+>formatNTree</A+> :: (node -&gt; String) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AfoldNTree"+>foldNTree</A+> :: (a -&gt; [b] -&gt; b) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a -&gt; b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AmapNTree"+>mapNTree</A+> :: (a -&gt; b) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnTreeToList"+>nTreeToList</A+> :: <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a -&gt; [a]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AdepthNTree"+>depthNTree</A+> :: <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a -&gt; Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcardNTree"+>cardNTree</A+> :: <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a -&gt; Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AXmlFilter"+>XmlFilter</A+> = <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AXmlSFilter"+>XmlSFilter</A+> = <A HREF="Data-Tree-NTree-Filter.html#t%3ATSFilter"+>TSFilter</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ATagName"+>TagName</A+> = <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AAttrName"+>AttrName</A+> = <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtName"+>tName</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AaName"+>aName</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Data-Tree-NTree-Filter.html"+>Data.Tree.NTree.Filter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-TypeDefs.html"+>Text.XML.HXT.DOM.TypeDefs</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkNode"+></A+><B+>mkNode</B+> :: node -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>NTrees</A+> node -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AformatNTree"+></A+><B+>formatNTree</B+> :: (node -&gt; String) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> node -&gt; String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfoldNTree"+></A+><B+>foldNTree</B+> :: (a -&gt; [b] -&gt; b) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a -&gt; b</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmapNTree"+></A+><B+>mapNTree</B+> :: (a -&gt; b) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> b</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnTreeToList"+></A+><B+>nTreeToList</B+> :: <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a -&gt; [a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdepthNTree"+></A+><B+>depthNTree</B+> :: <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a -&gt; Int</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcardNTree"+></A+><B+>cardNTree</B+> :: <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a -&gt; Int</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AXmlFilter"+></A+><B+>XmlFilter</B+> = <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>TFilter</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="doc"+>A functions that takes a node and returns a list of nodes+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AXmlSFilter"+></A+><B+>XmlSFilter</B+> = <A HREF="Data-Tree-NTree-Filter.html#t%3ATSFilter"+>TSFilter</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="doc"+>A function that takes a list of nodes and returns a list of nodes+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ATagName"+></A+><B+>TagName</B+> = <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="doc"+>Tag name+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AAttrName"+></A+><B+>AttrName</B+> = <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="doc"+>Attribute name+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtName"+></A+><B+>tName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>shortcut for <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AqualifiedName"+>qualifiedName</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AaName"+></A+><B+>aName</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>shortcut for <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AqualifiedName"+>qualifiedName</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-DOM.html view
@@ -0,0 +1,169 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.DOM</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.DOM</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>DOM data types and functions+</P+><P+>Version : $Id: DOM.hs,v 1.2 2006<EM+>11</EM+>12 14:52:59 hxml Exp $+</P+><P+>export of all basic datatypes and functions of the toolbox DOM.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-XmlTree.html"+>Text.XML.HXT.DOM.XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-XmlState.html"+>Text.XML.HXT.DOM.XmlState</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-EditFilters.html"+>Text.XML.HXT.DOM.EditFilters</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-FormatXmlTree.html"+>Text.XML.HXT.DOM.FormatXmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-Namespace.html"+>Text.XML.HXT.DOM.Namespace</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM-XmlOptions.html"+>Text.XML.HXT.DOM.XmlOptions</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-Parser-DTDProcessing.html view
@@ -0,0 +1,328 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.DTDProcessing</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/DTDProcessing.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.DTDProcessing</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: DTDProcessing.hs,v 1.15 2006<EM+>11</EM+>12 14:53:00 hxml Exp $+</P+><P+>DTD processing function for+   including external parts of a DTD+   parameter entity substitution and general entity substitution+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetWellformedDoc"+>getWellformedDoc</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcheckWellformedDoc"+>checkWellformedDoc</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessDTD"+>processDTD</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprocessGeneralEntities"+>processGeneralEntities</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetWellformedDoc"+></A+><B+>getWellformedDoc</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+><P+>monadic filter for reading, parsing and checking a wellformed document.+ the input tree must consist of a root node with a source attribute+ in its attribute list.+</P+><P+>All attributes from the document root are copied into the system state,+ and may be queried by the monadic filters, e.g. trace options.+</P+><P+>Result is the single element list containing the well-formed document tree+ or, in case of errors, the document root with an empty list as children+ and attributes <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_status"+>a_status</A+></TT+> and <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_module"+>a_module</A+></TT+> for error level and the module,+ where the error occured.+</P+><P+>this is a shortcut for <TT+><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetXmlContents"+>getXmlContents</A+></TT+> .&gt;&gt; <TT+><A HREF="Text-XML-HXT-Parser-DTDProcessing.html#v%3AcheckWellformedDoc"+>checkWellformedDoc</A+></TT+>+</P+><P+>example for a main program:+</P+><PRE+>+ main =+   run' $+   do+   res  &lt;- getWellformedDoc $ newDocument &quot;myfile.xml&quot;+   ...+ </PRE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcheckWellformedDoc"+></A+><B+>checkWellformedDoc</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+>parses a text node with <TT+><A HREF="Text-XML-HXT-Parser-XmlParser.html#v%3AparseXmlDoc"+>parseXmlDoc</A+></TT+>, processes the DTD and general entities+ and transforms all char references into characters+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessDTD"+></A+><B+>processDTD</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>a filter for DTD processing+</P+><P+>inclusion of external parts of DTD,+ parameter entity substitution+ conditional section evaluation+</P+><P+>input tree must represent a complete document including root node+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprocessGeneralEntities"+></A+><B+>processGeneralEntities</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>substitution of general entities+</P+><P+>input: a complete document tree including root node+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-Parser-DefaultURI.html view
@@ -0,0 +1,104 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.DefaultURI</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/DefaultURI.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.DefaultURI</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetDefaultURI"+></A+><B+>setDefaultURI</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-Parser-HtmlParsec.html view
@@ -0,0 +1,188 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.HtmlParsec</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/HtmlParsec.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.HtmlParsec</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>HTML Parsec Parser+</P+><P+>Version : $Id: HtmlParsec.hs,v 1.11 2006<EM+>12</EM+>08 11:48:20 hxml Exp $+</P+><P+>This parser tries to interprete everything as HTML+ no errors are emitted during parsing. If something looks+ weired, warning messages are inserted in the document tree+</P+><P+>all filter are pure XmlFilter,+ errror handling and IO is done in <TT+><A HREF="Text-XML-HXT-Parser.html#t%3AHtmlParser"+>HtmlParser</A+></TT+>+ or other modules+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsubstHtmlEntities"+></A+><B+>substHtmlEntities</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseHtmlText"+></A+><B+>parseHtmlText</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseHtmlDocument"+></A+><B+>parseHtmlDocument</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseHtmlContent"+></A+><B+>parseHtmlContent</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxhtmlEntities"+></A+><B+>xhtmlEntities</B+> :: [(String, Int)]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-Parser-HtmlParser.html view
@@ -0,0 +1,292 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.HtmlParser</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/HtmlParser.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.HtmlParser</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>HTML Parser+</P+><P+>Version : $Id: HtmlParser.hs,v 1.4 2006<EM+>11</EM+>12 14:53:00 hxml Exp $+</P+><P+>This parser tries to interprete everything as HTML+ no errors are emitted during parsing. If something looks+ weired, warning messages are inserted in the document tree+</P+><P+>module contains state filter for easy parsing and error handling+ real work is done in <TT+><A HREF="Text-XML-HXT-Parser.html#t%3AHtmlParsec"+>HtmlParsec</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetHtmlDoc"+>getHtmlDoc</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseHtmlDoc"+>parseHtmlDoc</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ArunHtmlParser"+>runHtmlParser</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Parser-HtmlParsec.html"+>Text.XML.HXT.Parser.HtmlParsec</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetHtmlDoc"+></A+><B+>getHtmlDoc</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+><P+>read a document and parse it with <TT+><A HREF="Text-XML-HXT-Parser-HtmlParser.html#v%3AparseHtmlDoc"+>parseHtmlDoc</A+></TT+>. The main entry point of this module+</P+><P+>The input tree must be a root tree like in '	Text.XML.HXT.Parser.MainFunctions.getXmlDoc'. The content is read with <TT+><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetXmlContents"+>getXmlContents</A+></TT+>,+ is parsed with <TT+><A HREF="Text-XML-HXT-Parser-HtmlParser.html#v%3AparseHtmlDoc"+>parseHtmlDoc</A+></TT+> and canonicalized (char refs are substituted in content and attributes,+ but comment is preserved)+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-Parser-DTDProcessing.html#v%3AgetWellformedDoc"+>getWellformedDoc</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseHtmlDoc"+></A+><B+>parseHtmlDoc</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>The HTML parsing filter+</P+><P+>The input is parsed with <TT+><A HREF="Text-XML-HXT-Parser-HtmlParser.html#v%3ArunHtmlParser"+>runHtmlParser</A+></TT+>, everything is interpreted as HTML,+ if errors ocuur, the parser will try to do some meaningfull action and continues+ parsing. Afterwards the entitiy references for defined for XHTML are resovled,+ any unresolved reference is transformed into plain text.+</P+><P+>Error messages+ during parsing and entity resolving are added as warning nodes into the resulting tree.+</P+><P+>The warnings are issued, if the 1. parameter noWarnings is set to True,+ afterwards all are removed from the resulting tree.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArunHtmlParser"+></A+><B+>runHtmlParser</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+>The pure HTML parser, usually called via <TT+><A HREF="Text-XML-HXT-Parser-HtmlParser.html#v%3AparseHtmlDoc"+>parseHtmlDoc</A+></TT+>.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Parser-HtmlParsec.html"+>Text.XML.HXT.Parser.HtmlParsec</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-Parser-MainFunctions.html view
@@ -0,0 +1,711 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.MainFunctions</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/MainFunctions.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.MainFunctions</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Simple parse functions.+</P+><P+>Version : $Id: MainFunctions.hs,v 1.2 2004<EM+>11</EM+>20 16:53:15 hxml Exp $+</P+><P+>the main building blocks for an application.+ this module exports complex filters and functions for+ common tasks for input and parsing, output and option handling.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXmlDocument"+>getXmlDocument</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; IO (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+>, Int)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AputXmlDocument"+>putXmlDocument</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; IO (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+>, Int)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseDocument"+>parseDocument</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AwriteDocument"+>writeDocument</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXmlDocument"+></A+><B+>getXmlDocument</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; IO (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+>, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+>, Int)</TD+></TR+><TR+><TD CLASS="doc"+><P+>convenient function for reading a XML document without+ dealing with state monads, error messages collection and other details+</P+><P+>getXmlDocument calls <TT+><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AparseDocument"+>parseDocument</A+></TT+> with the list of parsing options+ and an url or filename as document source.+</P+><P+>result is a triple+</P+><UL+><LI+> the resulting document tree with a root node containing all+   meta info about the document (options, status info, http header, ...)+</LI+><LI+> the list of errors and warnings+</LI+><LI+> the error level: one of <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_ok"+>c_ok</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_warn"+>c_warn</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"+>c_err</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_fatal"+>c_fatal</A+></TT+>+</LI+></UL+><P+>example for input (see also example in <TT+><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AputXmlDocument"+>putXmlDocument</A+></TT+> and example in <TT+><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AwriteDocument"+>writeDocument</A+></TT+>)+</P+><PRE+> main :: IO ()+ main+   = do+     (res, errs, rc) &lt;- getXmlDocument [] &quot;test.xml&quot;+     if rc &gt;= c_err+       then issueErrors errs+       else processTree res++ issueErrors :: XmlTrees -&gt; IO ()++ processTree :: XmlTree  -&gt; IO ()+</PRE+><P+>for options see <TT+><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AparseDocument"+>parseDocument</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_collect_errors"+>a_collect_errors</A+></TT+> is set implicitly+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AputXmlDocument"+></A+><B+>putXmlDocument</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; IO (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+>, Int)</TD+></TR+><TR+><TD CLASS="doc"+><P+>the inverse operation to <TT+><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AgetXmlDocument"+>getXmlDocument</A+></TT+>+</P+><P+>writes a complete document tree to a file, writing can be+ controlled by options, the real work is done with filter <TT+><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AwriteDocument"+>writeDocument</A+></TT+>.+ useful options are the options of <TT+><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AwriteDocument"+>writeDocument</A+></TT+>.+</P+><P+>result is a pair: 1.part is a list of error messages, 2. part is the return code,+ the status info of the write filter+</P+><P+>this filter is useful, when processing XML in an arbitray context in the IO monad+</P+><P+>an example main program for such an application is:+</P+><PRE+> main :: IO ()+ main+   = do+     (input, readErrs, rc) &lt;- getXmlDocument [...] &quot;test.xml&quot;+     if rc &gt;= c_err+       then issueErrors readErrs+       else processTree input++ processTree :: XmlTree -&gt; IO ()+ processTree t+   = let res = computeNewTree input+     in do+        (writeErrs, rc2) &lt;- putXmlDocument [...] &quot;out.xml&quot; res+        if rc2 &gt;= c_err+          then issueErrors writeErrs+          else return ()++ issueErrors :: XmlTrees -&gt; IO ()++ computeNewTree :: XmlTree -&gt; XmlTree+</PRE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseDocument"+></A+><B+>parseDocument</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+><P+>the main parsing filter+</P+><P+>this filter can be configured by an option list, a list of+ option name, option value pairs.+ the input tree must be a possibly empty document root tree.+ all the options are stored as attributes in this root node to control processing.+</P+><P+>available options:+</P+><UL+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_html"+>a_parse_html</A+></TT+>: use HTML parser, else use XML parser (default)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate"+>a_validate</A+></TT+> : validate document (default), else skip validation+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_check_namespaces"+>a_check_namespaces</A+></TT+> : check namespaces, else skip namespace processing (default)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_canonicalize"+>a_canonicalize</A+></TT+> : canonicalize document (default), else skip canonicalization+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_preserve_comment"+>a_preserve_comment</A+></TT+> : preserve comments during canonicalization, else remove comments (default)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_remove_whitespace"+>a_remove_whitespace</A+></TT+> : remove all whitespace, used for document indentation, else skip this step (default)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_indent"+>a_indent</A+></TT+> : indent document by inserting whitespace, else skip this step (default)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_warnings"+>a_issue_warnings</A+></TT+> : issue warnings, when parsing HTML (default), else ignore HTML parser warnings+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_errors"+>a_issue_errors</A+></TT+> : issue all error messages on stderr (default), or ignore all error messages+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_collect_errors"+>a_collect_errors</A+></TT+> : all error messages are collected during processing and appended to the result document+ 			  for further processing within the calling modules+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_trace"+>a_trace</A+></TT+> : trace level: values: 0 -4+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_proxy"+>a_proxy</A+></TT+> : proxy for http access, e.g. www-cache:3128+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_use_curl"+>a_use_curl</A+></TT+> : for http access via external programm curl, default is native HTTP access+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_options_curl"+>a_options_curl</A+></TT+> : more options for external program curl+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_source"+>a_source</A+></TT+> : the document source url+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_encoding"+>a_encoding</A+></TT+> : default document encoding (<TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf8"+>utf8</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisoLatin1"+>isoLatin1</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AusAscii"+>usAscii</A+></TT+>, ...)+</LI+></UL+><P+>examples:+</P+><PRE+> parseDocument [ (a_source,   &quot;test.xml&quot;)+               , (a_validate, &quot;0&quot;)+               , (a_encoding, isoLatin1)+               ] emptyRoot+</PRE+><P+>reads document &quot;test.xml&quot; without validation and default encoding <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisoLatin1"+>isoLatin1</A+></TT+>+</P+><PRE+> parseDocument [ (a_source,         &quot;http://www.haskell.org/&quot;)+               , (a_parse_html,     &quot;1&quot;)+               , (a_proxy,          &quot;www-cache:3128&quot;)+               , (a_curl,           &quot;1&quot;)+               , (a_issue_warnings, &quot;0&quot;)+               ] emptyRoot+</PRE+><P+>reads Haskell homepage with HTML parser ignoring any warnings and with http access via external program curl and proxy &quot;www-cache&quot; at port 3128+</P+><PRE+> parseDocument [ (a_source,            &quot;http://www.w3c.org/&quot;)+               , (a_parse_html,        &quot;0&quot;)                       -- default+               , (a_validate,          &quot;1&quot;)                       -- default+               , (a_check_namespace,   &quot;1&quot;)+               , (a_remove_whitespace, &quot;1&quot;)+               , (a_trace,             &quot;2&quot;)+               ] emptyRoot+</PRE+><P+>read w3c home page, validate and chech namespaces, remove whitespace between tags, trace activities with level 2+</P+><PRE+> parseDocument [ (a_source,   &quot;test.xml&quot;)+               , (a_validate,        &quot;1&quot;)+               , (a_check_namespace, &quot;1&quot;)+               , (a_collect_errors,  &quot;1&quot;)+               , (a_issue_errors,    &quot;0&quot;)+               ] emptyRoot+</PRE+><P+>reads file &quot;test.xml&quot;, validates it, checks namespaces, does not issue any erros+ but collects errors and appends the list of errors to the single element list for the document.+ this enables the calling application to define own error handlers.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AwriteDocument"+></A+><B+>writeDocument</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+><P+>the main filter for writing documents+</P+><P+>this filter can be configured by an option list like <TT+><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AgetXmlDocument"+>getXmlDocument</A+></TT+>+</P+><P+>available options are+</P+><UL+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_indent"+>a_indent</A+></TT+> : indent document for readability, (default: no indentation)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_remove_whitespace"+>a_remove_whitespace</A+></TT+> : remove all redundant whitespace for shorten text (default: no removal)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_file"+>a_output_file</A+></TT+> : destination file for document, default is &quot;-&quot; for stdout+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_encoding"+>a_output_encoding</A+></TT+> : encoding of document, default is <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_encoding"+>a_encoding</A+></TT+> or <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf8"+>utf8</A+></TT+>+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_xml"+>a_output_xml</A+></TT+> : (default) issue XML: quote special XML chars &gt;,&lt;,&quot;,',&amp;+                    add XML processing instruction+                    and encode document with respect to <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_encoding"+>a_output_encoding</A+></TT+>,+                    if explizitly switched of, the plain text is issued, this is useful+                    for non XML output, e.g. generated Haskell code, LaTex, Java, ...+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_show_tree"+>a_show_tree</A+></TT+> : show tree representation of document (for debugging)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_show_haskell"+>a_show_haskell</A+></TT+> : show Haskell representaion of document (for debugging)+</LI+><LI+> <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_errors"+>a_issue_errors</A+></TT+>, <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_collect_errors"+>a_collect_errors</A+></TT+> : see <TT+><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AparseDocument"+>parseDocument</A+></TT+>+</LI+></UL+><P+>a typical main program running in the XmlState monad+  has the following structure:+</P+><PRE+>+ main :: IO ()+ main+     = do+       argv &lt;- getArgs                                              -- get the commandline arguments+       (inp, outp, options) &lt;- cmdlineOpts argv                     -- and evaluate them, return a key-value list+                                                                    -- and input and output+       res  &lt;- run' $ application inp outp options $ emptyRoot      -- run the application+ +       exitWith (if null res+                 then ExitFailure (-1)+                 else exitSuccess+                )++ application :: String -&gt; String -&gt; Attributes -&gt; XmlStateFilter ()+ application inp outp al+   = parseDocument (al ++ [(a_source, inp)])                        -- set options and source+     .&gt;&gt;                                                            -- and parse document+     processDocument                                                -- the hard work+     .&gt;&gt;+     writeDocument [(a_output_file, outp)]                          -- issue results+     .&gt;&gt;+     checkStatus                                                    -- check errors++</PRE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandler.html view
@@ -0,0 +1,104 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.ProtocolHandler</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandler.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.ProtocolHandler</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetProtocolHandler"+></A+><B+>getProtocolHandler</B+> :: String -&gt; URI -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerFile.html view
@@ -0,0 +1,104 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.ProtocolHandlerFile</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandlerFile.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.ProtocolHandlerFile</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetFileContents"+></A+><B+>getFileContents</B+> :: URI -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html view
@@ -0,0 +1,104 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.ProtocolHandlerHttpCurl</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandlerHttpCurl.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.ProtocolHandlerHttpCurl</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetHttpContentsWithCurl"+></A+><B+>getHttpContentsWithCurl</B+> :: URI -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html view
@@ -0,0 +1,104 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.ProtocolHandlerHttpNative</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandlerHttpNative.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.ProtocolHandlerHttpNative</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetHttpContentsWithHttp"+></A+><B+>getHttpContentsWithHttp</B+> :: URI -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html view
@@ -0,0 +1,104 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.ProtocolHandlerHttpNativeOrCurl</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandlerHttpNativeOrCurl.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.ProtocolHandlerHttpNativeOrCurl</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetHttpContentsNativeOrWithCurl"+></A+><B+>getHttpContentsNativeOrWithCurl</B+> :: URI -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerUtil.html view
@@ -0,0 +1,102 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.ProtocolHandlerUtil</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandlerUtil.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.ProtocolHandlerUtil</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseContentType"+></A+><B+>parseContentType</B+> :: Parser [(String, String)]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-Parser-XmlCharParser.html view
@@ -0,0 +1,338 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.XmlCharParser</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlCharParser.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.XmlCharParser</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>UTF-8 character parser and simple XML token parsers+</P+><P+>Version : $Id: XmlCharParser.hs,v 1.2 2005<EM+>05</EM+>31 16:01:12 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlChar"+>xmlChar</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlNameChar"+>xmlNameChar</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlNameStartChar"+>xmlNameStartChar</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlNCNameChar"+>xmlNCNameChar</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlNCNameStartChar"+>xmlNCNameStartChar</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlLetter"+>xmlLetter</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlSpaceChar"+>xmlSpaceChar</A+> :: GenParser Char state Char</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlChar"+></A+><B+>xmlChar</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+></TD+></TR+><TR+><TD CLASS="doc"+>parse a single Unicode character+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlNameChar"+></A+><B+>xmlNameChar</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+></TD+></TR+><TR+><TD CLASS="doc"+>parse a XML name character+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlNameStartChar"+></A+><B+>xmlNameStartChar</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+></TD+></TR+><TR+><TD CLASS="doc"+>parse a XML name start character+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlNCNameChar"+></A+><B+>xmlNCNameChar</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+></TD+></TR+><TR+><TD CLASS="doc"+>parse a XML NCName character+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlNCNameStartChar"+></A+><B+>xmlNCNameStartChar</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+></TD+></TR+><TR+><TD CLASS="doc"+>parse a XML NCName start character+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlLetter"+></A+><B+>xmlLetter</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Unicode</A+></TD+></TR+><TR+><TD CLASS="doc"+>parse a XML letter character+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlSpaceChar"+></A+><B+>xmlSpaceChar</B+> :: GenParser Char state Char</TD+></TR+><TR+><TD CLASS="doc"+><P+>White Space (2.3)+</P+><P+>end of line handling (2.11)+ #x0D and #x0D#x0A are mapped to #x0A+ is done in XmlInput before parsing+ otherwise #x0D in internal parsing, e.g. for entities would normalize,+ would be transformed+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-Parser-XmlDTDParser.html view
@@ -0,0 +1,330 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.XmlDTDParser</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlDTDParser.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.XmlDTDParser</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: XmlDTDParser.hs,v 1.6 2005<EM+>09</EM+>02 17:09:39 hxml Exp $+</P+><P+>Parsec parser for DTD declarations for ELEMENT, ATTLIST, ENTITY and NOTATION declarations+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseXmlDTDdecl"+>parseXmlDTDdecl</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseXmlDTDdeclPart"+>parseXmlDTDdeclPart</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseXmlDTDEntityValue"+>parseXmlDTDEntityValue</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AelementDecl"+>elementDecl</A+> :: SParser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AattlistDecl"+>attlistDecl</A+> :: SParser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AentityDecl"+>entityDecl</A+> :: SParser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnotationDecl"+>notationDecl</A+> :: SParser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlDTDdecl"+></A+><B+>parseXmlDTDdecl</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>parse a tokenized DTD declaration represented by a DTD tree.+ The content is represented by the children containing text and parameter entity reference nodes.+ The parameter entity reference nodes contain their value in the children list, consisting of text+ and possibly again parameter entity reference nodes. This structure is build by the parameter entity+ substitution.+ Output is again a DTD declaration node, but this time completely parsed and ready for further DTD processing+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlDTDdeclPart"+></A+><B+>parseXmlDTDdeclPart</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlDTDEntityValue"+></A+><B+>parseXmlDTDEntityValue</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AelementDecl"+></A+><B+>elementDecl</B+> :: SParser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AattlistDecl"+></A+><B+>attlistDecl</B+> :: SParser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AentityDecl"+></A+><B+>entityDecl</B+> :: SParser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnotationDecl"+></A+><B+>notationDecl</B+> :: SParser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-Parser-XmlDTDTokenParser.html view
@@ -0,0 +1,240 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.XmlDTDTokenParser</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlDTDTokenParser.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.XmlDTDTokenParser</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: XmlDTDTokenParser.hs,v 1.4 2005<EM+>09</EM+>02 17:09:39 hxml Exp $+</P+><P+>Parsec parser for tokenizing DTD declarations for ELEMENT, ATTLIST, ENTITY and NOTATION+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdtdDeclTokenizer"+></A+><B+>dtdDeclTokenizer</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdtdDeclStart"+></A+><B+>dtdDeclStart</B+> :: GenParser Char state (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>DTDElem</A+>, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A+>)</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdtdDeclEnd"+></A+><B+>dtdDeclEnd</B+> :: GenParser Char state ()</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdtdToken"+></A+><B+>dtdToken</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ApeReference"+></A+><B+>peReference</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AattrValue"+></A+><B+>attrValue</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdtdChars"+></A+><B+>dtdChars</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Apercent"+></A+><B+>percent</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-Parser-XmlInput.html view
@@ -0,0 +1,536 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.XmlInput</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlInput.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.XmlInput</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXmlContents"+>getXmlContents</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXmlEntityContents"+>getXmlEntityContents</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetUrlContents"+>getUrlContents</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetContentLength"+>getContentLength</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AguessDocEncoding"+>guessDocEncoding</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ArunInLocalURIContext"+>runInLocalURIContext</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ArunInNewURIContext"+>runInNewURIContext</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetBaseURI"+>getBaseURI</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsetBaseURI"+>setBaseURI</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetAbsolutURI"+>getAbsolutURI</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisStandaloneDocument"+>isStandaloneDocument</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state Bool</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXmlContents"+></A+><B+>getXmlContents</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>filter for reading the content of a XML document+</P+><P+>input is a root node with the source as an attibute+ the text is read, the encoding scheme is parsed and selected+ and the input is translated into the internal UTF-8 string representation+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXmlEntityContents"+></A+><B+>getXmlEntityContents</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>filter for reading the content of an external XML entity+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetXmlContents"+>getXmlContents</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetUrlContents"+></A+><B+>getUrlContents</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>the hard io operations+</P+><P+>for reading a file or accessing a document via http+ input must be a root node with a <TT+>source</TT+> attribute specifying the URI+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetContentLength"+></A+><B+>getContentLength</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>compute the length of the data for a document read previously+ by a call of 'getUrlContents. The result is stored as an attribute+ value in the document root node. the attribute name is <TT+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_contentLength"+>a_contentLength</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AguessDocEncoding"+></A+><B+>guessDocEncoding</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>guessEncoding uses encoding attribute and content+ to determine the encoding scheme.+</P+><P+>it's assumed that an encoding spec has been tried to parse before guessing the encoding.+</P+><P+>UTF-8 is the default encoding+</P+><P+>other supported encodings are ISO-8859-1 (also known as ISO-Latin-1),+ US-ASCII, UTF-16 or ISO-10646-UCS-2, UTF-16BE, UTF-16LE+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArunInLocalURIContext"+></A+><B+>runInLocalURIContext</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>filter command for saving and restoring+ the base URI+</P+><UL+><LI+> 1.parameter f :  the filter that possible changes the base URI+</LI+><LI+> returns : a filter with the same effect as f, that restores the base URI after application of f+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ArunInNewURIContext"+></A+><B+>runInNewURIContext</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+>filter command for running an action in a new URI context+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetBaseURI"+></A+><B+>getBaseURI</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state String</TD+></TR+><TR+><TD CLASS="doc"+><P+>read the current base URI+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AsetBaseURI"+>setBaseURI</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsetBaseURI"+></A+><B+>setBaseURI</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state ()</TD+></TR+><TR+><TD CLASS="doc"+><P+>set the base URI, all other URIs are handled relative to this base URI+</P+><P+>the default base URI is <TT+>file:///&lt;current-working-dir&gt;/</TT+>+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetBaseURI"+>getBaseURI</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetAbsolutURI"+></A+><B+>getAbsolutURI</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state String</TD+></TR+><TR+><TD CLASS="doc"+><P+>transform an URI into an absolut URI using the current base URI+</P+><UL+><LI+> 1.parameter uri :  the URI as string+</LI+><LI+> returns : the absolut URI as string or &quot;&quot; in case of an error+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisStandaloneDocument"+></A+><B+>isStandaloneDocument</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>XState</A+> state Bool</TD+></TR+><TR+><TD CLASS="doc"+>predicate for testing the standalone document attribute+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-Parser-XmlOutput.html view
@@ -0,0 +1,462 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.XmlOutput</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlOutput.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.XmlOutput</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>output functions+ implemented as filer+</P+><P+>Version : $Id: XmlOutput.hs,v 1.3 2005<EM+>04</EM+>14 12:52:53 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AputXmlDoc"+>putXmlDoc</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AputXmlDocToFile"+>putXmlDocToFile</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AputXmlTree"+>putXmlTree</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AputXmlSource"+>putXmlSource</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhPutXmlDoc"+>hPutXmlDoc</A+> :: Handle -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhPutXmlTree"+>hPutXmlTree</A+> :: Handle -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AhPutXmlSource"+>hPutXmlSource</A+> :: Handle -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtraceF"+>traceF</A+> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtraceMsg"+>traceMsg</A+> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtraceTree"+>traceTree</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtraceSource"+>traceSource</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AputXmlDoc"+></A+><B+>putXmlDoc</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>document output for standard output+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AhPutXmlDoc"+>hPutXmlDoc</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AputXmlDocToFile"+></A+><B+>putXmlDocToFile</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>document output on a given file name+</P+><P+>Result is the input document+</P+><P+>see also : <TT+><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AhPutXmlDoc"+>hPutXmlDoc</A+></TT+>, <TT+><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AputXmlDoc"+>putXmlDoc</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AputXmlTree"+></A+><B+>putXmlTree</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AputXmlSource"+></A+><B+>putXmlSource</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhPutXmlDoc"+></A+><B+>hPutXmlDoc</B+> :: Handle -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>document output for arbitrary files.+</P+><P+>Result is the input document+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhPutXmlTree"+></A+><B+>hPutXmlTree</B+> :: Handle -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+>output of tree representation for trace+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AhPutXmlSource"+></A+><B+>hPutXmlSource</B+> :: Handle -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+>output of text representation for trace+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtraceF"+></A+><B+>traceF</B+> :: Int -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtraceMsg"+></A+><B+>traceMsg</B+> :: Int -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtraceTree"+></A+><B+>traceTree</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtraceSource"+></A+><B+>traceSource</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-Parser-XmlParsec.html view
@@ -0,0 +1,1206 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.XmlParsec</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlParsec.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.XmlParsec</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: XmlParsec.hs,v 1.14 2005<EM+>09</EM+>02 17:09:39 hxml Exp $+</P+><P+>Xml Parsec parser with pure filter interface+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AcharData"+>charData</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcharData%27"+>charData'</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Acomment"+>comment</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3ApI"+>pI</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcDSect"+>cDSect</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Adocument"+>document</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Adocument%27"+>document'</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aprolog"+>prolog</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxMLDecl"+>xMLDecl</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxMLDecl%27"+>xMLDecl'</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AversionInfo"+>versionInfo</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Amisc"+>misc</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Adoctypedecl"+>doctypedecl</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Amarkupdecl"+>markupdecl</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsDDecl"+>sDDecl</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Aelement"+>element</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Acontent"+>content</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcontentWithTextDecl"+>contentWithTextDecl</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtextDecl"+>textDecl</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AencodingDecl"+>encodingDecl</A+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Axread"+>xread</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseXmlAttrValue"+>parseXmlAttrValue</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseXmlContent"+>parseXmlContent</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseXmlDocEncodingSpec"+>parseXmlDocEncodingSpec</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseXmlDocument"+>parseXmlDocument</A+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseXmlDTDPart"+>parseXmlDTDPart</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseXmlEncodingSpec"+>parseXmlEncodingSpec</A+> :: Parser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseXmlEntityEncodingSpec"+>parseXmlEntityEncodingSpec</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseXmlGeneralEntityValue"+>parseXmlGeneralEntityValue</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseXmlPart"+>parseXmlPart</A+> :: Parser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseXmlText"+>parseXmlText</A+> :: Parser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseNMToken"+>parseNMToken</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseName"+>parseName</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AremoveEncodingSpec"+>removeEncodingSpec</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AsubstXmlEntities"+>substXmlEntities</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxmlEntities"+>xmlEntities</A+> :: [(String, Int)]</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcharData"+></A+><B+>charData</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcharData%27"+></A+><B+>charData'</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Acomment"+></A+><B+>comment</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ApI"+></A+><B+>pI</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcDSect"+></A+><B+>cDSect</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Adocument"+></A+><B+>document</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Adocument%27"+></A+><B+>document'</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aprolog"+></A+><B+>prolog</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxMLDecl"+></A+><B+>xMLDecl</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxMLDecl%27"+></A+><B+>xMLDecl'</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AversionInfo"+></A+><B+>versionInfo</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Amisc"+></A+><B+>misc</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Adoctypedecl"+></A+><B+>doctypedecl</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Amarkupdecl"+></A+><B+>markupdecl</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsDDecl"+></A+><B+>sDDecl</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aelement"+></A+><B+>element</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Acontent"+></A+><B+>content</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcontentWithTextDecl"+></A+><B+>contentWithTextDecl</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtextDecl"+></A+><B+>textDecl</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AencodingDecl"+></A+><B+>encodingDecl</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Axread"+></A+><B+>xread</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>the inverse function to <TT+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axshow"+>xshow</A+></TT+>, (for XML content).+</P+><P+>the string parameter is parsed with the XML content parser.+ result is the list of trees or in case of an error a single element list with the+ error message as node. No entity or character subtitution is done.+ For substitution of predefined XML entities <TT+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AsubstXmlEntities"+>substXmlEntities</A+></TT+> can be used.+</P+><P+>see also: <TT+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlContent"+>parseXmlContent</A+></TT+>, <TT+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AsubstXmlEntities"+>substXmlEntities</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlAttrValue"+></A+><B+>parseXmlAttrValue</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Parser for attribute values+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlContent"+></A+><B+>parseXmlContent</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>the filter version of <TT+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Axread"+>xread</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlDocEncodingSpec"+></A+><B+>parseXmlDocEncodingSpec</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlDocument"+></A+><B+>parseXmlDocument</B+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlDTDPart"+></A+><B+>parseXmlDTDPart</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Parser for parts of a DTD+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlEncodingSpec"+></A+><B+>parseXmlEncodingSpec</B+> :: Parser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>try to parse a xml encoding spec.+</P+><UL+><LI+> 1.parameter encParse :  the parser for the encoding decl+</LI+><LI+> 2.parameter root :  a document root+</LI+><LI+> returns : the same tree, but with an additional+			  attribute <A HREF="encoding.html"+>encoding</A+> in the root node+			  in case of a valid encoding spec+			  else the unchanged tree+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlEntityEncodingSpec"+></A+><B+>parseXmlEntityEncodingSpec</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlGeneralEntityValue"+></A+><B+>parseXmlGeneralEntityValue</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Parser for general entites+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlPart"+></A+><B+>parseXmlPart</B+> :: Parser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>general parser for parsing arbitray parts of a XML document+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlText"+></A+><B+>parseXmlText</B+> :: Parser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>a more general version of <TT+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlContent"+>parseXmlContent</A+></TT+>.+ The parser to be used and the context are extra parameter+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseNMToken"+></A+><B+>parseNMToken</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Parser for NMTOKENs+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseName"+></A+><B+>parseName</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Parser for XML names+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveEncodingSpec"+></A+><B+>removeEncodingSpec</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsubstXmlEntities"+></A+><B+>substXmlEntities</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Filter for substitution of all occurences the predefined XML entites quot, amp, lt, gt, apos+ by equivalent character references+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxmlEntities"+></A+><B+>xmlEntities</B+> :: [(String, Int)]</TD+></TR+><TR+><TD CLASS="doc"+><P+>list of predefined XML entity names and their unicode values+</P+><P+>used by <TT+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AsubstXmlEntities"+>substXmlEntities</A+></TT+>+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-Parser-XmlParser.html view
@@ -0,0 +1,189 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.XmlParser</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlParser.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.XmlParser</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Xml Parser: the main parse filter +</P+><P+>Version : $Id: XmlParser.hs,v 1.5 2005<EM+>06</EM+>06 15:57:19 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Parser-XmlParsec.html"+>Text.XML.HXT.Parser.XmlParsec</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Parser-XmlTokenParser.html"+>Text.XML.HXT.Parser.XmlTokenParser</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseXmlDoc"+>parseXmlDoc</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Parser-XmlParsec.html"+>Text.XML.HXT.Parser.XmlParsec</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Parser-XmlTokenParser.html"+>Text.XML.HXT.Parser.XmlTokenParser</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXmlDoc"+></A+><B+>parseXmlDoc</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> a</TD+></TR+><TR+><TD CLASS="doc"+>The monadic parser for a whole document.+ input must be a root node with a single text child.+ Error messages are issued and global error state is set.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-Parser-XmlTokenParser.html view
@@ -0,0 +1,788 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser.XmlTokenParser</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlTokenParser.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser.XmlTokenParser</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: XmlTokenParser.hs,v 1.3 2005<EM+>09</EM+>02 17:09:39 hxml Exp $+</P+><P+>Parsec parser for XML tokens+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AallBut"+></A+><B+>allBut</B+> :: (GenParser Char state Char -&gt; GenParser Char state String) -&gt; String -&gt; GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AallBut1"+></A+><B+>allBut1</B+> :: (GenParser Char state Char -&gt; GenParser Char state String) -&gt; (Char -&gt; Bool) -&gt; String -&gt; GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AasciiLetter"+></A+><B+>asciiLetter</B+> :: GenParser Char state Char</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AattrValue"+></A+><B+>attrValue</B+> :: GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Abar"+></A+><B+>bar</B+> :: GenParser Char state ()</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcharRef"+></A+><B+>charRef</B+> :: GenParser Char state Int</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Acomma"+></A+><B+>comma</B+> :: GenParser Char state ()</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Adq"+></A+><B+>dq</B+> :: GenParser Char state Char</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AencName"+></A+><B+>encName</B+> :: GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AentityRef"+></A+><B+>entityRef</B+> :: GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AentityValue"+></A+><B+>entityValue</B+> :: GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aeq"+></A+><B+>eq</B+> :: GenParser Char state ()</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Agt"+></A+><B+>gt</B+> :: GenParser Char state Char</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Akeyword"+></A+><B+>keyword</B+> :: String -&gt; GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Akeywords"+></A+><B+>keywords</B+> :: [String] -&gt; GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Alpar"+></A+><B+>lpar</B+> :: GenParser Char state ()</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Alt"+></A+><B+>lt</B+> :: GenParser Char state Char</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aname"+></A+><B+>name</B+> :: GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Anames"+></A+><B+>names</B+> :: GenParser Char state [String]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AncName"+></A+><B+>ncName</B+> :: GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Anmtoken"+></A+><B+>nmtoken</B+> :: GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Anmtokens"+></A+><B+>nmtokens</B+> :: GenParser Char state [String]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ApeReference"+></A+><B+>peReference</B+> :: GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ApubidLiteral"+></A+><B+>pubidLiteral</B+> :: GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AqName"+></A+><B+>qName</B+> :: GenParser Char state (String, String)</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aquoted"+></A+><B+>quoted</B+> :: GenParser Char state a -&gt; GenParser Char state a</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Areference"+></A+><B+>reference</B+> :: GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Arpar"+></A+><B+>rpar</B+> :: GenParser Char state ()</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Asemi"+></A+><B+>semi</B+> :: GenParser Char state Char</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aseparator"+></A+><B+>separator</B+> :: Char -&gt; GenParser Char state ()</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsingleChar"+></A+><B+>singleChar</B+> :: String -&gt; GenParser Char state Char</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsingleChars"+></A+><B+>singleChars</B+> :: String -&gt; GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AskipS"+></A+><B+>skipS</B+> :: GenParser Char state ()</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AskipS0"+></A+><B+>skipS0</B+> :: GenParser Char state ()</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsPace"+></A+><B+>sPace</B+> :: GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsPace0"+></A+><B+>sPace0</B+> :: GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Asq"+></A+><B+>sq</B+> :: GenParser Char state Char</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsystemLiteral"+></A+><B+>systemLiteral</B+> :: GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AversionNum"+></A+><B+>versionNum</B+> :: GenParser Char state String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AconcRes"+></A+><B+>concRes</B+> :: GenParser Char state [[a]] -&gt; GenParser Char state [a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AmkList"+></A+><B+>mkList</B+> :: GenParser Char state a -&gt; GenParser Char state [a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnameT"+></A+><B+>nameT</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnmtokenT"+></A+><B+>nmtokenT</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AentityValueT"+></A+><B+>entityValueT</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AentityTokensT"+></A+><B+>entityTokensT</B+> :: String -&gt; GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AentityCharT"+></A+><B+>entityCharT</B+> :: String -&gt; GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AattrValueT"+></A+><B+>attrValueT</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AattrValueT%27"+></A+><B+>attrValueT'</B+> :: String -&gt; GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AreferenceT"+></A+><B+>referenceT</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcharRefT"+></A+><B+>charRefT</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AentityRefT"+></A+><B+>entityRefT</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3ApeReferenceT"+></A+><B+>peReferenceT</B+> :: GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AsingleCharsT"+></A+><B+>singleCharsT</B+> :: String -&gt; GenParser Char state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-Parser.html view
@@ -0,0 +1,193 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Parser</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Parser</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Simple parse functions.+</P+><P+>Version : $Id: Parser.hs,v 1.2 2006<EM+>11</EM+>09 20:27:42 hxml Exp $+</P+><P+>the <A HREF="main.html"+>main</A+> building blocks for an application.+ this module exports all important functions for parsing, validating and transforming XML.+ it also exports all basic datatypes and functions of the toolbox.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-DOM.html"+>Text.XML.HXT.DOM</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Parser-XmlParser.html"+>Text.XML.HXT.Parser.XmlParser</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Parser-HtmlParser.html"+>Text.XML.HXT.Parser.HtmlParser</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Parser-XmlInput.html"+>Text.XML.HXT.Parser.XmlInput</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Parser-XmlOutput.html"+>Text.XML.HXT.Parser.XmlOutput</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Parser-DTDProcessing.html"+>Text.XML.HXT.Parser.DTDProcessing</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Parser-MainFunctions.html"+>Text.XML.HXT.Parser.MainFunctions</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Validator-Validation.html"+>Text.XML.HXT.Validator.Validation</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-Validator-AttributeValueValidation.html view
@@ -0,0 +1,210 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Validator.AttributeValueValidation</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/AttributeValueValidation.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Validator.AttributeValueValidation</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>This module provides functions for validating attributes.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AcheckAttributeValue"+>checkAttributeValue</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AnormalizeAttributeValue"+>normalizeAttributeValue</A+> :: Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String -&gt; String</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcheckAttributeValue"+></A+><B+>checkAttributeValue</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Checks if the attribute value meets the lexical constraints of its type.+</P+><UL+><LI+> 1.parameter dtdPart :  the children of the <TT+>DOCTYPE</TT+> node+</LI+><LI+> 2.parameter attrDecl :  the declaration of the attribute from the DTD+</LI+><LI+> returns : a function which takes an element (XTag or XDTD ATTLIST),+                    checks if the attribute value meets the lexical constraints+                    of its type and returns a list of errors+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AnormalizeAttributeValue"+></A+><B+>normalizeAttributeValue</B+> :: Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; String -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>Normalizes an attribute value with respect to its type. (3.3.3 / p.29 in Spec)+</P+><UL+><LI+> 1.parameter attrDecl :  the declaration of the attribute from the DTD. Expected+                   is a list. If the list is empty, no declaration exists.+</LI+><LI+> 2.parameter value :  the attribute value to be normalized+</LI+><LI+> returns : the normalized value+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-Validator-DTDValidation.html view
@@ -0,0 +1,189 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Validator.DTDValidation</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/DTDValidation.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Validator.DTDValidation</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>This module provides functions for validating the DTD of XML documents+ represented as XmlTree.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AremoveDoublicateDefs"+>removeDoublicateDefs</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateDTD"+>validateDTD</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveDoublicateDefs"+></A+><B+>removeDoublicateDefs</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Removes doublicate declarations from the DTD, which first declaration is+ binding. This is the case for ATTLIST and ENTITY declarations.+</P+><UL+><LI+> returns : A function that replaces the children of DOCTYPE nodes by a list+               where all multiple declarations are removed.+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateDTD"+></A+><B+>validateDTD</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Validate a DTD.+</P+><UL+><LI+> returns : a functions which takes the DTD subset of the XmlTree, checks+                  if the DTD is valid and returns a list of errors+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-Validator-DocTransformation.html view
@@ -0,0 +1,164 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Validator.DocTransformation</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/DocTransformation.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Validator.DocTransformation</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>This module provides functions for transforming XML documents represented as+ XmlTree with respect to its DTD.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3Atransform"+>transform</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Atransform"+></A+><B+>transform</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>filter for transforming the document.+</P+><UL+><LI+> 1.parameter dtdPart :  the DTD subset (Node <TT+>DOCTYPE</TT+>) of the XmlTree+</LI+><LI+> 2.parameter doc :  the document subset of the XmlTree+</LI+><LI+> returns : a list of errors+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-Validator-DocValidation.html view
@@ -0,0 +1,164 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Validator.DocValidation</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/DocValidation.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Validator.DocValidation</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>This module provides functions for validating XML Documents represented as+ XmlTree.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateDoc"+>validateDoc</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateDoc"+></A+><B+>validateDoc</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Validate a document.+</P+><UL+><LI+> 1.parameter dtdPart :  the DTD subset (Node <TT+>DOCTYPE</TT+>) of the XmlTree+</LI+><LI+> 2.parameter doc :  the document subset of the XmlTree+</LI+><LI+> returns : a list of errors+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-Validator-IdValidation.html view
@@ -0,0 +1,167 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Validator.IdValidation</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/IdValidation.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Validator.IdValidation</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>This module provides functions for checking special ID<EM+>IDREF</EM+>IDREFS constraints.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateIds"+>validateIds</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateIds"+></A+><B+>validateIds</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Perform the validation of the ID<EM+>IDREF</EM+>IDREFS constraints.+</P+><UL+><LI+> 1.parameter dtdPart :  the DTD subset (Node <TT+>DOCTYPE</TT+>) of the XmlTree+</LI+><LI+> 2.parameter doc :  the document subset of the XmlTree+</LI+><LI+> returns : a list of errors+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-Validator-RE.html view
@@ -0,0 +1,979 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Validator.RE</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/RE.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Validator.RE</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>A module for regular expression matching based on derivatives of regular expressions.+</P+><P+>The code was taken from Joe English (<A HREF="http://www.flightlab.com/~joe/sgml/validate.html"+>http://www.flightlab.com/~joe/sgml/validate.html</A+>).+ Tested and extended by Martin Schmidt.+</P+><P+>Further references for the algorithm:+</P+><P+>Janusz A. Brzozowski.+</P+><P+>Derivatives of Regular Expressions. Journal of the ACM, Volume 11, Issue 4, 1964. +</P+><P+>Mark Hopkins.+</P+><P+>Regular Expression Package. Posted to comp.compilers, 1994.+      Available per FTP at <A HREF="ftp://iecc.com/pub/file/regex.tar.gz"+>ftp://iecc.com/pub/file/regex.tar.gz</A+>.+</P+><P+>Version : $Id: RE.hs,v 1.1 2004<EM+>09</EM+>02 19:12:03 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>= <A HREF="#v%3ARE_ZERO"+>RE_ZERO</A+> String</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ARE_UNIT"+>RE_UNIT</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ARE_SYM"+>RE_SYM</A+> a</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ARE_DOT"+>RE_DOT</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ARE_REP"+>RE_REP</A+> (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ARE_PLUS"+>RE_PLUS</A+> (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ARE_OPT"+>RE_OPT</A+> (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ARE_SEQ"+>RE_SEQ</A+> (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a) (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ARE_ALT"+>RE_ALT</A+> (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a) (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_unit"+>re_unit</A+> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_zero"+>re_zero</A+> :: String -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_sym"+>re_sym</A+> :: a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_rep"+>re_rep</A+> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_plus"+>re_plus</A+> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_opt"+>re_opt</A+> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_seq"+>re_seq</A+> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_alt"+>re_alt</A+> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_dot"+>re_dot</A+> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcheckRE"+>checkRE</A+> :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Amatches"+>matches</A+> :: (Eq a, Show a) =&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; [a] -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Anullable"+>nullable</A+> :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprintRE"+>printRE</A+> :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; String</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3ARE"+></A+><B+>RE</B+> a</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>Data type for regular expressions.+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ARE_ZERO"+></A+><B+>RE_ZERO</B+> String</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ARE_UNIT"+></A+><B+>RE_UNIT</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ARE_SYM"+></A+><B+>RE_SYM</B+> a</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ARE_DOT"+></A+><B+>RE_DOT</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ARE_REP"+></A+><B+>RE_REP</B+> (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a)</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ARE_PLUS"+></A+><B+>RE_PLUS</B+> (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a)</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ARE_OPT"+></A+><B+>RE_OPT</B+> (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a)</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ARE_SEQ"+></A+><B+>RE_SEQ</B+> (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a) (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a)</TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ARE_ALT"+></A+><B+>RE_ALT</B+> (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a) (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a)</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:RE')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:RE" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Eq a =&gt; Eq (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+>Show a =&gt; Show (<A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_unit"+></A+><B+>re_unit</B+> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs a regular expression for an empty sequence.+</P+><UL+><LI+> returns : regular expression for an empty sequence+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_zero"+></A+><B+>re_zero</B+> :: String -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs a regular expression for an empty set.+</P+><UL+><LI+> 1.parameter errMsg :  error message+</LI+><LI+> returns : regular expression for an empty set+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_sym"+></A+><B+>re_sym</B+> :: a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs a regular expression for accepting a symbol+</P+><UL+><LI+> 1.parameter sym :  the symbol to be accepted+</LI+><LI+> returns : regular expression for accepting a symbol+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_rep"+></A+><B+>re_rep</B+> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs an optional repetition (*) of a regular expression+</P+><UL+><LI+> 1.parameter re_a :  regular expression to be repeted+</LI+><LI+> returns : new regular expression+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_plus"+></A+><B+>re_plus</B+> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs a repetition (+) of a regular expression+</P+><UL+><LI+> 1.parameter re_a :  regular expression to be repeted+</LI+><LI+> returns : new regular expression+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_opt"+></A+><B+>re_opt</B+> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs an option (?) of a regular expression+</P+><UL+><LI+> 1.parameter re_a :  regular expression to be optional+</LI+><LI+> returns : new regular expression+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_seq"+></A+><B+>re_seq</B+> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs a sequence (,) of two regular expressions+</P+><UL+><LI+> 1.parameter re_a :  first regular expression in sequence+</LI+><LI+> 2.parameter re_b :  second regular expression in sequence+</LI+><LI+> returns : new regular expression+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_alt"+></A+><B+>re_alt</B+> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs an alternative (|) of two regular expressions+</P+><UL+><LI+> 1.parameter re_a :  first regular expression of alternative+</LI+><LI+> 2.parameter re_b :  second regular expression of alternative+</LI+><LI+> returns : new regular expression+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_dot"+></A+><B+>re_dot</B+> :: <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs a regular expression for accepting any singel symbol+</P+><UL+><LI+> returns : regular expression for accepting any singel symbol+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcheckRE"+></A+><B+>checkRE</B+> :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>Checks if an input matched a regular expression. The function should be+ called after matches.+</P+><P+>Was the sentence used in <TT+>matches</TT+> in the language of the regular expression?+ -&gt; matches e s == s `in` L(e)?+</P+><UL+><LI+> 1.parameter re :  the derived regular expression+</LI+><LI+> returns : empty String if input matched the regular expression, otherwise+               an error message is returned+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Amatches"+></A+><B+>matches</B+> :: (Eq a, Show a) =&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; [a] -&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Derives a regular expression with respect to a sentence.+</P+><UL+><LI+> 1.parameter re :  regular expression+</LI+><LI+> 2.parameter s :  sentence to which the regular expression is applied+</LI+><LI+> returns : the derived regular expression+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Anullable"+></A+><B+>nullable</B+> :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+><P+>Checks if a regular expression matches the empty sequence.+</P+><P+>nullable e == [] `in` L(e)+</P+><P+>This check indicates if a regular expression fits to a sentence or not.+</P+><UL+><LI+> 1.parameter re :  regular expression to be checked+</LI+><LI+> returns : true if regular expression matches the empty sequence,+                otherwise false+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprintRE"+></A+><B+>printRE</B+> :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>RE</A+> a -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs a string representation of a regular expression.+</P+><UL+><LI+> 1.parameter re :  a regular expression+</LI+><LI+> returns : the string representation of the regular expression+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-Validator-Validation.html view
@@ -0,0 +1,187 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Validator.Validation</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/Validation.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Validator.Validation</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>This module provides a state filter as a main function for validating XML documents.+</P+><P+>The real validation is done with pure filters from module <TT+><A HREF="Text-XML-HXT-Validator.html#t%3AValidationFilter"+>ValidationFilter</A+></TT+>+</P+><P+>Author : .\artin Schmidt+ Version : $Id: Validation.hs,v 1.2 2004<EM+>11</EM+>23 15:50:23 hxml Exp $+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetValidatedDoc"+>getValidatedDoc</A+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Validator-ValidationFilter.html"+>Text.XML.HXT.Validator.ValidationFilter</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetValidatedDoc"+></A+><B+>getValidatedDoc</B+> :: <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>XmlStateFilter</A+> state</TD+></TR+><TR+><TD CLASS="doc"+><P+>monadic filter for validating and transforming a wellformed document.+</P+><P+>the <A HREF="main.html"+>main</A+> function for validation.+</P+><P+>the input tree must consist of a root node with a complete document and DTD.+ Result is the single element list containing same tree but tranformed with respect to the DTD,+ or, in case of errors, the root with an empty list of children+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-Validator-ValidationFilter.html"+>Text.XML.HXT.Validator.ValidationFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-Validator-ValidationFilter.html view
@@ -0,0 +1,337 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Validator.ValidationFilter</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/ValidationFilter.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Validator.ValidationFilter</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>This module provides functions for validating XML documents represented as+ XmlTree.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetDTDSubset"+>getDTDSubset</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Avalidate"+>validate</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateDTD"+>validateDTD</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AvalidateDoc"+>validateDoc</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AremoveDoublicateDefs"+>removeDoublicateDefs</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Atransform"+>transform</A+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetDTDSubset"+></A+><B+>getDTDSubset</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Avalidate"+></A+><B+>validate</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Main validation filter. Check if the DTD and the document are valid.+</P+><UL+><LI+> returns : a function which expects a complete document as XmlTree input+                     and returns a list of all errors found.+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateDTD"+></A+><B+>validateDTD</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Check if the DTD is valid.+</P+><UL+><LI+> returns : a function which expects an XmlTree from the parser as input+                     and returns a list of all errors found in the DTD.+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvalidateDoc"+></A+><B+>validateDoc</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Check if the document corresponds to the given DTD.+</P+><UL+><LI+> returns : a function which expects a complete document as XmlTree input+                     and returns a list of all errors found in the content part.+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremoveDoublicateDefs"+></A+><B+>removeDoublicateDefs</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Removes doublicate declarations from the DTD which first declaration is+ binding. This is the case for ATTLIST and ENTITY declarations.+</P+><UL+><LI+> returns : A function that replaces the children of DOCTYPE nodes by a list+               where all multiple declarations are removed.+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Atransform"+></A+><B+>transform</B+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>filter for transforming a document with respect to the given DTD.+</P+><P+>Validating parsers+ are expected to  normalize attribute values and add default values.+ This function should be called after a successful validation.+</P+><UL+><LI+> returns : a function which expects a complete XML document tree+                and returns the transformed XmlTree+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-Validator-XmlRE.html view
@@ -0,0 +1,718 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.Validator.XmlRE</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/XmlRE.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.Validator.XmlRE</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>A module for regular expression matching, adapted for XML DTDs.+</P+><P+>This module is based on the module RE.+</P+><P+>Author .\artin Schmidt+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcheckRE"+>checkRE</A+> :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Amatches"+>matches</A+> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AprintRE"+>printRE</A+> :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_unit"+>re_unit</A+> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_zero"+>re_zero</A+> :: String -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_sym"+>re_sym</A+> :: a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_rep"+>re_rep</A+> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_plus"+>re_plus</A+> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_opt"+>re_opt</A+> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_seq"+>re_seq</A+> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_alt"+>re_alt</A+> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Are_dot"+>re_dot</A+> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3ARE"+></A+><B+>RE</B+> a</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>Data type for regular expressions.+</TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:RE')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:RE" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Eq a =&gt; Eq (<A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a)</TD+></TR+><TR+><TD CLASS="decl"+>Show a =&gt; Show (<A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a)</TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcheckRE"+></A+><B+>checkRE</B+> :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>Checks if an input matched a regular expression. The function should be+ called after matches.+</P+><P+>Was the sentence used in <TT+>matches</TT+> in the language of the regular expression?+ -&gt; matches e s == s `in` L(e)?+</P+><UL+><LI+> 1.parameter re :  the derived regular expression+</LI+><LI+> returns : empty String if input matched the regular expression, otherwise+               an error message is returned+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Amatches"+></A+><B+>matches</B+> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+> -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> String</TD+></TR+><TR+><TD CLASS="doc"+><P+>Derives a regular expression with respect to a list of elements.+</P+><UL+><LI+> 1.parameter re :  regular expression+</LI+><LI+> 2.parameter list :  list of elements to which the regular expression is applied+</LI+><LI+> returns : the derived regular expression+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprintRE"+></A+><B+>printRE</B+> :: Show a =&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs a string representation of a regular expression.+</P+><UL+><LI+> 1.parameter re :  a regular expression+</LI+><LI+> returns : the string representation of the regular expression+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_unit"+></A+><B+>re_unit</B+> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs a regular expression for an empty sequence.+</P+><UL+><LI+> returns : regular expression for an empty sequence+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_zero"+></A+><B+>re_zero</B+> :: String -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs a regular expression for an empty set.+</P+><UL+><LI+> 1.parameter errMsg :  error message+</LI+><LI+> returns : regular expression for an empty set+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_sym"+></A+><B+>re_sym</B+> :: a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs a regular expression for accepting a symbol+</P+><UL+><LI+> 1.parameter sym :  the symbol to be accepted+</LI+><LI+> returns : regular expression for accepting a symbol+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_rep"+></A+><B+>re_rep</B+> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs an optional repetition (*) of a regular expression+</P+><UL+><LI+> 1.parameter re_a :  regular expression to be repeted+</LI+><LI+> returns : new regular expression+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_plus"+></A+><B+>re_plus</B+> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs a repetition (+) of a regular expression+</P+><UL+><LI+> 1.parameter re_a :  regular expression to be repeted+</LI+><LI+> returns : new regular expression+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_opt"+></A+><B+>re_opt</B+> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs an option (?) of a regular expression+</P+><UL+><LI+> 1.parameter re_a :  regular expression to be optional+</LI+><LI+> returns : new regular expression+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_seq"+></A+><B+>re_seq</B+> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs a sequence (,) of two regular expressions+</P+><UL+><LI+> 1.parameter re_a :  first regular expression in sequence+</LI+><LI+> 2.parameter re_b :  second regular expression in sequence+</LI+><LI+> returns : new regular expression+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_alt"+></A+><B+>re_alt</B+> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs an alternative (|) of two regular expressions+</P+><UL+><LI+> 1.parameter re_a :  first regular expression of alternative+</LI+><LI+> 2.parameter re_b :  second regular expression of alternative+</LI+><LI+> returns : new regular expression+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Are_dot"+></A+><B+>re_dot</B+> :: <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>RE</A+> a</TD+></TR+><TR+><TD CLASS="doc"+><P+>Constructs a regular expression for accepting any singel symbol+</P+><UL+><LI+> returns : regular expression for accepting any singel symbol+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-XPath-NavTree.html view
@@ -0,0 +1,309 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.XPath.NavTree</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/NavTree.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.XPath.NavTree</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>Navigable tree structure which allow a program to traverse+ for XPath expressions+ copied and modified from HXML (<A HREF="http://www.flightlab.com/~joe/hxml/"+>http://www.flightlab.com/~joe/hxml/</A+>)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparentAxis"+></A+><B+>parentAxis</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AancestorAxis"+></A+><B+>ancestorAxis</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AancestorOrSelfAxis"+></A+><B+>ancestorOrSelfAxis</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AchildAxis"+></A+><B+>childAxis</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdescendantAxis"+></A+><B+>descendantAxis</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AdescendantOrSelfAxis"+></A+><B+>descendantOrSelfAxis</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfollowingSiblingAxis"+></A+><B+>followingSiblingAxis</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprecedingSiblingAxis"+></A+><B+>precedingSiblingAxis</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AselfAxis"+></A+><B+>selfAxis</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AfollowingAxis"+></A+><B+>followingAxis</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AprecedingAxis"+></A+><B+>precedingAxis</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AattributeAxis"+></A+><B+>attributeAxis</B+> :: <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+> -&gt; [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+>]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Data-NavTree.html"+>Data.NavTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-XPath-XPathArithmetic.html view
@@ -0,0 +1,308 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.XPath.XPathArithmetic</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathArithmetic.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.XPath.XPathArithmetic</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>The module contains arithmetic calculations according the IEEE 754 standard+ for plus, minus, unary minus, multiplication, modulo and division.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AxPathMulti"+>xPathMulti</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"+>Op</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxPathMod"+>xPathMod</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"+>Op</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxPathDiv"+>xPathDiv</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"+>Op</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxPathAdd"+>xPathAdd</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"+>Op</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxPathUnary"+>xPathUnary</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxPathMulti"+></A+><B+>xPathMulti</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"+>Op</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Multiplication+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxPathMod"+></A+><B+>xPathMod</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"+>Op</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Modulo+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxPathDiv"+></A+><B+>xPathDiv</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"+>Op</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Division: the divison-operator is not according the IEEE 754 standard,+ it calculates the same as the % operator in Java and ECMAScript+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxPathAdd"+></A+><B+>xPathAdd</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"+>Op</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Plus and minus+</P+><P+>1.parameter op :  plus or minus operation+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxPathUnary"+></A+><B+>xPathUnary</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Unary minus: the value <TT+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANaN"+>NaN</A+></TT+> is not calculatable and returned unchanged,+ all other values can be denied.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-XPath-XPathDataTypes.html view
@@ -0,0 +1,2632 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.XPath.XPathDataTypes</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathDataTypes.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.XPath.XPathDataTypes</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>The core data types of XPath.+ The Type NodeSet is based on the module <A HREF="NavTree.html"+>NavTree</A+> which was adapted from+ HXML (<A HREF="http://www.flightlab.com/~joe/hxml/"+>http://www.flightlab.com/~joe/hxml/</A+>)+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AExpr"+>Expr</A+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>= <A HREF="#v%3AGenExpr"+>GenExpr</A+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"+>Op</A+> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+>]</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3APathExpr"+>PathExpr</A+> (Maybe <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+>) (Maybe <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALocationPath"+>LocationPath</A+>)</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AFilterExpr"+>FilterExpr</A+> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+>]</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AVarExpr"+>VarExpr</A+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarName"+>VarName</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ALiteralExpr"+>LiteralExpr</A+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALiteral"+>Literal</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ANumberExpr"+>NumberExpr</A+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"+>XPNumber</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AFctExpr"+>FctExpr</A+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AFctName"+>FctName</A+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AFctArguments"+>FctArguments</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AOp"+>Op</A+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>= <A HREF="#v%3AOr"+>Or</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AAnd"+>And</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AEq"+>Eq</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ANEq"+>NEq</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ALess"+>Less</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AGreater"+>Greater</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ALessEq"+>LessEq</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AGreaterEq"+>GreaterEq</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3APlus"+>Plus</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AMinus"+>Minus</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ADiv"+>Div</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AMod"+>Mod</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AMult"+>Mult</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AUnary"+>Unary</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AUnion"+>Union</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AXPNumber"+>XPNumber</A+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>= <A HREF="#v%3AFloat"+>Float</A+> Float</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ANaN"+>NaN</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ANegInf"+>NegInf</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ANeg0"+>Neg0</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3APos0"+>Pos0</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3APosInf"+>PosInf</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3ALocationPath"+>LocationPath</A+>  = <A HREF="#v%3ALocPath"+>LocPath</A+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3APath"+>Path</A+> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXStep"+>XStep</A+>]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3APath"+>Path</A+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>= <A HREF="#v%3ARel"+>Rel</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AAbs"+>Abs</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AXStep"+>XStep</A+>  = <A HREF="#v%3AStep"+>Step</A+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AAxisSpec"+>AxisSpec</A+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"+>NodeTest</A+> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+>]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AAxisSpec"+>AxisSpec</A+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>= <A HREF="#v%3AAncestor"+>Ancestor</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AAncestorOrSelf"+>AncestorOrSelf</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AAttribute"+>Attribute</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AChild"+>Child</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ADescendant"+>Descendant</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ADescendantOrSelf"+>DescendantOrSelf</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AFollowing"+>Following</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AFollowingSibling"+>FollowingSibling</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ANamespace"+>Namespace</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AParent"+>Parent</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3APreceding"+>Preceding</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3APrecedingSibling"+>PrecedingSibling</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ASelf"+>Self</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3ANodeTest"+>NodeTest</A+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>= <A HREF="#v%3ANameTest"+>NameTest</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3API"+>PI</A+> String</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3ATypeTest"+>TypeTest</A+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathNode"+>XPathNode</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AXPathNode"+>XPathNode</A+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>= <A HREF="#v%3AXPNode"+>XPNode</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXPCommentNode"+>XPCommentNode</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXPPINode"+>XPPINode</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXPTextNode"+>XPTextNode</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AName"+>Name</A+> = (<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANamePrefix"+>NamePrefix</A+>, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALocalName"+>LocalName</A+>)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ANamePrefix"+>NamePrefix</A+> = String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ALocalName"+>LocalName</A+> = String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AVarName"+>VarName</A+> = <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AName"+>Name</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ALiteral"+>Literal</A+> = String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AFctName"+>FctName</A+> = String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AFctArguments"+>FctArguments</A+> = [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+>]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AContext"+>Context</A+> = (<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AConPos"+>ConPos</A+>, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AConLen"+>ConLen</A+>, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AConNode"+>ConNode</A+>)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AConPos"+>ConPos</A+> = Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AConLen"+>ConLen</A+> = Int</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AConNode"+>ConNode</A+> = <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"+>NavXmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A HREF="#t%3AXPathValue"+>XPathValue</A+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+>= <A HREF="#v%3AXPVNode"+>XPVNode</A+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeSet"+>NodeSet</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXPVBool"+>XPVBool</A+> Bool</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXPVNumber"+>XPVNumber</A+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"+>XPNumber</A+></TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXPVString"+>XPVString</A+> String</TD+></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AXPVError"+>XPVError</A+> String</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ANavXmlTree"+>NavXmlTree</A+> = <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ANavXmlTrees"+>NavXmlTrees</A+> = [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"+>NavXmlTree</A+>]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3ANodeSet"+>NodeSet</A+> = <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTrees"+>NavXmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AXPathFilter"+>XPathFilter</A+> = <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AVarTab"+>VarTab</A+> = [(<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarName"+>VarName</A+>, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+>)]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AKeyTab"+>KeyTab</A+> = [(<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>, String, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"+>NavXmlTree</A+>)]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AEnv"+>Env</A+> = (<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarTab"+>VarTab</A+>, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AKeyTab"+>KeyTab</A+>)</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AvarEnv"+>varEnv</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"+>Env</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-XPath-NavTree.html"+>Text.XML.HXT.XPath.NavTree</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AExpr"+></A+><B+>Expr</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>Represents expression+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AGenExpr"+></A+><B+>GenExpr</B+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"+>Op</A+> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+>]</TD+><TD CLASS="rdoc"+>generic expression with an operator and one or more operands+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3APathExpr"+></A+><B+>PathExpr</B+> (Maybe <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+>) (Maybe <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALocationPath"+>LocationPath</A+>)</TD+><TD CLASS="rdoc"+>a path expression contains an optional filter-expression+ or an optional locationpath. one expression is urgently+ necessary, both are possible+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AFilterExpr"+></A+><B+>FilterExpr</B+> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+>]</TD+><TD CLASS="rdoc"+>filter-expression with zero or more predicates+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AVarExpr"+></A+><B+>VarExpr</B+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarName"+>VarName</A+></TD+><TD CLASS="rdoc"+>variable+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ALiteralExpr"+></A+><B+>LiteralExpr</B+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALiteral"+>Literal</A+></TD+><TD CLASS="rdoc"+>string+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ANumberExpr"+></A+><B+>NumberExpr</B+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"+>XPNumber</A+></TD+><TD CLASS="rdoc"+>number+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AFctExpr"+></A+><B+>FctExpr</B+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AFctName"+>FctName</A+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AFctArguments"+>FctArguments</A+></TD+><TD CLASS="rdoc"+>a function with a name and an optional list of arguments+</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Expr')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:Expr" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AOp"+></A+><B+>Op</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>Represents XPath operators+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AOr"+></A+><B+>Or</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AAnd"+></A+><B+>And</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AEq"+></A+><B+>Eq</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ANEq"+></A+><B+>NEq</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ALess"+></A+><B+>Less</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AGreater"+></A+><B+>Greater</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ALessEq"+></A+><B+>LessEq</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AGreaterEq"+></A+><B+>GreaterEq</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3APlus"+></A+><B+>Plus</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AMinus"+></A+><B+>Minus</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ADiv"+></A+><B+>Div</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AMod"+></A+><B+>Mod</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AMult"+></A+><B+>Mult</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AUnary"+></A+><B+>Unary</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AUnion"+></A+><B+>Union</B+></TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Op')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:Op" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"+>Op</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"+>Op</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AXPNumber"+></A+><B+>XPNumber</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+><P+>Represents a floating-point number according the IEEE 754 standard+</P+><P+>The standard includes a special Not-a-Number (NaN) value,+ positive and negative infinity, positive and negative zero.+</P+></TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AFloat"+></A+><B+>Float</B+> Float</TD+><TD CLASS="rdoc"+>floating-point number+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ANaN"+></A+><B+>NaN</B+></TD+><TD CLASS="rdoc"+>not-a-number+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ANegInf"+></A+><B+>NegInf</B+></TD+><TD CLASS="rdoc"+>negative infinity+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ANeg0"+></A+><B+>Neg0</B+></TD+><TD CLASS="rdoc"+>negative zero+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3APos0"+></A+><B+>Pos0</B+></TD+><TD CLASS="rdoc"+>positive zero+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3APosInf"+></A+><B+>PosInf</B+></TD+><TD CLASS="rdoc"+>positive infinity+</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XPNumber')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:XPNumber" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"+>XPNumber</A+></TD+></TR+><TR+><TD CLASS="decl"+>Ord <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"+>XPNumber</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"+>XPNumber</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3ALocationPath"+></A+><B+>LocationPath</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+><P+>Represents location path+</P+><P+>A location path consists of a sequence of one or more location steps.+</P+></TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ALocPath"+></A+><B+>LocPath</B+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3APath"+>Path</A+> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXStep"+>XStep</A+>]</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:LocationPath')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:LocationPath" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALocationPath"+>LocationPath</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALocationPath"+>LocationPath</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3APath"+></A+><B+>Path</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>A location path is either a relative or an absolute path.+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ARel"+></A+><B+>Rel</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AAbs"+></A+><B+>Abs</B+></TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Path')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:Path" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3APath"+>Path</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3APath"+>Path</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AXStep"+></A+><B+>XStep</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+><P+>Represents location step+</P+><P+>A location step consists of an axis, a node-test and zero or more predicates.+</P+></TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AStep"+></A+><B+>Step</B+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AAxisSpec"+>AxisSpec</A+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"+>NodeTest</A+> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+>]</TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XStep')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:XStep" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXStep"+>XStep</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXStep"+>XStep</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AAxisSpec"+></A+><B+>AxisSpec</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>Represents XPath axis+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AAncestor"+></A+><B+>Ancestor</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AAncestorOrSelf"+></A+><B+>AncestorOrSelf</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AAttribute"+></A+><B+>Attribute</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AChild"+></A+><B+>Child</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ADescendant"+></A+><B+>Descendant</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ADescendantOrSelf"+></A+><B+>DescendantOrSelf</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AFollowing"+></A+><B+>Following</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AFollowingSibling"+></A+><B+>FollowingSibling</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ANamespace"+></A+><B+>Namespace</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AParent"+></A+><B+>Parent</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3APreceding"+></A+><B+>Preceding</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3APrecedingSibling"+></A+><B+>PrecedingSibling</B+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ASelf"+></A+><B+>Self</B+></TD+><TD CLASS="rdoc"+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:AxisSpec')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:AxisSpec" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AAxisSpec"+>AxisSpec</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AAxisSpec"+>AxisSpec</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3ANodeTest"+></A+><B+>NodeTest</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>Represents XPath node-tests+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3ANameTest"+></A+><B+>NameTest</B+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+></TD+><TD CLASS="rdoc"+>name-test+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3API"+></A+><B+>PI</B+> String</TD+><TD CLASS="rdoc"+>processing-instruction-test with a literal argument+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3ATypeTest"+></A+><B+>TypeTest</B+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathNode"+>XPathNode</A+></TD+><TD CLASS="rdoc"+>all nodetype-tests+</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:NodeTest')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:NodeTest" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"+>NodeTest</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"+>NodeTest</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AXPathNode"+></A+><B+>XPathNode</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>Represents nodetype-tests+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AXPNode"+></A+><B+>XPNode</B+></TD+><TD CLASS="rdoc"+>all 7 nodetypes+  (root, element, attribute, namespace, pi, comment, text)+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXPCommentNode"+></A+><B+>XPCommentNode</B+></TD+><TD CLASS="rdoc"+>comment-nodes+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXPPINode"+></A+><B+>XPPINode</B+></TD+><TD CLASS="rdoc"+>processing-instruction-nodes+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXPTextNode"+></A+><B+>XPTextNode</B+></TD+><TD CLASS="rdoc"+>text-nodes: cdata, character data+</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XPathNode')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:XPathNode" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathNode"+>XPathNode</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathNode"+>XPathNode</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AName"+></A+><B+>Name</B+> = (<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANamePrefix"+>NamePrefix</A+>, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALocalName"+>LocalName</A+>)</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ANamePrefix"+></A+><B+>NamePrefix</B+> = String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ALocalName"+></A+><B+>LocalName</B+> = String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AVarName"+></A+><B+>VarName</B+> = <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AName"+>Name</A+></TD+></TR+><TR+><TD CLASS="doc"+>Variable name+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ALiteral"+></A+><B+>Literal</B+> = String</TD+></TR+><TR+><TD CLASS="doc"+>a string+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AFctName"+></A+><B+>FctName</B+> = String</TD+></TR+><TR+><TD CLASS="doc"+>Function name+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AFctArguments"+></A+><B+>FctArguments</B+> = [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+>]</TD+></TR+><TR+><TD CLASS="doc"+>Function arguments+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AContext"+></A+><B+>Context</B+> = (<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AConPos"+>ConPos</A+>, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AConLen"+>ConLen</A+>, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AConNode"+>ConNode</A+>)</TD+></TR+><TR+><TD CLASS="doc"+>Evaluation context+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AConPos"+></A+><B+>ConPos</B+> = Int</TD+></TR+><TR+><TD CLASS="doc"+>Context position+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AConLen"+></A+><B+>ConLen</B+> = Int</TD+></TR+><TR+><TD CLASS="doc"+>Context length+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AConNode"+></A+><B+>ConNode</B+> = <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"+>NavXmlTree</A+></TD+></TR+><TR+><TD CLASS="doc"+>Context node+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>data</SPAN+> <A NAME="t%3AXPathValue"+></A+><B+>XPathValue</B+> </TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="ndoc"+>Represents XPath results+</TD+></TR+><TR+><TD CLASS="section4"+>Constructors</TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="arg"+><A NAME="v%3AXPVNode"+></A+><B+>XPVNode</B+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeSet"+>NodeSet</A+></TD+><TD CLASS="rdoc"+>node-set+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXPVBool"+></A+><B+>XPVBool</B+> Bool</TD+><TD CLASS="rdoc"+>boolean value+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXPVNumber"+></A+><B+>XPVNumber</B+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"+>XPNumber</A+></TD+><TD CLASS="rdoc"+>number according the IEEE 754 standard+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXPVString"+></A+><B+>XPVString</B+> String</TD+><TD CLASS="rdoc"+>string value+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AXPVError"+></A+><B+>XPVError</B+> String</TD+><TD CLASS="rdoc"+>error message with text+</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section4"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:XPathValue')" ALT="show/hide"+> Instances</TD+></TR+><TR+><TD CLASS="body"+><DIV ID="i:XPathValue" STYLE="display:block;"+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"+><TR+><TD CLASS="decl"+>Eq <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+></TD+></TR+><TR+><TD CLASS="decl"+>Ord <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+></TD+></TR+><TR+><TD CLASS="decl"+>Show <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+></TD+></TR+></TABLE+></DIV+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ANavXmlTree"+></A+><B+>NavXmlTree</B+> = <A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>XNode</A+></TD+></TR+><TR+><TD CLASS="doc"+>Node of navigable tree representation+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ANavXmlTrees"+></A+><B+>NavXmlTrees</B+> = [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"+>NavXmlTree</A+>]</TD+></TR+><TR+><TD CLASS="doc"+>List of nodes of navigable tree representation+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3ANodeSet"+></A+><B+>NodeSet</B+> = <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTrees"+>NavXmlTrees</A+></TD+></TR+><TR+><TD CLASS="doc"+>Type synonym for a list of navigable tree representation+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AXPathFilter"+></A+><B+>XPathFilter</B+> = <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+></TD+></TR+><TR+><TD CLASS="doc"+>A functions that takes a XPath result and returns a XPath result+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AVarTab"+></A+><B+>VarTab</B+> = [(<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarName"+>VarName</A+>, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+>)]</TD+></TR+><TR+><TD CLASS="doc"+><P+>XPath environment+</P+><P+>All variables are stored in the environment,+ each variable name is bound to a value.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AKeyTab"+></A+><B+>KeyTab</B+> = [(<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>QName</A+>, String, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"+>NavXmlTree</A+>)]</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AEnv"+></A+><B+>Env</B+> = (<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarTab"+>VarTab</A+>, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AKeyTab"+>KeyTab</A+>)</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AvarEnv"+></A+><B+>varEnv</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"+>Env</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-XPath-NavTree.html"+>Text.XML.HXT.XPath.NavTree</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-XPath-XPathEval.html view
@@ -0,0 +1,445 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.XPath.XPathEval</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathEval.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.XPath.XPathEval</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: XPathEval.hs,v 1.8 2006<EM+>10</EM+>12 11:51:29 hxml Exp $+</P+><P+>The core functions for evaluating the different types of XPath expressions.+   Each <TT+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+></TT+>-constructor is mapped to an evaluation function.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXPath"+>getXPath</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXPathWithNsEnv"+>getXPathWithNsEnv</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXPathSubTrees"+>getXPathSubTrees</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXPathSubTreesWithNsEnv"+>getXPathSubTreesWithNsEnv</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXPathNodeSet"+>getXPathNodeSet</A+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetXPathNodeSetWithNsEnv"+>getXPathNodeSetWithNsEnv</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AevalExpr"+>evalExpr</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"+>Env</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"+>Context</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXPath"+></A+><B+>getXPath</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Select parts of a document by an XPath expression.+</P+><P+>The main filter for selecting parts of a document via XPath.+ The string argument must be a XPath expression with an absolute location path,+ the argument tree must be a complete document tree.+ Result is a possibly empty list of XmlTrees forming the set of selected XPath values.+ XPath values other than XmlTrees (numbers, attributes, tagnames, ...)+ are convertet to text nodes.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXPathWithNsEnv"+></A+><B+>getXPathWithNsEnv</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Select parts of a document by a namespace aware XPath expression.+</P+><P+>Works like <TT+><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AgetXPath"+>getXPath</A+></TT+> but the prefix:localpart names in the XPath expression+ are interpreted with respect to the given namespace environment+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXPathSubTrees"+></A+><B+>getXPathSubTrees</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Select parts of an XML tree by a XPath expression.+</P+><P+>The main filter for selecting parts of an arbitrary XML tree via XPath.+ The string argument must be a XPath expression with an absolute location path,+ There are no restrictions on the arument tree.+</P+><P+>No canonicalization is performed before evaluating the query+</P+><P+>Result is a possibly empty list of XmlTrees forming the set of selected XPath values.+ XPath values other than XmlTrees (numbers, attributes, tagnames, ...)+ are convertet to text nodes.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXPathSubTreesWithNsEnv"+></A+><B+>getXPathSubTreesWithNsEnv</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>XmlFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Same as <TT+><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AgetXPathSubTrees"+>getXPathSubTrees</A+></TT+> but with namespace aware XPath expression+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXPathNodeSet"+></A+><B+>getXPathNodeSet</B+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="doc"+>compute the node set of an XPath query+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetXPathNodeSetWithNsEnv"+></A+><B+>getXPathNodeSetWithNsEnv</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>NsEnv</A+> -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="doc"+>compute the node set of a namespace aware XPath query+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AevalExpr"+></A+><B+>evalExpr</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"+>Env</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"+>Context</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>The main evaluation entry point. + Each XPath-<TT+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+></TT+> is mapped to an evaluation function. The <TT+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"+>Env</A+></TT+>-parameter contains the set of global variables+ for the evaluator, the <TT+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"+>Context</A+></TT+>-parameter the root of the tree in which the expression is evaluated.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-XPath-XPathFct.html view
@@ -0,0 +1,644 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.XPath.XPathFct</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathFct.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.XPath.XPathFct</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>The module contains the core-functions of the XPath function library.+ All functions are implemented as XFct. Each XFct contains the evaluation context,+ the variable environment and the function arguments.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A HREF="#t%3AXFct"+>XFct</A+> = <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"+>Context</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"+>Env</A+> -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+>] -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AevalFct"+>evalFct</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AFctName"+>FctName</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"+>Env</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"+>Context</A+> -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+>] -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtoXValue"+>toXValue</A+> :: <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"+>XFct</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"+>Context</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"+>Env</A+> -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+>] -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+>]</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Axnumber"+>xnumber</A+> :: <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"+>XFct</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Axboolean"+>xboolean</A+> :: <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"+>XFct</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Axstring"+>xstring</A+> :: <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"+>XFct</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetConvFct"+>getConvFct</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; Maybe <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"+>XFct</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AstringValue"+>stringValue</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"+>NavXmlTree</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AremDups"+>remDups</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AisNotInNodeList"+>isNotInNodeList</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"+>NavXmlTree</A+> -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"+>NavXmlTree</A+>] -&gt; Bool</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcreateDocumentOrder"+>createDocumentOrder</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AcreateDocumentOrderReverse"+>createDocumentOrderReverse</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetVarTab"+>getVarTab</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"+>Env</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarTab"+>VarTab</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AgetKeyTab"+>getKeyTab</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"+>Env</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AKeyTab"+>KeyTab</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><SPAN CLASS="keyword"+>type</SPAN+> <A NAME="t%3AXFct"+></A+><B+>XFct</B+> = <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"+>Context</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"+>Env</A+> -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+>] -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+></TD+></TR+><TR+><TD CLASS="doc"+>Type signature for all functions which can be used in the XPath module.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AevalFct"+></A+><B+>evalFct</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AFctName"+>FctName</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"+>Env</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"+>Context</A+> -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+>] -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Evaluates a function.+ Calculation of the function value is done by looking up the function name in the function table,+ check the number of arguments and calculate the funtion, if no+ argument evaluation returns an error.+</P+><UL+><LI+> returns : the function value as <TT+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+></TT+>+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtoXValue"+></A+><B+>toXValue</B+> :: <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"+>XFct</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"+>Context</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"+>Env</A+> -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+>] -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+>]</TD+></TR+><TR+><TD CLASS="doc"+><P+>Converts a list of different <TT+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+></TT+> types in a list of one <TT+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+></TT+> type.+</P+><UL+><LI+> 1.parameter fct :  the conversion function+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Axnumber"+></A+><B+>xnumber</B+> :: <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"+>XFct</A+></TD+></TR+><TR+><TD CLASS="doc"+>number number(object?): converts its argument to a number+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Axboolean"+></A+><B+>xboolean</B+> :: <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"+>XFct</A+></TD+></TR+><TR+><TD CLASS="doc"+>boolean boolean(object): converts its argument to a boolean value+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Axstring"+></A+><B+>xstring</B+> :: <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"+>XFct</A+></TD+></TR+><TR+><TD CLASS="doc"+>string string(object?): converts an object to a string+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetConvFct"+></A+><B+>getConvFct</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; Maybe <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"+>XFct</A+></TD+></TR+><TR+><TD CLASS="doc"+>Returns the conversion function for the XPath results: string, boolean and number+ A nodeset can not be converted.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AstringValue"+></A+><B+>stringValue</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"+>NavXmlTree</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+></TD+></TR+><TR+><TD CLASS="doc"+>Returns the string-value of a node,+ the value of a namespace node is not supported+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AremDups"+></A+><B+>remDups</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Filter for removing identical fragment trees in a nodeset+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AisNotInNodeList"+></A+><B+>isNotInNodeList</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"+>NavXmlTree</A+> -&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"+>NavXmlTree</A+>] -&gt; Bool</TD+></TR+><TR+><TD CLASS="doc"+>Check whether a node is not a part of a node list. Needed to implement matching &amp; testing in xslt.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcreateDocumentOrder"+></A+><B+>createDocumentOrder</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Filter for ordering a list of Nodes in document order+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AcreateDocumentOrderReverse"+></A+><B+>createDocumentOrderReverse</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>XPathFilter</A+></TD+></TR+><TR+><TD CLASS="doc"+>Filter for ordering a list of Nodes in reverse document order+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetVarTab"+></A+><B+>getVarTab</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"+>Env</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarTab"+>VarTab</A+></TD+></TR+><TR+><TD CLASS="doc"+>Returns the table of variables from the environment+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AgetKeyTab"+></A+><B+>getKeyTab</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"+>Env</A+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AKeyTab"+>KeyTab</A+></TD+></TR+><TR+><TD CLASS="doc"+>Returns the table of keys, needed by xslt, from the environment+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-XPath-XPathKeywords.html view
@@ -0,0 +1,310 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.XPath.XPathKeywords</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathKeywords.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.XPath.XPathKeywords</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>$Id: XPathKeywords.hs,v 1.1 2004<EM+>09</EM+>02 19:12:05 hxml Exp $+</P+><P+>the XPath keywords+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_ancestor"+></A+><B+>a_ancestor</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_ancestor_or_self"+></A+><B+>a_ancestor_or_self</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_attribute"+></A+><B+>a_attribute</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_child"+></A+><B+>a_child</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_descendant"+></A+><B+>a_descendant</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_descendant_or_self"+></A+><B+>a_descendant_or_self</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_following"+></A+><B+>a_following</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_following_sibling"+></A+><B+>a_following_sibling</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_namespace"+></A+><B+>a_namespace</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_parent"+></A+><B+>a_parent</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_preceding"+></A+><B+>a_preceding</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_preceding_sibling"+></A+><B+>a_preceding_sibling</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aa_self"+></A+><B+>a_self</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3An_comment"+></A+><B+>n_comment</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3An_text"+></A+><B+>n_text</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3An_processing_instruction"+></A+><B+>n_processing_instruction</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3An_node"+></A+><B+>n_node</B+> :: String</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-XPath-XPathParser.html view
@@ -0,0 +1,224 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.XPath.XPathParser</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathParser.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.XPath.XPathParser</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>portable</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>experimental</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>Uwe Schmidt (uwe\@fh-wedel.de)</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>Version    : $Id: XPathParser.hs,v 1.6 2006<EM+>10</EM+>12 11:51:29 hxml Exp $+</P+><P+>the XPath Parser+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseNumber"+>parseNumber</A+> :: String -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AparseXPath"+>parseXPath</A+> :: XParser <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseNumber"+></A+><B+>parseNumber</B+> :: String -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>parsing a number, parseNumber is used in <A HREF="XPathFct.html"+>XPathFct</A+>+ by the number function+</P+><UL+><LI+> returns : the parsed number as <TT+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"+>XPNumber</A+></TT+> float+                or <TT+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPVNumber"+>XPVNumber</A+></TT+> <TT+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANaN"+>NaN</A+></TT+> in case of error+</LI+></UL+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AparseXPath"+></A+><B+>parseXPath</B+> :: XParser <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+></TD+></TR+><TR+><TD CLASS="doc"+>the main entry point:+ parsing a XPath expression+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-XPath-XPathToNodeSet.html view
@@ -0,0 +1,176 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.XPath.XPathToNodeSet</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathToNodeSet.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.XPath.XPathToNodeSet</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>Convert an XPath result set into a node set+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3AxPValue2NodeSet"+>xPValue2NodeSet</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AemptyNodeSet"+>emptyNodeSet</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxPValue2NodeSet"+></A+><B+>xPValue2NodeSet</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="doc"+><P+>Convert a a XPath-value into a XmlNodeSet represented by a tree structure+</P+><P+>The XmlNodeSet can be used to traverse a tree an process all+ marked nodes.+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AemptyNodeSet"+></A+><B+>emptyNodeSet</B+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>XmlNodeSet</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-XPath-XPathToString.html view
@@ -0,0 +1,304 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.XPath.XPathToString</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathToString.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.XPath.XPathToString</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>Format an expression or value in tree- or string-representation+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3Aexpr2XPathTree"+>expr2XPathTree</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+> -&gt; XPathTree</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxPValue2String"+>xPValue2String</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AxPValue2XmlTrees"+>xPValue2XmlTrees</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Ant2XPathTree"+>nt2XPathTree</A+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"+>NodeTest</A+> -&gt; XPathTree</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3Apred2XPathTree"+>pred2XPathTree</A+> :: [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+>] -&gt; XPathTree</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AtoXPathTree"+>toXPathTree</A+> :: [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a] -&gt; [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a]</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Aexpr2XPathTree"+></A+><B+>expr2XPathTree</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+> -&gt; XPathTree</TD+></TR+><TR+><TD CLASS="doc"+>Format a parsed XPath-expression in tree representation.+ Text output is done by <TT+><A HREF="Text-XML-HXT-DOM-FormatXmlTree.html#v%3AformatXmlTree"+>formatXmlTree</A+></TT+>+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxPValue2String"+></A+><B+>xPValue2String</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; String</TD+></TR+><TR+><TD CLASS="doc"+>Format a XPath-value in string representation.+ Text output is done by <TT+><A HREF="Text-XML-HXT-DOM-FormatXmlTree.html#v%3AformatXmlTree"+>formatXmlTree</A+></TT+> for node-sets (trees),+ all other values are represented as strings.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AxPValue2XmlTrees"+></A+><B+>xPValue2XmlTrees</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>XPathValue</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>XmlTrees</A+></TD+></TR+><TR+><TD CLASS="doc"+>Convert a a XPath-value into XmlTrees.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Ant2XPathTree"+></A+><B+>nt2XPathTree</B+> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"+>NodeTest</A+> -&gt; XPathTree</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Apred2XPathTree"+></A+><B+>pred2XPathTree</B+> :: [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Expr</A+>] -&gt; XPathTree</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AtoXPathTree"+></A+><B+>toXPathTree</B+> :: [<A HREF="Data-NavTree.html#t%3ANavTree"+>NavTree</A+> a] -&gt; [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>NTree</A+> a]</TD+></TR+><TR+><TD CLASS="doc"+>Convert an navigable tree in a xmltree+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/Text-XML-HXT-XPath.html view
@@ -0,0 +1,135 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.XML.HXT.XPath</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath.hs"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.XML.HXT.XPath</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>This helper module exports elements from the basic libraries:
+ XPathEval, XPathToString and XPathParser
+</P+><P+>Author : Torben Kuseler
+</P+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-XPath-XPathEval.html"+>Text.XML.HXT.XPath.XPathEval</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-XPath-XPathToString.html"+>Text.XML.HXT.XPath.XPathToString</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+>module <A HREF="Text-XML-HXT-XPath-XPathParser.html"+>Text.XML.HXT.XPath.XPathParser</A+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/doc-index-36.html view
@@ -0,0 +1,194 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Filter API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index ($)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>$!!</TD+><TD CLASS="indexlinks"+><A HREF="Control-Strategies-DeepSeq.html#v%3A%24%21%21"+>Control.Strategies.DeepSeq</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>$$</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3A%24%24"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>$$&lt;</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3A%24%24%3C"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/doc-index-43.html view
@@ -0,0 +1,202 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Filter API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (+)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>+++</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3A%2B%2B%2B"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>+++&gt;&gt;</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3A%2B%2B%2B%3E%3E"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>++=</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%2B%3D"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>+=</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3A%2B%3D"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/doc-index-46.html view
@@ -0,0 +1,194 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Filter API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (.)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>..&gt;</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3A..%3E"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>.&gt;</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3A.%3E"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>.&gt;&gt;</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3A.%3E%3E"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/doc-index-47.html view
@@ -0,0 +1,178 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Filter API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (/)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>/&gt;</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3A%2F%3E"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/doc-index-58.html view
@@ -0,0 +1,178 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Filter API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (:)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>:-&gt;</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3A%3A-%3E"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/doc-index-60.html view
@@ -0,0 +1,178 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Filter API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (&lt;)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>&lt;/</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3A%3C%2F"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/doc-index-A.html view
@@ -0,0 +1,1086 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Filter API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (A)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>ATTLIST</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AATTLIST"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>Abs</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AAbs"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Ancestor</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AAncestor"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>AncestorOrSelf</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AAncestorOrSelf"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>And</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AAnd"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>AssocList</TD+><TD CLASS="indexlinks"+><A HREF="Data-AssocList.html#t%3AAssocList"+>Data.AssocList</A+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>AttrName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AAttrName"+>Text.XML.HXT.DOM.XmlTreeTypes</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>Attribute</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AAttribute"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Attributes</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>AxisSpec</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AAxisSpec"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>aName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AaName"+>Text.XML.HXT.DOM.XmlTreeTypes</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_ancestor</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_ancestor"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>a_ancestor_or_self</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_ancestor_or_self"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>a_attribute</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_attribute"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>a_canonicalize</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_canonicalize"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_check_namespaces</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_check_namespaces"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_check_restrictions</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_check_restrictions"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_child</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_child"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>a_collect_errors</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_collect_errors"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_column</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_column"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_contentLength</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_contentLength"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_default</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_default"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_default_baseuri</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_default_baseuri"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_descendant</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_descendant"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>a_descendant_or_self</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_descendant_or_self"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_canonicalize</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_canonicalize"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_check_namespaces</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_check_namespaces"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_check_restrictions</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_check_restrictions"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_collect_errors</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_collect_errors"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_issue_errors</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_issue_errors"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_issue_warnings</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_issue_warnings"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_preserve_comment</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_preserve_comment"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_remove_whitespace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_remove_whitespace"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_use_curl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_use_curl"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_validate</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_validate"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_validate_externalRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_validate_externalRef"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_do_not_validate_include</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_do_not_validate_include"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_encoding</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_encoding"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_error</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_error"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_error_log</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_error_log"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_following</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_following"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>a_following_sibling</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_following_sibling"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>a_help</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_help"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_indent</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_indent"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_issue_errors</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_errors"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_issue_warnings</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_warnings"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_kind</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_kind"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_line</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_line"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_modifier</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_modifier"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_module</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_module"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_name</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_name"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_namespace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_namespace"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>a_no_xml_pi</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_no_xml_pi"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_options_curl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_options_curl"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_output_changes</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_changes"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_output_encoding</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_encoding"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_output_file</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_file"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_output_html</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_html"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_output_xml</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_output_xml"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_parent</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_parent"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>a_parse_html</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_html"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_parse_xml</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_xml"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_peref</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_peref"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_preceding</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_preceding"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>a_preceding_sibling</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_preceding_sibling"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>a_preserve_comment</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_preserve_comment"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_propagate_errors</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_propagate_errors"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_proxy</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_proxy"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_relax_schema</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_relax_schema"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_remove_whitespace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_remove_whitespace"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_self</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3Aa_self"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>a_show_haskell</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_show_haskell"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_show_tree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_show_tree"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_source</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_source"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_standalone</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_standalone"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_status</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_status"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_trace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_trace"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_type</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_type"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_url</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_url"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_use_curl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_use_curl"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_validate</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_validate_externalRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate_externalRef"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_validate_include</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate_include"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_value</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_value"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_verbose</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_verbose"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_version</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_version"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_xml</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_xml"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>a_xmlns</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_xmlns"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>add1Attr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aadd1Attr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>addAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AaddAttr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>addAttrInt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AaddAttrInt"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>addAttrl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AaddAttrl"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>addDTDAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AaddDTDAttr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>addEntries</TD+><TD CLASS="indexlinks"+><A HREF="Data-AssocList.html#v%3AaddEntries"+>Data.AssocList</A+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>addEntry</TD+><TD CLASS="indexlinks"+><A HREF="Data-AssocList.html#v%3AaddEntry"+>Data.AssocList</A+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>addFatal</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AaddFatal"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>addHeadlineToXmlDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AaddHeadlineToXmlDoc"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>addXmlPiToDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AaddXmlPiToDoc"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>allBut</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AallBut"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>allBut1</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AallBut1"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>ancestorAxis</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AancestorAxis"+>Text.XML.HXT.XPath.NavTree</A+>, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>ancestorOrSelfAxis</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AancestorOrSelfAxis"+>Text.XML.HXT.XPath.NavTree</A+>, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>asciiLetter</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AasciiLetter"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>atag</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aatag"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>attlistDecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AattlistDecl"+>Text.XML.HXT.Parser.XmlDTDParser</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>attr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aattr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>attrEscapeXml</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AattrEscapeXml"+>Text.XML.HXT.DOM.Util</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>attrNodes</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AattrNodes"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>attrValue</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3AattrValue"+>Text.XML.HXT.Parser.XmlDTDTokenParser</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AattrValue"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>attrValueT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AattrValueT"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>attrValueT'</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AattrValueT%27"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>attributeAxis</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AattributeAxis"+>Text.XML.HXT.XPath.NavTree</A+>, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>attrlOfDTD</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AattrlOfDTD"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/doc-index-B.html view
@@ -0,0 +1,186 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Filter API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (B)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>bar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Abar"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>buildUniversalName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AbuildUniversalName"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/doc-index-C.html view
@@ -0,0 +1,624 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Filter API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (C)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>CONDSECT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3ACONDSECT"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>CONTENT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3ACONTENT"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>Child</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AChild"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>ChildNodes</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AChildNodes"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>ConLen</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AConLen"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>ConNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AConNode"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>ConPos</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AConPos"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Context</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>cDSect</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AcDSect"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>c_err</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>c_fatal</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_fatal"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>c_ok</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_ok"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>c_warn</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_warn"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>canonicalizeAllNodes</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcanonicalizeAllNodes"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>canonicalizeForXPath</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcanonicalizeForXPath"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>canonicalizeTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcanonicalizeTree"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>cardNTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AcardNTree"+>Text.XML.HXT.DOM.XmlTreeTypes</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>cardTree</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AcardTree"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>cat</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3Acat"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>catM</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AcatM"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>cdata</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Acdata"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>chain</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3Achain"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>chain'</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3Achain%27"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>changeChildren</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AchangeChildren"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>changeNode</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AchangeNode"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>changeState</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Monad-MonadStateIO.html#v%3AchangeState"+>Control.Monad.MonadStateIO</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AchangeState"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>changeSysState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AchangeSysState"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>changeSysStateAttrs</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AchangeSysStateAttrs"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>charData</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AcharData"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>charData'</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AcharData%27"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>charRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AcharRef"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>charRefT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AcharRefT"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>charToHexString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AcharToHexString"+>Text.XML.HXT.DOM.Util</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>checkAttributeValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-AttributeValueValidation.html#v%3AcheckAttributeValue"+>Text.XML.HXT.Validator.AttributeValueValidation</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>checkRE</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3AcheckRE"+>Text.XML.HXT.Validator.RE</A+>, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3AcheckRE"+>Text.XML.HXT.Validator.XmlRE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>checkResult</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AcheckResult"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>checkStatus</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AcheckStatus"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>checkWellformedDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-DTDProcessing.html#v%3AcheckWellformedDoc"+>Text.XML.HXT.Parser.DTDProcessing</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>childAxis</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AchildAxis"+>Text.XML.HXT.XPath.NavTree</A+>, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>childNodes</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AchildNodes"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>choice</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3Achoice"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>choiceM</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AchoiceM"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>clearStatus</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AclearStatus"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>cmt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Acmt"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>collapseAllXText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcollapseAllXText"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>collapseXText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AcollapseXText"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>comma</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Acomma"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>comment</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Acomment"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>concRes</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AconcRes"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>containing</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3Acontaining"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>containingM</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AcontainingM"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>content</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Acontent"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>contentWithTextDecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AcontentWithTextDecl"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>createDocumentOrder</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AcreateDocumentOrder"+>Text.XML.HXT.XPath.XPathFct</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>createDocumentOrderReverse</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AcreateDocumentOrderReverse"+>Text.XML.HXT.XPath.XPathFct</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/doc-index-D.html view
@@ -0,0 +1,410 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Filter API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (D)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>DOCTYPE</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3ADOCTYPE"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>DTDElem</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>DeepSeq</TD+><TD CLASS="indexlinks"+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"+>Control.Strategies.DeepSeq</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Descendant</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ADescendant"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>DescendantOrSelf</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ADescendantOrSelf"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Div</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ADiv"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>dataNT</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3AdataNT"+>Data.NavTree</A+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>decimalStringToInt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AdecimalStringToInt"+>Text.XML.HXT.DOM.Util</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>deep</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3Adeep"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>deepSeq</TD+><TD CLASS="indexlinks"+><A HREF="Control-Strategies-DeepSeq.html#v%3AdeepSeq"+>Control.Strategies.DeepSeq</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>deepest</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3Adeepest"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>del1Attr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Adel1Attr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>delEntries</TD+><TD CLASS="indexlinks"+><A HREF="Data-AssocList.html#v%3AdelEntries"+>Data.AssocList</A+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>delEntry</TD+><TD CLASS="indexlinks"+><A HREF="Data-AssocList.html#v%3AdelEntry"+>Data.AssocList</A+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>depthNTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AdepthNTree"+>Text.XML.HXT.DOM.XmlTreeTypes</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>depthTree</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AdepthTree"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>descendantAxis</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AdescendantAxis"+>Text.XML.HXT.XPath.NavTree</A+>, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>descendantOrSelfAxis</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AdescendantOrSelfAxis"+>Text.XML.HXT.XPath.NavTree</A+>, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>doctypedecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Adoctypedecl"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>document</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Adocument"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>document'</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Adocument%27"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>doubles</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3Adoubles"+>Text.XML.HXT.DOM.Util</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>downNT</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3AdownNT"+>Data.NavTree</A+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>dq</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Adq"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>dtd</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Adtd"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>dtdChars</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3AdtdChars"+>Text.XML.HXT.Parser.XmlDTDTokenParser</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>dtdDeclEnd</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3AdtdDeclEnd"+>Text.XML.HXT.Parser.XmlDTDTokenParser</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>dtdDeclStart</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3AdtdDeclStart"+>Text.XML.HXT.Parser.XmlDTDTokenParser</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>dtdDeclTokenizer</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3AdtdDeclTokenizer"+>Text.XML.HXT.Parser.XmlDTDTokenParser</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>dtdToken</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3AdtdToken"+>Text.XML.HXT.Parser.XmlDTDTokenParser</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/doc-index-E.html view
@@ -0,0 +1,466 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Filter API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (E)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>ELEMENT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AELEMENT"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>ENTITY</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AENTITY"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>Env</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Eq</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AEq"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Expr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>element</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Aelement"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>elementDecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AelementDecl"+>Text.XML.HXT.Parser.XmlDTDParser</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>emptyNodeSet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathToNodeSet.html#v%3AemptyNodeSet"+>Text.XML.HXT.XPath.XPathToNodeSet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>emptyRoot</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AemptyRoot"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>encName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AencName"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>encodingDecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AencodingDecl"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>entityCharT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityCharT"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>entityDecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AentityDecl"+>Text.XML.HXT.Parser.XmlDTDParser</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>entityRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityRef"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>entityRefT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityRefT"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>entityTokensT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityTokensT"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>entityValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityValue"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>entityValueT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityValueT"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>eq</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Aeq"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>equalQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequalQName"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>equalQNameBy</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequalQNameBy"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>equivQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequivQName"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>equivUri</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequivUri"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>err</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aerr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>errClass</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AerrClass"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>errorMsgHandler</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AerrorMsgHandler"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>errorMsgLogging</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AerrorMsgLogging"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>errorMsgLoggingAndToStderr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AerrorMsgLoggingAndToStderr"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>errorMsgToStderr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AerrorMsgToStderr"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>escapeURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AescapeURI"+>Text.XML.HXT.DOM.Util</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>escapeXmlAttrValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlAttrValue"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>escapeXmlDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlDoc"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>escapeXmlText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AescapeXmlText"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>etag</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aetag"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>evalExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AevalExpr"+>Text.XML.HXT.XPath.XPathEval</A+>, Text.XML.HXT.XPath</TD+></TR+><TR+><TD CLASS="indexentry"+>evalFct</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AevalFct"+>Text.XML.HXT.XPath.XPathFct</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>expr2XPathTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathToString.html#v%3Aexpr2XPathTree"+>Text.XML.HXT.XPath.XPathToString</A+>, Text.XML.HXT.XPath</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/doc-index-F.html view
@@ -0,0 +1,322 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Filter API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (F)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>FctArguments</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AFctArguments"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>FctExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AFctExpr"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>FctName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AFctName"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>FilterExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AFilterExpr"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Float</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AFloat"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Following</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AFollowing"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>FollowingSibling</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AFollowingSibling"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>fatal</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Afatal"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>foldNTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AfoldNTree"+>Text.XML.HXT.DOM.XmlTreeTypes</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>foldTree</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AfoldTree"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>followingAxis</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AfollowingAxis"+>Text.XML.HXT.XPath.NavTree</A+>, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>followingSiblingAxis</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AfollowingSiblingAxis"+>Text.XML.HXT.XPath.NavTree</A+>, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>formatNTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AformatNTree"+>Text.XML.HXT.DOM.XmlTreeTypes</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>formatNTreeF</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-TypeDefs.html#v%3AformatNTreeF"+>Data.Tree.NTree.TypeDefs</A+>, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>formatTree</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AformatTree"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>formatXmlContents</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-FormatXmlTree.html#v%3AformatXmlContents"+>Text.XML.HXT.DOM.FormatXmlTree</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>formatXmlTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-FormatXmlTree.html#v%3AformatXmlTree"+>Text.XML.HXT.DOM.FormatXmlTree</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>fromAttrl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AfromAttrl"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>fromTreel</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AfromTreel"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/doc-index-G.html view
@@ -0,0 +1,622 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Filter API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (G)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>GenExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AGenExpr"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Greater</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AGreater"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>GreaterEq</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AGreaterEq"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>generalOptions</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AgeneralOptions"+>Text.XML.HXT.DOM.XmlOptions</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getAbsolutURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetAbsolutURI"+>Text.XML.HXT.Parser.XmlInput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getAttrl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetAttrl"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getBaseURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetBaseURI"+>Text.XML.HXT.Parser.XmlInput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getChildren</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AgetChildren"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getChildrenNT</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3AgetChildrenNT"+>Data.NavTree</A+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>getContentLength</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetContentLength"+>Text.XML.HXT.Parser.XmlInput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getConvFct</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AgetConvFct"+>Text.XML.HXT.XPath.XPathFct</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getDTDSubset</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-ValidationFilter.html#v%3AgetDTDSubset"+>Text.XML.HXT.Validator.ValidationFilter</A+>, Text.XML.HXT.Validator.Validation, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getDTDValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetDTDValue"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getEncodingFct</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AgetEncodingFct"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getErrorMsg</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetErrorMsg"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getFileContents</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-ProtocolHandlerFile.html#v%3AgetFileContents"+>Text.XML.HXT.Parser.ProtocolHandlerFile</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getHtmlDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-HtmlParser.html#v%3AgetHtmlDoc"+>Text.XML.HXT.Parser.HtmlParser</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getHttpContentsNativeOrWithCurl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html#v%3AgetHttpContentsNativeOrWithCurl"+>Text.XML.HXT.Parser.ProtocolHandlerHttpNativeOrCurl</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getHttpContentsWithCurl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html#v%3AgetHttpContentsWithCurl"+>Text.XML.HXT.Parser.ProtocolHandlerHttpCurl</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getHttpContentsWithHttp</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html#v%3AgetHttpContentsWithHttp"+>Text.XML.HXT.Parser.ProtocolHandlerHttpNative</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getKeyTab</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AgetKeyTab"+>Text.XML.HXT.XPath.XPathFct</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetName"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getNode</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AgetNode"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getNsValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetNsValue"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getOutputEncodingFct</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AgetOutputEncodingFct"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getProtocolHandler</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-ProtocolHandler.html#v%3AgetProtocolHandler"+>Text.XML.HXT.Parser.ProtocolHandler</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>getState</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Monad-MonadStateIO.html#v%3AgetState"+>Control.Monad.MonadStateIO</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetState"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getSysErrorHandler</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetSysErrorHandler"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getSysParam</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetSysParam"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getSysParamInt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetSysParamInt"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getSysParamTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetSysParamTree"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getSysParamWithDefault</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetSysParamWithDefault"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getSysState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetSysState"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getTraceLevel</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AgetTraceLevel"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getUrlContents</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetUrlContents"+>Text.XML.HXT.Parser.XmlInput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getValidatedDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-Validation.html#v%3AgetValidatedDoc"+>Text.XML.HXT.Validator.Validation</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetValue"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getVarTab</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AgetVarTab"+>Text.XML.HXT.XPath.XPathFct</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>getWellformedDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-DTDProcessing.html#v%3AgetWellformedDoc"+>Text.XML.HXT.Parser.DTDProcessing</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getXCdata</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetXCdata"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getXCmt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AgetXCmt"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getXPath</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AgetXPath"+>Text.XML.HXT.XPath.XPathEval</A+>, Text.XML.HXT.XPath</TD+></TR+><TR+><TD CLASS="indexentry"+>getXPathNodeSet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AgetXPathNodeSet"+>Text.XML.HXT.XPath.XPathEval</A+>, Text.XML.HXT.XPath</TD+></TR+><TR+><TD CLASS="indexentry"+>getXPathNodeSetWithNsEnv</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AgetXPathNodeSetWithNsEnv"+>Text.XML.HXT.XPath.XPathEval</A+>, Text.XML.HXT.XPath</TD+></TR+><TR+><TD CLASS="indexentry"+>getXPathSubTrees</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AgetXPathSubTrees"+>Text.XML.HXT.XPath.XPathEval</A+>, Text.XML.HXT.XPath</TD+></TR+><TR+><TD CLASS="indexentry"+>getXPathSubTreesWithNsEnv</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AgetXPathSubTreesWithNsEnv"+>Text.XML.HXT.XPath.XPathEval</A+>, Text.XML.HXT.XPath</TD+></TR+><TR+><TD CLASS="indexentry"+>getXPathWithNsEnv</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AgetXPathWithNsEnv"+>Text.XML.HXT.XPath.XPathEval</A+>, Text.XML.HXT.XPath</TD+></TR+><TR+><TD CLASS="indexentry"+>getXmlContents</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetXmlContents"+>Text.XML.HXT.Parser.XmlInput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getXmlDocument</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AgetXmlDocument"+>Text.XML.HXT.Parser.MainFunctions</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>getXmlEntityContents</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AgetXmlEntityContents"+>Text.XML.HXT.Parser.XmlInput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>gt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Agt"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>guards</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3Aguards"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>guardsM</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AguardsM"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>guessDocEncoding</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AguessDocEncoding"+>Text.XML.HXT.Parser.XmlInput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>guessEncoding</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AguessEncoding"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/doc-index-H.html view
@@ -0,0 +1,282 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Filter API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (H)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>hPutXmlDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AhPutXmlDoc"+>Text.XML.HXT.Parser.XmlOutput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>hPutXmlSource</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AhPutXmlSource"+>Text.XML.HXT.Parser.XmlOutput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>hPutXmlTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AhPutXmlTree"+>Text.XML.HXT.Parser.XmlOutput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>hasAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasAttr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>hasEntry</TD+><TD CLASS="indexlinks"+><A HREF="Data-AssocList.html#v%3AhasEntry"+>Data.AssocList</A+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>hasLocalPart</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasLocalPart"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>hasNamespace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasNamespace"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>hasNsAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasNsAttr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>hasOption</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasOption"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>hasPrefix</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasPrefix"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>hasValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AhasValue"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>haskellRepOfXmlDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AhaskellRepOfXmlDoc"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>hexStringToInt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AhexStringToInt"+>Text.XML.HXT.DOM.Util</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>httpPrefix</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AhttpPrefix"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/doc-index-I.html view
@@ -0,0 +1,1174 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Filter API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (I)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>IfThen</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#t%3AIfThen"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>ifM</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AifM"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>iff</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3Aiff"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>indentDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AindentDoc"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>initialSysState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AinitialSysState"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>inputOptions</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AinputOptions"+>Text.XML.HXT.DOM.XmlOptions</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>insertChildrenAfter</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AinsertChildrenAfter"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>insertChildrenAt</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AinsertChildrenAt"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>intToCharRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AintToCharRef"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>intToCharRefHex</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AintToCharRefHex"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>intToHexString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AintToHexString"+>Text.XML.HXT.DOM.Util</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>intValueOf</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AintValueOf"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>io</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Monad-MonadStateIO.html#v%3Aio"+>Control.Monad.MonadStateIO</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3Aio"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>is1ByteXmlChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Ais1ByteXmlChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isAttlist</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttlist"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isAttlistOfElement</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttlistOfElement"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isAttlistParameterEntity</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttlistParameterEntity"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisAttr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isAttrNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisAttrNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isCondSect</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisCondSect"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isDTDElemNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisDTDElemNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isDTDName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisDTDName"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isDeclaredNamespace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisDeclaredNamespace"+>Text.XML.HXT.DOM.NamespacePredicates</A+>, Text.XML.HXT.DOM.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isDefaultAttrKind</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisDefaultAttrKind"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isDoctype</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisDoctype"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isElemContentParamEntity</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisElemContentParamEntity"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isElemWithContent</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisElemWithContent"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isElement</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisElement"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isEmptyElement</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisEmptyElement"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isEntity</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisEntity"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isEnumAttrType</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisEnumAttrType"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isError</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisError"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isErrorNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisErrorNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isExternalParameterEntity</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisExternalParameterEntity"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isFatalError</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisFatalError"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isFixedAttrKind</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisFixedAttrKind"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isFollowingMultiByteChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisFollowingMultiByteChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isIdAttrType</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisIdAttrType"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isIdRefAttrType</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisIdRefAttrType"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isInner</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AisInner"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isInternalParameterEntity</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisInternalParameterEntity"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isLeadingMultiByteChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisLeadingMultiByteChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isLeaf</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AisLeaf"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isMixedContentElement</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisMixedContentElement"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isMultiByteChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisMultiByteChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isMultiByteXmlChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisMultiByteXmlChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isNByteChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisNByteChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isNCName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisNCName"+>Text.XML.HXT.DOM.NamespacePredicates</A+>, Text.XML.HXT.DOM.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isNamespaceDecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3AisNamespaceDecl"+>Text.XML.HXT.DOM.NamespaceFilter</A+>, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isNotInNodeList</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AisNotInNodeList"+>Text.XML.HXT.XPath.XPathFct</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isNotation</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisNotation"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isNotationAttrType</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisNotationAttrType"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isNsAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisNsAttr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isNsTag</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisNsTag"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isOf</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AisOf"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isOfAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisOfAttr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isOfAttrNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisOfAttrNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isOfNode</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AisOfNode"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isOfPi</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisOfPi"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isOfPiNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisOfPiNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isOfTag</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisOfTag"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isOfTagNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisOfTagNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isOfText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisOfText"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isOfTextNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisOfTextNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isParameterEntity</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisParameterEntity"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isPeRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisPeRef"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isPi</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisPi"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isPiNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisPiNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isRequiredAttrKind</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisRequiredAttrKind"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isRoot</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisRoot"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isRootNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisRootNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isStandaloneDocument</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AisStandaloneDocument"+>Text.XML.HXT.Parser.XmlInput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isTag</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisTag"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isTagNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisTagNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisText"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isTextNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisTextNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isUnparsedEntity</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisUnparsedEntity"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isWarning</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisWarning"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isWellformedNSDecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedNSDecl"+>Text.XML.HXT.DOM.NamespacePredicates</A+>, Text.XML.HXT.DOM.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isWellformedQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedQName"+>Text.XML.HXT.DOM.NamespacePredicates</A+>, Text.XML.HXT.DOM.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isWellformedQualifiedName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedQualifiedName"+>Text.XML.HXT.DOM.NamespacePredicates</A+>, Text.XML.HXT.DOM.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isWhiteSpace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisWhiteSpace"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXAttr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXAttrNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXAttrNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXCdata</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXCdata"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXCdataNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXCdataNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXCharRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXCharRef"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXCharRefNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXCharRefNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXCmt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXCmt"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXCmtNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXCmtNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXDTD</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXDTD"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXDTDNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXDTDNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXEntityRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXEntityRef"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXEntityRefNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXEntityRefNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXError</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXError"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXErrorNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXErrorNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXPi</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXPi"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXPiNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXPiNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXTag</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXTag"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXTagNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXTagNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXText"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXTextNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AisXTextNode"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXml11SpaceChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXml11SpaceChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlBaseChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlBaseChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlCombiningChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlCombiningChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlControlOrPermanentlyUndefined</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlControlOrPermanentlyUndefined"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlDigit</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlDigit"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlExtender</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlExtender"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlIdeographicChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlIdeographicChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlLatin1Char</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlLatin1Char"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlLetter</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlLetter"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlNCNameChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNCNameChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlNCNameStartChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNCNameStartChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlNameChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNameChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlNameStartChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlNameStartChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlPi</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisXmlPi"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlPubidChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlPubidChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isXmlSpaceChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlSpaceChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>isoLatin1</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisoLatin1"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>issueErr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueErr"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>issueError</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueError"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>issueFatal</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueFatal"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>issueWarn</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AissueWarn"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/doc-index-K.html view
@@ -0,0 +1,378 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Filter API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (K)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>KeyTab</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AKeyTab"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>k_any</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_any"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>k_cdata</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_cdata"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>k_default</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_default"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>k_empty</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_empty"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>k_enitity</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_enitity"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>k_entities</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_entities"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>k_enumeration</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_enumeration"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>k_fixed</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_fixed"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>k_id</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_id"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>k_idref</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_idref"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>k_idrefs</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_idrefs"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>k_ignore</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_ignore"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>k_implied</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_implied"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>k_include</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_include"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>k_ndata</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_ndata"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>k_nmtoken</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_nmtoken"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>k_nmtokens</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_nmtokens"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>k_notation</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_notation"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>k_pcdata</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_pcdata"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>k_peref</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_peref"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>k_public</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_public"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>k_required</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_required"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>k_system</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_system"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>keyword</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Akeyword"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>keywords</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Akeywords"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/doc-index-L.html view
@@ -0,0 +1,306 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Filter API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (L)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>Less</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ALess"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>LessEq</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ALessEq"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Literal</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALiteral"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>LiteralExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ALiteralExpr"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>LocPath</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ALocPath"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>LocalName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALocalName"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>LocationPath</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALocationPath"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>latin1ToUnicode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Alatin1ToUnicode"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>leftNT</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3AleftNT"+>Data.NavTree</A+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>liftF</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AliftF"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>liftMf</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AliftMf"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>localPart</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AlocalPart"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>localPartOf</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AlocalPartOf"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>lookup1</TD+><TD CLASS="indexlinks"+><A HREF="Data-AssocList.html#v%3Alookup1"+>Data.AssocList</A+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>lookupDef</TD+><TD CLASS="indexlinks"+><A HREF="Data-AssocList.html#v%3AlookupDef"+>Data.AssocList</A+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>lpar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Alpar"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>lt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Alt"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/doc-index-M.html view
@@ -0,0 +1,638 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Filter API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (M)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>Minus</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AMinus"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Mod</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AMod"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Mult</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AMult"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>mapNTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AmapNTree"+>Text.XML.HXT.DOM.XmlTreeTypes</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>markupdecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Amarkupdecl"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>matches</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3Amatches"+>Text.XML.HXT.Validator.RE</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Amatches"+>Text.XML.HXT.Validator.XmlRE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>maybePlus</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3AmaybePlus"+>Data.NavTree</A+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>maybeStar</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3AmaybeStar"+>Data.NavTree</A+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>maybeString2XText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmaybeString2XText"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>misc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Amisc"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkLeaf</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AmkLeaf"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkList</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AmkList"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkNTree</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AmkNTree"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkName"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AmkNode"+>Text.XML.HXT.DOM.XmlTreeTypes</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkNsName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkNsName"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkPrefixLocalPart</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkPrefixLocalPart"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkQAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkQAttr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkQAttrTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkQAttrTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkQTag</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkQTag"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkQTagTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkQTagTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkRootTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkRootTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkSNsName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkSNsName"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkTree</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AmkTree"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXAttr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXAttrTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXAttrTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXCdata</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXCdata"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXCdataTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXCdataTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXCharRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXCharRef"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXCharRefTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXCharRefTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXCmt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXCmt"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXCmtTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXCmtTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXDTD</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXDTD"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXDTDTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXDTDTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXEntityRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXEntityRef"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXEntityRefTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXEntityRefTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXError</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXError"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXErrorTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXErrorTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXNsAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXNsAttr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXNsAttrTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXNsAttrTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXNsTag</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXNsTag"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXNsTagTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXNsTagTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXPERefTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXPERefTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXPi</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXPi"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXPiTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXPiTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXTag</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXTag"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXTagTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXTagTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkXText"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXTextTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXTextTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>mkXmlDeclTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AmkXmlDeclTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>modifyAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmodifyAttr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>modifyChildren</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyChildren"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>modifyNode</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyNode"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>modifyNode0</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyNode0"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>modifyQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmodifyQName"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>modifyText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmodifyText"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>multi</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3Amulti"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/doc-index-N.html view
@@ -0,0 +1,646 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Filter API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (N)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>NAME</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3ANAME"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>NEq</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANEq"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>NOTATION</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3ANOTATION"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>NT</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3ANT"+>Data.NavTree</A+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>NTree</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"+>Data.Tree.NTree.TypeDefs</A+>, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-TypeDefs.html#v%3ANTree"+>Data.Tree.NTree.TypeDefs</A+>, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>NTrees</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"+>Data.Tree.NTree.TypeDefs</A+>, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>NaN</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANaN"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Name</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AName"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>NamePrefix</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANamePrefix"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>NameTest</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANameTest"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Namespace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANamespace"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>NamespaceTable</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#t%3ANamespaceTable"+>Text.XML.HXT.DOM.NamespaceFilter</A+>, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>NavTree</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#t%3ANavTree"+>Data.NavTree</A+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>NavXmlTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>NavXmlTrees</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTrees"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Neg0</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANeg0"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>NegInf</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANegInf"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>NodeSet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeSet"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>NodeTest</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>NsEnv</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>NumberExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ANumberExpr"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>nTreeToList</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AnTreeToList"+>Text.XML.HXT.DOM.XmlTreeTypes</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>n_comment</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3An_comment"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>n_node</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3An_node"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>n_processing_instruction</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3An_processing_instruction"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>n_text</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html#v%3An_text"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>name</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Aname"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>nameOf</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnameOf"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>namePrefix</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnamePrefix"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>nameT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AnameT"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>names</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Anames"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>namespaceOf</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnamespaceOf"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>namespaceUri</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnamespaceUri"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>ncName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AncName"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>neg</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3Aneg"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>newDocument</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnewDocument"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>newDocument'</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnewDocument%27"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>newRoot</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AnewRoot"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>nmtoken</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Anmtoken"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>nmtokenT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AnmtokenT"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>nmtokens</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Anmtokens"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>noDoubles</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AnoDoubles"+>Text.XML.HXT.DOM.Util</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>nodesTree</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AnodesTree"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>none</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3Anone"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>noneM</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AnoneM"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>normalizeAttributeValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-AttributeValueValidation.html#v%3AnormalizeAttributeValue"+>Text.XML.HXT.Validator.AttributeValueValidation</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>normalizeNL</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AnormalizeNL"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>normalizeNsUri</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnormalizeNsUri"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>normalizeNumber</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AnormalizeNumber"+>Text.XML.HXT.DOM.Util</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>normalizeWhitespace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AnormalizeWhitespace"+>Text.XML.HXT.DOM.Util</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>notContaining</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AnotContaining"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>notationDecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AnotationDecl"+>Text.XML.HXT.Parser.XmlDTDParser</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>nt2XPathTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathToString.html#v%3Ant2XPathTree"+>Text.XML.HXT.XPath.XPathToString</A+>, Text.XML.HXT.XPath</TD+></TR+><TR+><TD CLASS="indexentry"+>ntree</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3Antree"+>Data.NavTree</A+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>nullQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnullQName"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>nullable</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3Anullable"+>Text.XML.HXT.Validator.RE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>numberLines</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AnumberLines"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>numberLinesInXmlDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AnumberLinesInXmlDoc"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/doc-index-O.html view
@@ -0,0 +1,234 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Filter API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (O)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>Op</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Or</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AOr"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>o</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3Ao"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>o'</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3Ao%27"+>Data.NavTree</A+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>ofDTDequals</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AofDTDequals"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>optionIsSet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AoptionIsSet"+>Text.XML.HXT.DOM.XmlOptions</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>orElse</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AorElse"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>outputOptions</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AoutputOptions"+>Text.XML.HXT.DOM.XmlOptions</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/doc-index-P.html view
@@ -0,0 +1,752 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Filter API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (P)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>PENTITY</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3APENTITY"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>PEREF</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3APEREF"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>PI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3API"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Parent</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AParent"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Path</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3APath"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>PathExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3APathExpr"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Plus</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3APlus"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Pos0</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3APos0"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>PosInf</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3APosInf"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Preceding</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3APreceding"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>PrecedingSibling</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3APrecedingSibling"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>pI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3ApI"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>parentAxis</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AparentAxis"+>Text.XML.HXT.XPath.NavTree</A+>, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>parseContentType</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-ProtocolHandlerUtil.html#v%3AparseContentType"+>Text.XML.HXT.Parser.ProtocolHandlerUtil</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>parseDocument</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AparseDocument"+>Text.XML.HXT.Parser.MainFunctions</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>parseHtmlContent</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AparseHtmlContent"+>Text.XML.HXT.Parser.HtmlParsec</A+>, Text.XML.HXT.Parser.HtmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>parseHtmlDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-HtmlParser.html#v%3AparseHtmlDoc"+>Text.XML.HXT.Parser.HtmlParser</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>parseHtmlDocument</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AparseHtmlDocument"+>Text.XML.HXT.Parser.HtmlParsec</A+>, Text.XML.HXT.Parser.HtmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>parseHtmlText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AparseHtmlText"+>Text.XML.HXT.Parser.HtmlParsec</A+>, Text.XML.HXT.Parser.HtmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>parseNMToken</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseNMToken"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>parseName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseName"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>parseNumber</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathParser.html#v%3AparseNumber"+>Text.XML.HXT.XPath.XPathParser</A+>, Text.XML.HXT.XPath</TD+></TR+><TR+><TD CLASS="indexentry"+>parseXPath</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathParser.html#v%3AparseXPath"+>Text.XML.HXT.XPath.XPathParser</A+>, Text.XML.HXT.XPath</TD+></TR+><TR+><TD CLASS="indexentry"+>parseXmlAttrValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlAttrValue"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>parseXmlContent</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlContent"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>parseXmlDTDEntityValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AparseXmlDTDEntityValue"+>Text.XML.HXT.Parser.XmlDTDParser</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>parseXmlDTDPart</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlDTDPart"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>parseXmlDTDdecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AparseXmlDTDdecl"+>Text.XML.HXT.Parser.XmlDTDParser</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>parseXmlDTDdeclPart</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AparseXmlDTDdeclPart"+>Text.XML.HXT.Parser.XmlDTDParser</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>parseXmlDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParser.html#v%3AparseXmlDoc"+>Text.XML.HXT.Parser.XmlParser</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>parseXmlDocEncodingSpec</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlDocEncodingSpec"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>parseXmlDocument</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlDocument"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>parseXmlEncodingSpec</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlEncodingSpec"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>parseXmlEntityEncodingSpec</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlEntityEncodingSpec"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>parseXmlGeneralEntityValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlGeneralEntityValue"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>parseXmlPart</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlPart"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>parseXmlText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlText"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>peReference</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3ApeReference"+>Text.XML.HXT.Parser.XmlDTDTokenParser</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3ApeReference"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>peReferenceT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3ApeReferenceT"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>percent</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3Apercent"+>Text.XML.HXT.Parser.XmlDTDTokenParser</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>performAction</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AperformAction"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>popen</TD+><TD CLASS="indexlinks"+><A HREF="System-PipeOpen.html#v%3Apopen"+>System.PipeOpen</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>precedingAxis</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AprecedingAxis"+>Text.XML.HXT.XPath.NavTree</A+>, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>precedingSiblingAxis</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AprecedingSiblingAxis"+>Text.XML.HXT.XPath.NavTree</A+>, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>pred2XPathTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathToString.html#v%3Apred2XPathTree"+>Text.XML.HXT.XPath.XPathToString</A+>, Text.XML.HXT.XPath</TD+></TR+><TR+><TD CLASS="indexentry"+>prefixOf</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AprefixOf"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>preorderNT</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3ApreorderNT"+>Data.NavTree</A+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>printRE</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3AprintRE"+>Text.XML.HXT.Validator.RE</A+>, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3AprintRE"+>Text.XML.HXT.Validator.XmlRE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>processAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AprocessAttr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>processAttrM</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AprocessAttrM"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>processAttrl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AprocessAttrl"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>processBottomUp</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUp"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>processBottomUpIfNot</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUpIfNot"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>processBottomUpM</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUpM"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>processChildren</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessChildren"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>processChildrenM</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessChildrenM"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>processDTD</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-DTDProcessing.html#v%3AprocessDTD"+>Text.XML.HXT.Parser.DTDProcessing</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>processGeneralEntities</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-DTDProcessing.html#v%3AprocessGeneralEntities"+>Text.XML.HXT.Parser.DTDProcessing</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>processTopDown</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDown"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>processTopDownM</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDownM"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>processTopDownUntil</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDownUntil"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>prolog</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Aprolog"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>propagateAndValidateNamespaces</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Namespace.html#v%3ApropagateAndValidateNamespaces"+>Text.XML.HXT.DOM.Namespace</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>propagateNamespaceEnv</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3ApropagateNamespaceEnv"+>Text.XML.HXT.DOM.NamespaceFilter</A+>, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>propagateNamespaces</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3ApropagateNamespaces"+>Text.XML.HXT.DOM.NamespaceFilter</A+>, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>pubidLiteral</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3ApubidLiteral"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>putXmlDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AputXmlDoc"+>Text.XML.HXT.Parser.XmlOutput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>putXmlDocToFile</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AputXmlDocToFile"+>Text.XML.HXT.Parser.XmlOutput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>putXmlDocument</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AputXmlDocument"+>Text.XML.HXT.Parser.MainFunctions</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>putXmlSource</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AputXmlSource"+>Text.XML.HXT.Parser.XmlOutput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>putXmlTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AputXmlTree"+>Text.XML.HXT.Parser.XmlOutput</A+>, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/doc-index-Q.html view
@@ -0,0 +1,234 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Filter API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (Q)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>QN</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AQN"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>QName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>qName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AqName"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>qattr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aqattr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>qetag</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aqetag"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>qtag</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aqtag"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>qualifiedName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AqualifiedName"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>quoted</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Aquoted"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/doc-index-R.html view
@@ -0,0 +1,590 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Filter API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (R)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>RE</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#t%3ARE"+>Text.XML.HXT.Validator.RE</A+>, <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"+>Text.XML.HXT.Validator.XmlRE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>RE_ALT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_ALT"+>Text.XML.HXT.Validator.RE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>RE_DOT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_DOT"+>Text.XML.HXT.Validator.RE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>RE_OPT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_OPT"+>Text.XML.HXT.Validator.RE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>RE_PLUS</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_PLUS"+>Text.XML.HXT.Validator.RE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>RE_REP</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_REP"+>Text.XML.HXT.Validator.RE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>RE_SEQ</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_SEQ"+>Text.XML.HXT.Validator.RE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>RE_SYM</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_SYM"+>Text.XML.HXT.Validator.RE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>RE_UNIT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_UNIT"+>Text.XML.HXT.Validator.RE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>RE_ZERO</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3ARE_ZERO"+>Text.XML.HXT.Validator.RE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Rel</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ARel"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>re_alt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_alt"+>Text.XML.HXT.Validator.RE</A+>, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_alt"+>Text.XML.HXT.Validator.XmlRE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>re_dot</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_dot"+>Text.XML.HXT.Validator.RE</A+>, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_dot"+>Text.XML.HXT.Validator.XmlRE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>re_opt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_opt"+>Text.XML.HXT.Validator.RE</A+>, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_opt"+>Text.XML.HXT.Validator.XmlRE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>re_plus</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_plus"+>Text.XML.HXT.Validator.RE</A+>, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_plus"+>Text.XML.HXT.Validator.XmlRE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>re_rep</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_rep"+>Text.XML.HXT.Validator.RE</A+>, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_rep"+>Text.XML.HXT.Validator.XmlRE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>re_seq</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_seq"+>Text.XML.HXT.Validator.RE</A+>, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_seq"+>Text.XML.HXT.Validator.XmlRE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>re_sym</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_sym"+>Text.XML.HXT.Validator.RE</A+>, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_sym"+>Text.XML.HXT.Validator.XmlRE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>re_unit</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_unit"+>Text.XML.HXT.Validator.RE</A+>, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_unit"+>Text.XML.HXT.Validator.XmlRE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>re_zero</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-RE.html#v%3Are_zero"+>Text.XML.HXT.Validator.RE</A+>, <A HREF="Text-XML-HXT-Validator-XmlRE.html#v%3Are_zero"+>Text.XML.HXT.Validator.XmlRE</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>reference</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Areference"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>referenceT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AreferenceT"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>relaxNamespace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3ArelaxNamespace"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>relaxOptions</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3ArelaxOptions"+>Text.XML.HXT.DOM.XmlOptions</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>remDups</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AremDups"+>Text.XML.HXT.XPath.XPathFct</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>removeAllComment</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveAllComment"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>removeAllWhiteSpace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveAllWhiteSpace"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>removeComment</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveComment"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>removeDocWhiteSpace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveDocWhiteSpace"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>removeDoublicateDefs</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-DTDValidation.html#v%3AremoveDoublicateDefs"+>Text.XML.HXT.Validator.DTDValidation</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-ValidationFilter.html#v%3AremoveDoublicateDefs"+>Text.XML.HXT.Validator.ValidationFilter</A+>, Text.XML.HXT.Validator.Validation, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>removeEncodingSpec</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AremoveEncodingSpec"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>removeOptions</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AremoveOptions"+>Text.XML.HXT.DOM.XmlOptions</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>removeWhiteSpace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AremoveWhiteSpace"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>replaceAttrl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AreplaceAttrl"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>replaceChildren</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AreplaceChildren"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>replaceNode</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AreplaceNode"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>replaceQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AreplaceQName"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>revPreorderNT</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3ArevPreorderNT"+>Data.NavTree</A+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>rightNT</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3ArightNT"+>Data.NavTree</A+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>rootTag</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3ArootTag"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>rpar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Arpar"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>run</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Monad-MonadStateIO.html#v%3Arun"+>Control.Monad.MonadStateIO</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3Arun"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>run'</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3Arun%27"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>run0</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3Arun0"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>runHtmlParser</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-HtmlParser.html#v%3ArunHtmlParser"+>Text.XML.HXT.Parser.HtmlParser</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>runInLocalURIContext</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3ArunInLocalURIContext"+>Text.XML.HXT.Parser.XmlInput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>runInNewURIContext</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3ArunInNewURIContext"+>Text.XML.HXT.Parser.XmlInput</A+>, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/doc-index-S.html view
@@ -0,0 +1,890 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Filter API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (S)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>STIO</TD+><TD CLASS="indexlinks"+><A HREF="Control-Monad-MonadStateIO.html#v%3ASTIO"+>Control.Monad.MonadStateIO</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Self</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ASelf"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>StateIO</TD+><TD CLASS="indexlinks"+><A HREF="Control-Monad-MonadStateIO.html#t%3AStateIO"+>Control.Monad.MonadStateIO</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Step</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AStep"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>SysState</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysState"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3ASysState"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>SysStateAttrs</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#t%3ASysStateAttrs"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>sDDecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AsDDecl"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>sPace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsPace"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>sPace0</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsPace0"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>satisfies</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3Asatisfies"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>sattr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Asattr"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>selectOptions</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AselectOptions"+>Text.XML.HXT.DOM.XmlOptions</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>selfAxis</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AselfAxis"+>Text.XML.HXT.XPath.NavTree</A+>, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>semi</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Asemi"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>separator</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Aseparator"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>seqF</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AseqF"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>seqM</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AseqM"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>setBaseURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlInput.html#v%3AsetBaseURI"+>Text.XML.HXT.Parser.XmlInput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>setChildren</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AsetChildren"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>setDefaultURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-DefaultURI.html#v%3AsetDefaultURI"+>Text.XML.HXT.Parser.DefaultURI</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>setErrorMsgLevel</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetErrorMsgLevel"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>setNamespace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AsetNamespace"+>Text.XML.HXT.DOM.NamespacePredicates</A+>, Text.XML.HXT.DOM.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>setNode</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#v%3AsetNode"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>setState</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Control-Monad-MonadStateIO.html#v%3AsetState"+>Control.Monad.MonadStateIO</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetState"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>setStatus</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetStatus"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>setSysErrorHandler</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSysErrorHandler"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>setSysParam</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSysParam"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>setSysParamInt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSysParamInt"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>setSysParamTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSysParamTree"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>setSysState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSysState"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>setSystemParams</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetSystemParams"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>setTraceLevel</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsetTraceLevel"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showApos</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowApos"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowAttr"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showBlank</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowBlank"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showContent</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowContent"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showElemType</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowElemType"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showEntity</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowEntity"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showEntityValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowEntityValue"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showEq</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowEq"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showExternalId</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowExternalId"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showGt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowGt"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showLpar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowLpar"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showLt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowLt"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showNData</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowNData"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showNL</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowNL"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showOptions</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AshowOptions"+>Text.XML.HXT.DOM.XmlOptions</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showPEAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowPEAttr"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showQName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowQName"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showQuot</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowQuot"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showQuoteString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowQuoteString"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showRpar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowRpar"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showSlash</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowSlash"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showXCharRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowXCharRef"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showXEntityRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowXEntityRef"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showXErrors</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowXErrors"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showXText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowXText"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showXmlDTD</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowXmlDTD"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showXmlTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowXmlTree"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showXmlTrees</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowXmlTrees"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>showXmlTrees'</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AshowXmlTrees%27"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>singleChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsingleChar"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>singleChars</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsingleChars"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>singleCharsT</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsingleCharsT"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>singles</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3Asingles"+>Text.XML.HXT.DOM.Util</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>skipS</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AskipS"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>skipS0</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AskipS0"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>spi</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aspi"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>sq</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Asq"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>stag</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Astag"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>statusOk</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AstatusOk"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>strict</TD+><TD CLASS="indexlinks"+><A HREF="Control-Strategies-DeepSeq.html#v%3Astrict"+>Control.Strategies.DeepSeq</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>stringEscapeXml</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringEscapeXml"+>Text.XML.HXT.DOM.Util</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>stringProtocol</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AstringProtocol"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>stringToHexString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringToHexString"+>Text.XML.HXT.DOM.Util</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>stringToInt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringToInt"+>Text.XML.HXT.DOM.Util</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>stringToUpper</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringToUpper"+>Text.XML.HXT.DOM.Util</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>stringTrim</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AstringTrim"+>Text.XML.HXT.DOM.Util</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>stringValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AstringValue"+>Text.XML.HXT.XPath.XPathFct</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>substChildren</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AsubstChildren"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>substHtmlEntities</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AsubstHtmlEntities"+>Text.XML.HXT.Parser.HtmlParsec</A+>, Text.XML.HXT.Parser.HtmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>substXmlEntities</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AsubstXmlEntities"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>subtreeNT</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3AsubtreeNT"+>Data.NavTree</A+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>sysState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsysState"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>sysStateAttrs</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsysStateAttrs"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>sysStateErrorHandler</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AsysStateErrorHandler"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>systemLiteral</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsystemLiteral"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/doc-index-T.html view
@@ -0,0 +1,542 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Filter API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (T)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>TFilter</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>TSFilter</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#t%3ATSFilter"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>TagName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"+>Text.XML.HXT.DOM.XmlTreeTypes</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>Tree</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-Class.html#t%3ATree"+>Data.Tree.Class</A+>, Data.Tree.NTree.TypeDefs, Data.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>TypeTest</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3ATypeTest"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>tName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AtName"+>Text.XML.HXT.DOM.XmlTreeTypes</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>t_root</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3At_root"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>t_xml</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3At_xml"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>tag</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Atag"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>textDecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AtextDecl"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>textEscapeXml</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Util.html#v%3AtextEscapeXml"+>Text.XML.HXT.DOM.Util</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>this</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3Athis"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>thisM</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AthisM"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>thisNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AthisNode"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>toAttrl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AtoAttrl"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>toTreel</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AtoTreel"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>toXPathTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathToString.html#v%3AtoXPathTree"+>Text.XML.HXT.XPath.XPathToString</A+>, Text.XML.HXT.XPath</TD+></TR+><TR+><TD CLASS="indexentry"+>toXValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3AtoXValue"+>Text.XML.HXT.XPath.XPathFct</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>trace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3Atrace"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>traceCmd</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AtraceCmd"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>traceF</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AtraceF"+>Text.XML.HXT.Parser.XmlOutput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>traceMsg</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AtraceMsg"+>Text.XML.HXT.Parser.XmlOutput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>traceSource</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AtraceSource"+>Text.XML.HXT.Parser.XmlOutput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>traceState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AtraceState"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>traceTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlOutput.html#v%3AtraceTree"+>Text.XML.HXT.Parser.XmlOutput</A+>, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>trans</TD+><TD CLASS="indexlinks"+><A HREF="Control-Monad-MonadStateIO.html#v%3Atrans"+>Control.Monad.MonadStateIO</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>transfAllCdata</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtransfAllCdata"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>transfAllCdataEscaped</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtransfAllCdataEscaped"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>transfAllCharRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtransfAllCharRef"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>transfCdata</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtransfCdata"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>transfCdataEscaped</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtransfCdataEscaped"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>transfCharRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtransfCharRef"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>transferDefaultURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferDefaultURI"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>transferEncoding</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferEncoding"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>transferMessage</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferMessage"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>transferMimeType</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferMimeType"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>transferPrefix</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferPrefix"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>transferProtocol</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferProtocol"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>transferStatus</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferStatus"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>transferURI</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferURI"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>transferVersion</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AtransferVersion"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>transform</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-DocTransformation.html#v%3Atransform"+>Text.XML.HXT.Validator.DocTransformation</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-ValidationFilter.html#v%3Atransform"+>Text.XML.HXT.Validator.ValidationFilter</A+>, Text.XML.HXT.Validator.Validation, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>trcState</TD+><TD CLASS="indexlinks"+><A HREF="Control-Monad-MonadStateIO.html#v%3AtrcState"+>Control.Monad.MonadStateIO</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>treeRepOfXmlDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AtreeRepOfXmlDoc"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>txt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Atxt"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/doc-index-U.html view
@@ -0,0 +1,434 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Filter API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (U)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>UString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>UTF8Char</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8Char"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>UTF8String</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Unary</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AUnary"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Unicode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Union</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AUnion"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>ucs2</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aucs2"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>ucs2BigEndianToUnicode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Aucs2BigEndianToUnicode"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>ucs2LittleEndianToUnicode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Aucs2LittleEndianToUnicode"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>ucs2ToUnicode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Aucs2ToUnicode"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>unicodeCharToUtf8</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeCharToUtf8"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>unicodeRemoveNoneAscii</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeRemoveNoneAscii"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>unicodeRemoveNoneLatin1</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeRemoveNoneLatin1"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>unicodeString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AunicodeString"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>unicodeToLatin1</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToLatin1"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>unicodeToUtf8</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToUtf8"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>unicodeToXmlEntity</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AunicodeToXmlEntity"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>universalName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AuniversalName"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>universalNameOf</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AuniversalNameOf"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>universalUri</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AuniversalUri"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>unparseXmlDoc</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AunparseXmlDoc"+>Text.XML.HXT.DOM.EditFilters</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>upNT</TD+><TD CLASS="indexlinks"+><A HREF="Data-NavTree.html#v%3AupNT"+>Data.NavTree</A+>, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD+></TR+><TR+><TD CLASS="indexentry"+>usAscii</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AusAscii"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>userState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AuserState"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>utf16</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf16"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>utf16be</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf16be"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>utf16beToUnicode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Autf16beToUnicode"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>utf16le</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf16le"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>utf16leToUnicode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Autf16leToUnicode"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>utf8</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Autf8"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>utf8ToUnicode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Autf8ToUnicode"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>utf8ToUnicodeChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Autf8ToUnicodeChar"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>utf8WithByteMarkToUnicode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Autf8WithByteMarkToUnicode"+>Text.XML.HXT.DOM.Unicode</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/doc-index-V.html view
@@ -0,0 +1,434 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Filter API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (V)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>VarExpr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AVarExpr"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>VarName</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarName"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>VarTab</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarTab"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>v_0</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_0"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>v_1</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_1"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>v_any</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_any"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>v_children</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_children"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>v_choice</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_choice"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>v_empty</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_empty"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>v_mixed</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_mixed"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>v_no</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_no"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>v_null</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_null"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>v_option</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_option"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>v_pcdata</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_pcdata"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>v_plus</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_plus"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>v_seq</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_seq"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>v_star</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_star"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>v_yes</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_yes"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>validate</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-ValidationFilter.html#v%3Avalidate"+>Text.XML.HXT.Validator.ValidationFilter</A+>, Text.XML.HXT.Validator.Validation, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>validate1Namespaces</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3Avalidate1Namespaces"+>Text.XML.HXT.DOM.NamespaceFilter</A+>, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>validateDTD</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-DTDValidation.html#v%3AvalidateDTD"+>Text.XML.HXT.Validator.DTDValidation</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-ValidationFilter.html#v%3AvalidateDTD"+>Text.XML.HXT.Validator.ValidationFilter</A+>, Text.XML.HXT.Validator.Validation, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>validateDoc</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-DocValidation.html#v%3AvalidateDoc"+>Text.XML.HXT.Validator.DocValidation</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Function)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-ValidationFilter.html#v%3AvalidateDoc"+>Text.XML.HXT.Validator.ValidationFilter</A+>, Text.XML.HXT.Validator.Validation, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>validateIds</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Validator-IdValidation.html#v%3AvalidateIds"+>Text.XML.HXT.Validator.IdValidation</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>validateNamespaces</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#v%3AvalidateNamespaces"+>Text.XML.HXT.DOM.NamespaceFilter</A+>, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>valueOf</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AvalueOf"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>valueOfDTD</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AvalueOfDTD"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>varEnv</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AvarEnv"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>versionInfo</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AversionInfo"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>versionNum</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AversionNum"+>Text.XML.HXT.Parser.XmlTokenParser</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>versionOptions</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AversionOptions"+>Text.XML.HXT.DOM.XmlOptions</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/doc-index-W.html view
@@ -0,0 +1,218 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Filter API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (W)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>warn</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Awarn"+>Text.XML.HXT.DOM.XmlTreeFilter</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>when</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3Awhen"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>whenM</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenM"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>whenNot</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNot"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>whenNotM</TD+><TD CLASS="indexlinks"+><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNotM"+>Data.Tree.NTree.Filter</A+>, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>writeDocument</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-MainFunctions.html#v%3AwriteDocument"+>Text.XML.HXT.Parser.MainFunctions</A+>, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/doc-index-X.html view
@@ -0,0 +1,750 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Filter API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index (X)</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD CLASS="indexentry"+>XAttr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXAttr"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>XCdata</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXCdata"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>XCharRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXCharRef"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>XCmt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXCmt"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>XDTD</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXDTD"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>XEntityRef</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXEntityRef"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>XError</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXError"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>XFct</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"+>Text.XML.HXT.XPath.XPathFct</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>XNS</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXNS"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>XNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>XPCommentNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPCommentNode"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>XPNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPNode"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>XPNumber</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>XPPINode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPPINode"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>XPTextNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPTextNode"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>XPVBool</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPVBool"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>XPVError</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPVError"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>XPVNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPVNode"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>XPVNumber</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPVNumber"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>XPVString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPVString"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>XPathFilter</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>XPathNode</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathNode"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>XPathValue</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>XPi</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXPi"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>XState</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>XStep</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXStep"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>XTag</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXTag"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>XText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AXText"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>XmlFilter</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"+>Text.XML.HXT.DOM.XmlTreeTypes</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>XmlNodeSet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>XmlSFilter</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlSFilter"+>Text.XML.HXT.DOM.XmlTreeTypes</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry" COLSPAN="2"+>XmlState</TD+></TR+><TR+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlState"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AXmlState"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>XmlStateFilter</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"+>Text.XML.HXT.DOM.XmlState</A+>, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>XmlTree</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>XmlTrees</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"+>Text.XML.HXT.DOM.TypeDefs</A+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>xMLDecl</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AxMLDecl"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>xMLDecl'</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AxMLDecl%27"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>xPValue2NodeSet</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathToNodeSet.html#v%3AxPValue2NodeSet"+>Text.XML.HXT.XPath.XPathToNodeSet</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xPValue2String</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathToString.html#v%3AxPValue2String"+>Text.XML.HXT.XPath.XPathToString</A+>, Text.XML.HXT.XPath</TD+></TR+><TR+><TD CLASS="indexentry"+>xPValue2XmlTrees</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathToString.html#v%3AxPValue2XmlTrees"+>Text.XML.HXT.XPath.XPathToString</A+>, Text.XML.HXT.XPath</TD+></TR+><TR+><TD CLASS="indexentry"+>xPathAdd</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathArithmetic.html#v%3AxPathAdd"+>Text.XML.HXT.XPath.XPathArithmetic</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xPathDiv</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathArithmetic.html#v%3AxPathDiv"+>Text.XML.HXT.XPath.XPathArithmetic</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xPathMod</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathArithmetic.html#v%3AxPathMod"+>Text.XML.HXT.XPath.XPathArithmetic</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xPathMulti</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathArithmetic.html#v%3AxPathMulti"+>Text.XML.HXT.XPath.XPathArithmetic</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xPathUnary</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathArithmetic.html#v%3AxPathUnary"+>Text.XML.HXT.XPath.XPathArithmetic</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xattr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axattr"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>xboolean</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3Axboolean"+>Text.XML.HXT.XPath.XPathFct</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xcmt</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axcmt"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>xerr</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axerr"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>xhtmlEntities</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AxhtmlEntities"+>Text.XML.HXT.Parser.HtmlParsec</A+>, Text.XML.HXT.Parser.HtmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>xmlChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlCharParser.html#v%3AxmlChar"+>Text.XML.HXT.Parser.XmlCharParser</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xmlContentModelToString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AxmlContentModelToString"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>xmlEntities</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AxmlEntities"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>xmlLetter</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlCharParser.html#v%3AxmlLetter"+>Text.XML.HXT.Parser.XmlCharParser</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xmlNCNameChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlCharParser.html#v%3AxmlNCNameChar"+>Text.XML.HXT.Parser.XmlCharParser</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xmlNCNameStartChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlCharParser.html#v%3AxmlNCNameStartChar"+>Text.XML.HXT.Parser.XmlCharParser</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xmlNameChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlCharParser.html#v%3AxmlNameChar"+>Text.XML.HXT.Parser.XmlCharParser</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xmlNameStartChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlCharParser.html#v%3AxmlNameStartChar"+>Text.XML.HXT.Parser.XmlCharParser</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xmlNamespace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AxmlNamespace"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>xmlSpaceChar</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlCharParser.html#v%3AxmlSpaceChar"+>Text.XML.HXT.Parser.XmlCharParser</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xmlTreesToString</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AxmlTreesToString"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>xmlTreesToText</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AxmlTreesToText"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>xmlnsNamespace</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AxmlnsNamespace"+>Text.XML.HXT.DOM.XmlKeywords</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>xmlnsQN</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AxmlnsQN"+>Text.XML.HXT.DOM.NamespacePredicates</A+>, Text.XML.HXT.DOM.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>xnumber</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3Axnumber"+>Text.XML.HXT.XPath.XPathFct</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xread</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Axread"+>Text.XML.HXT.Parser.XmlParsec</A+>, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>xshow</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axshow"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>xstring</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-XPath-XPathFct.html#v%3Axstring"+>Text.XML.HXT.XPath.XPathFct</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>xtag</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axtag"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>xtext</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axtext"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+><TR+><TD CLASS="indexentry"+>xwarn</TD+><TD CLASS="indexlinks"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axwarn"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/doc-index.html view
@@ -0,0 +1,164 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Filter API (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Index</TD+></TR+><TR+><TD+><TABLE CELLPADDING="0" CELLSPACING="5"+><TR+><TD+><A HREF="doc-index-A.html"+>A</A+></TD+><TD+><A HREF="doc-index-B.html"+>B</A+></TD+><TD+><A HREF="doc-index-C.html"+>C</A+></TD+><TD+><A HREF="doc-index-D.html"+>D</A+></TD+><TD+><A HREF="doc-index-E.html"+>E</A+></TD+><TD+><A HREF="doc-index-F.html"+>F</A+></TD+><TD+><A HREF="doc-index-G.html"+>G</A+></TD+><TD+><A HREF="doc-index-H.html"+>H</A+></TD+><TD+><A HREF="doc-index-I.html"+>I</A+></TD+><TD+><A HREF="doc-index-K.html"+>K</A+></TD+><TD+><A HREF="doc-index-L.html"+>L</A+></TD+><TD+><A HREF="doc-index-M.html"+>M</A+></TD+><TD+><A HREF="doc-index-N.html"+>N</A+></TD+><TD+><A HREF="doc-index-O.html"+>O</A+></TD+><TD+><A HREF="doc-index-P.html"+>P</A+></TD+><TD+><A HREF="doc-index-Q.html"+>Q</A+></TD+><TD+><A HREF="doc-index-R.html"+>R</A+></TD+><TD+><A HREF="doc-index-S.html"+>S</A+></TD+><TD+><A HREF="doc-index-T.html"+>T</A+></TD+><TD+><A HREF="doc-index-U.html"+>U</A+></TD+><TD+><A HREF="doc-index-V.html"+>V</A+></TD+><TD+><A HREF="doc-index-W.html"+>W</A+></TD+><TD+><A HREF="doc-index-X.html"+>X</A+></TD+><TD+><A HREF="doc-index-58.html"+>:</A+></TD+><TD+><A HREF="doc-index-36.html"+>$</A+></TD+><TD+><A HREF="doc-index-43.html"+>+</A+></TD+><TD+><A HREF="doc-index-46.html"+>.</A+></TD+><TD+><A HREF="doc-index-47.html"+>/</A+></TD+><TD+><A HREF="doc-index-60.html"+>&lt;</A+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/haddock.css view
@@ -0,0 +1,235 @@+/* -------- Global things --------- */++BODY { +  background-color: #ffffff;+  color: #000000;+  font-family: sans-serif;+  } ++A:link    { color: #0000e0; text-decoration: none }+A:visited { color: #0000a0; text-decoration: none }+A:hover   { background-color: #e0e0ff; text-decoration: none }++TABLE.vanilla {+  width: 100%;+  border-width: 0px;+  /* I can't seem to specify cellspacing or cellpadding properly using CSS... */+}++TABLE.vanilla2 {+  border-width: 0px;+}++/* <TT> font is a little too small in MSIE */+TT  { font-size: 100%; }+PRE { font-size: 100%; }++LI P { margin: 0pt } ++TD {+  border-width: 0px;+}++TABLE.narrow {+  border-width: 0px;+}++TD.s8  {  height: 8px;  }+TD.s15 {  height: 15px; }++SPAN.keyword { text-decoration: underline; }++/* Resize the buttom image to match the text size */+IMG.coll { width : 0.75em; height: 0.75em; margin-bottom: 0; margin-right: 0.5em }++/* --------- Contents page ---------- */++DIV.node {+  padding-left: 3em;+}++DIV.cnode {+  padding-left: 1.75em;+}++SPAN.pkg {+  position: absolute;+  left: 50em;+}++/* --------- Documentation elements ---------- */++TD.children {+  padding-left: 25px;+  }++TD.synopsis {+  padding: 2px;+  background-color: #f0f0f0;+  font-family: monospace+ }++TD.decl { +  padding: 2px;+  background-color: #f0f0f0; +  font-family: monospace;+  vertical-align: top;+  }++/* +  arg is just like decl, except that wrapping is not allowed.  It is+  used for function and constructor arguments which have a text box+  to the right, where if wrapping is allowed the text box squashes up+  the declaration by wrapping it.+*/+TD.arg { +  padding: 2px;+  background-color: #f0f0f0; +  font-family: monospace;+  vertical-align: top;+  white-space: nowrap;+  }++TD.recfield { padding-left: 20px }++TD.doc  { +  padding-top: 2px;+  padding-left: 10px;+  }++TD.ndoc  { +  padding: 2px;+  }++TD.rdoc  { +  padding: 2px;+  padding-left: 10px;+  width: 100%;+  }++TD.body  { +  padding-left: 10px+  }++TD.pkg {+  width: 100%;+  padding-left: 10px+}++TD.indexentry {+  vertical-align: top;+  padding-right: 10px+  }++TD.indexannot {+  vertical-align: top;+  padding-left: 20px;+  white-space: nowrap+  }++TD.indexlinks {+  width: 100%+  }++/* ------- Section Headings ------- */++TD.section1 {+  padding-top: 15px;+  font-weight: bold;+  font-size: 150%+  }++TD.section2 {+  padding-top: 10px;+  font-weight: bold;+  font-size: 130%+  }++TD.section3 {+  padding-top: 5px;+  font-weight: bold;+  font-size: 110%+  }++TD.section4 {+  font-weight: bold;+  font-size: 100%+  }++/* -------------- The title bar at the top of the page */++TD.infohead {+  color: #ffffff;+  font-weight: bold;+  padding-right: 10px;+  text-align: left;+}++TD.infoval {+  color: #ffffff;+  padding-right: 10px;+  text-align: left;+}++TD.topbar {+  background-color: #000099;+  padding: 5px;+}++TD.title {+  color: #ffffff;+  padding-left: 10px;+  width: 100%+  }++TD.topbut {+  padding-left: 5px;+  padding-right: 5px;+  border-left-width: 1px;+  border-left-color: #ffffff;+  border-left-style: solid;+  white-space: nowrap;+  }++TD.topbut A:link {+  color: #ffffff+  }++TD.topbut A:visited {+  color: #ffff00+  }++TD.topbut A:hover {+  background-color: #6060ff;+  }++TD.topbut:hover {+  background-color: #6060ff+  }++TD.modulebar { +  background-color: #0077dd;+  padding: 5px;+  border-top-width: 1px;+  border-top-color: #ffffff;+  border-top-style: solid;+  }++/* --------- The page footer --------- */++TD.botbar {+  background-color: #000099;+  color: #ffffff;+  padding: 5px+  }+TD.botbar A:link {+  color: #ffffff;+  text-decoration: underline+  }+TD.botbar A:visited {+  color: #ffff00+  }+TD.botbar A:hover {+  background-color: #6060ff+  }+
+ doc/hdoc_filter/haddock.js view
@@ -0,0 +1,15 @@+// Haddock JavaScript utilities+function toggle(button,id)+{+   var n = document.getElementById(id).style;+   if (n.display == "none")+   {+	button.src = "minus.gif";+	n.display = "block";+   }+   else+   {+	button.src = "plus.gif";+	n.display = "none";+   }+}
+ doc/hdoc_filter/haskell_icon.gif view

binary file changed (absent → 911 bytes)

+ doc/hdoc_filter/index.html view
@@ -0,0 +1,874 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Haskell Xml Toolbox 7.1: The Filter API</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>Haskell Xml Toolbox 7.1: The Filter API</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>Modules</TD+></TR+><TR+><TD+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0"+><TR+><TD STYLE="width: 50em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:0')" ALT="show/hide"+>Control</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:0" STYLE="display:block;"+><TR+><TD STYLE="width: 48em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:1')" ALT="show/hide"+>Monad</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:1" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 46em"+><A HREF="Control-Monad-MonadStateIO.html"+>Control.Monad.MonadStateIO</A+></TD+><TD+></TD+><TD+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD STYLE="width: 48em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:2')" ALT="show/hide"+>Strategies</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:2" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 46em"+><A HREF="Control-Strategies-DeepSeq.html"+>Control.Strategies.DeepSeq</A+></TD+><TD+></TD+><TD+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD STYLE="width: 50em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:3')" ALT="show/hide"+>Data</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:3" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 48em"+><A HREF="Data-AssocList.html"+>Data.AssocList</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 48em"+><A HREF="Data-NavTree.html"+>Data.NavTree</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="width: 48em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:4')" ALT="show/hide"+>Tree</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:4" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 46em"+><A HREF="Data-Tree-Class.html"+>Data.Tree.Class</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="width: 46em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:5')" ALT="show/hide"+>NTree</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:5" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 44em"+><A HREF="Data-Tree-NTree-Filter.html"+>Data.Tree.NTree.Filter</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 44em"+><A HREF="Data-Tree-NTree-TypeDefs.html"+>Data.Tree.NTree.TypeDefs</A+></TD+><TD+></TD+><TD+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD STYLE="width: 50em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:6')" ALT="show/hide"+>System</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:6" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 48em"+><A HREF="System-PipeOpen.html"+>System.PipeOpen</A+></TD+><TD+></TD+><TD+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD STYLE="width: 50em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:7')" ALT="show/hide"+>Text</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:7" STYLE="display:block;"+><TR+><TD STYLE="width: 48em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:8')" ALT="show/hide"+>XML</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:8" STYLE="display:block;"+><TR+><TD STYLE="width: 46em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:9')" ALT="show/hide"+>HXT</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:9" STYLE="display:block;"+><TR+><TD STYLE="width: 44em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:10')" ALT="show/hide"+><A HREF="Text-XML-HXT-DOM.html"+>Text.XML.HXT.DOM</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:10" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-EditFilters.html"+>Text.XML.HXT.DOM.EditFilters</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-FormatXmlTree.html"+>Text.XML.HXT.DOM.FormatXmlTree</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-Namespace.html"+>Text.XML.HXT.DOM.Namespace</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-NamespaceFilter.html"+>Text.XML.HXT.DOM.NamespaceFilter</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html"+>Text.XML.HXT.DOM.NamespacePredicates</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-TypeDefs.html"+>Text.XML.HXT.DOM.TypeDefs</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-Unicode.html"+>Text.XML.HXT.DOM.Unicode</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-Util.html"+>Text.XML.HXT.DOM.Util</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html"+>Text.XML.HXT.DOM.XmlKeywords</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-XmlOptions.html"+>Text.XML.HXT.DOM.XmlOptions</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-XmlState.html"+>Text.XML.HXT.DOM.XmlState</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-XmlTree.html"+>Text.XML.HXT.DOM.XmlTree</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html"+>Text.XML.HXT.DOM.XmlTreeFilter</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html"+>Text.XML.HXT.DOM.XmlTreeFunctions</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html"+>Text.XML.HXT.DOM.XmlTreeTypes</A+></TD+><TD+></TD+><TD+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD STYLE="width: 44em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:11')" ALT="show/hide"+><A HREF="Text-XML-HXT-Parser.html"+>Text.XML.HXT.Parser</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:11" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-DTDProcessing.html"+>Text.XML.HXT.Parser.DTDProcessing</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-DefaultURI.html"+>Text.XML.HXT.Parser.DefaultURI</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-HtmlParsec.html"+>Text.XML.HXT.Parser.HtmlParsec</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-HtmlParser.html"+>Text.XML.HXT.Parser.HtmlParser</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-MainFunctions.html"+>Text.XML.HXT.Parser.MainFunctions</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-ProtocolHandler.html"+>Text.XML.HXT.Parser.ProtocolHandler</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-ProtocolHandlerFile.html"+>Text.XML.HXT.Parser.ProtocolHandlerFile</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html"+>Text.XML.HXT.Parser.ProtocolHandlerHttpCurl</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html"+>Text.XML.HXT.Parser.ProtocolHandlerHttpNative</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html"+>Text.XML.HXT.Parser.ProtocolHandlerHttpNativeOrCurl</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-ProtocolHandlerUtil.html"+>Text.XML.HXT.Parser.ProtocolHandlerUtil</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-XmlCharParser.html"+>Text.XML.HXT.Parser.XmlCharParser</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html"+>Text.XML.HXT.Parser.XmlDTDParser</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html"+>Text.XML.HXT.Parser.XmlDTDTokenParser</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-XmlInput.html"+>Text.XML.HXT.Parser.XmlInput</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-XmlOutput.html"+>Text.XML.HXT.Parser.XmlOutput</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-XmlParsec.html"+>Text.XML.HXT.Parser.XmlParsec</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-XmlParser.html"+>Text.XML.HXT.Parser.XmlParser</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html"+>Text.XML.HXT.Parser.XmlTokenParser</A+></TD+><TD+></TD+><TD+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD STYLE="width: 44em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:12')" ALT="show/hide"+>Validator</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:12" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Validator-AttributeValueValidation.html"+>Text.XML.HXT.Validator.AttributeValueValidation</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Validator-DTDValidation.html"+>Text.XML.HXT.Validator.DTDValidation</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Validator-DocTransformation.html"+>Text.XML.HXT.Validator.DocTransformation</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Validator-DocValidation.html"+>Text.XML.HXT.Validator.DocValidation</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Validator-IdValidation.html"+>Text.XML.HXT.Validator.IdValidation</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Validator-RE.html"+>Text.XML.HXT.Validator.RE</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Validator-Validation.html"+>Text.XML.HXT.Validator.Validation</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Validator-ValidationFilter.html"+>Text.XML.HXT.Validator.ValidationFilter</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-Validator-XmlRE.html"+>Text.XML.HXT.Validator.XmlRE</A+></TD+><TD+></TD+><TD+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD STYLE="width: 44em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:13')" ALT="show/hide"+><A HREF="Text-XML-HXT-XPath.html"+>Text.XML.HXT.XPath</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:13" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-XPath-NavTree.html"+>Text.XML.HXT.XPath.NavTree</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-XPath-XPathArithmetic.html"+>Text.XML.HXT.XPath.XPathArithmetic</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html"+>Text.XML.HXT.XPath.XPathDataTypes</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-XPath-XPathEval.html"+>Text.XML.HXT.XPath.XPathEval</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-XPath-XPathFct.html"+>Text.XML.HXT.XPath.XPathFct</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-XPath-XPathKeywords.html"+>Text.XML.HXT.XPath.XPathKeywords</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-XPath-XPathParser.html"+>Text.XML.HXT.XPath.XPathParser</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-XPath-XPathToNodeSet.html"+>Text.XML.HXT.XPath.XPathToNodeSet</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 42em"+><A HREF="Text-XML-HXT-XPath-XPathToString.html"+>Text.XML.HXT.XPath.XPathToString</A+></TD+><TD+></TD+><TD+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.7</TD+></TR+></TABLE+></BODY+></HTML+>
+ doc/hdoc_filter/minus.gif view

binary file changed (absent → 56 bytes)

+ doc/hdoc_filter/plus.gif view

binary file changed (absent → 59 bytes)

+ doc/hvalidator/thesis/a2283.html view
@@ -0,0 +1,234 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>User handbook</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="PREVIOUS"+TITLE="Conclusions and future work"+HREF="x2257.html"><LINK+REL="NEXT"+TITLE="Missing features and known problems"+HREF="x2308.html"></HEAD+><BODY+CLASS="appendix"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="x2257.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+></TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="x2308.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><DIV+CLASS="appendix"+><H1+><A+NAME="a1"+></A+>Appendix A. User handbook</H1+><DIV+CLASS="section"+><H1+CLASS="section"+><A+NAME="AEN2285"+></A+>A.1. System requirements</H1+><P+>&#13;		The Haskell XML Toolbox was developed with <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>Hugs Version December 2001</I+></SPAN+> [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_hugs"+><SPAN+CLASS="abbrev"+>WWW20</SPAN+></A+></SPAN+>] and the <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>Glasgow Haskell Compiler (GHC) 5.04</I+></SPAN+> [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_ghc"+><SPAN+CLASS="abbrev"+>WWW19</SPAN+></A+></SPAN+>] on Linux systems. Testing on Windows systems has not been done yet.+		</P+><P+>&#13;		If you want to use the Haskell XML Toolbox in your own applications, just add the modules from the directories <TT+CLASS="filename"+>hdom</TT+>, <TT+CLASS="filename"+>hparser</TT+>, <TT+CLASS="filename"+>hvalidator</TT+> and <TT+CLASS="filename"+>parsec</TT+> to the path of your compiler or interpreter. It is planned to provide special GHC packages of the Haskell XML Toolbox in the near future.+		</P+><P+>&#13;		To compile binary versions of the programs included in the Haskell XML Toolbox, the <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>Glasgow Haskell Compiler</I+></SPAN+> and <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>GNU make</I+></SPAN+> are needed.+		</P+><P+>&#13;		To build the API documentation you must have installed <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>HDoc</I+></SPAN+> [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_hdoc"+><SPAN+CLASS="abbrev"+>WWW30</SPAN+></A+></SPAN+>]. If you run <TT+CLASS="literal"+>make hdoc</TT+> in the root directory of the Haskell XML Toolbox, the documentation will be generated and placed in the directory <TT+CLASS="filename"+>doc/hdoc</TT+>.+		</P+></DIV+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="x2257.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="x2308.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>Conclusions and future work</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+>&nbsp;</TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>Missing features and known problems</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/a2458.html view
@@ -0,0 +1,176 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>MIT License</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="PREVIOUS"+TITLE="Performance and profiling"+HREF="x2408.html"><LINK+REL="NEXT"+TITLE="Bibliography"+HREF="b2463.html"></HEAD+><BODY+CLASS="appendix"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="x2408.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+></TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="b2463.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><DIV+CLASS="appendix"+><H1+><A+NAME="a2"+></A+>Appendix B. MIT License</H1+><P+>&#13;	The Haskell XML Toolbox shall be used be many people and is therefore distributed under the MIT License.+	</P+><P+></P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;The MIT License++Copyright (c) 2002 Uwe Schmidt, Martin Schmidt++Permission is hereby granted, free of charge, to any person obtaining a+copy of this software and associated documentation files (the "Software"),+to deal in the Software without restriction, including without limitation+the rights to use, copy, modify, merge, publish, distribute, sublicense,+and/or sell copies of the Software, and to permit persons to whom the+Software is furnished to do so, subject to the following conditions:++The above copyright notice and this permission notice shall be included+in all copies or substantial portions of the Software.++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL+THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER+DEALINGS IN THE SOFTWARE.+	</PRE+></TD+></TR+></TABLE+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="x2408.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="b2463.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>Performance and profiling</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+>&nbsp;</TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>Bibliography</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/b2463.html view
@@ -0,0 +1,886 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>Bibliography</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="PREVIOUS"+TITLE="MIT License"+HREF="a2458.html"><LINK+REL="NEXT"+TITLE="Affidavit"+HREF="b2739.html"></HEAD+><BODY+CLASS="bibliography"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="a2458.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+></TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="b2739.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><A+NAME="AEN2463"+></A+><H1+><A+NAME="AEN2463"+></A+>Bibliography</H1+><H2+CLASS="bibliodiv"+><A+NAME="AEN2464"+></A+>Print resources</H2+><DIV+CLASS="biblioentry"+><A+NAME="thompson99"+></A+><P+>[Thompson99]&nbsp;<I+>The craft of Functional Programming</I+><I+>: </I+><I+>2nd Edition</I+>, <SPAN+CLASS="AUTHOR"+>Simon Thompson</SPAN+>, Addison Wesley, 1999, 0-201-34275-8.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><DIV+CLASS="biblioentry"+><A+NAME="hudak00"+></A+><P+>[Hudak00]&nbsp;<I+>The Haskell School of Expression</I+><I+>: </I+><I+>Learning functional programming through multimedia</I+>, <SPAN+CLASS="AUTHOR"+>Paul Hudak</SPAN+>, Cambridge University Press, 2000, 0-521-64408-9.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><DIV+CLASS="biblioentry"+><A+NAME="brzozowski64"+></A+><P+>[Brzozowski64]&nbsp;<I+>Derivatives of Regular Expressions</I+>, <SPAN+CLASS="AUTHOR"+>Janusz A. Brzozowski</SPAN+>, Journal of the ACM, Volume 11, Issue 4, 1964.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><H2+CLASS="bibliodiv"+><A+NAME="AEN2499"+></A+>Online resources</H2+><DIV+CLASS="biblioentry"+><A+NAME="bib_xml"+></A+><P+>[WWW01]&nbsp;<I+>Extensible Markup Language (XML) 1.0</I+>, <SPAN+CLASS="AUTHOR"+>W3C</SPAN+>, 2000, +					<A+HREF="http://www.w3.org/TR/2000/REC-xml-20001006"+TARGET="_top"+>http://www.w3.org/TR/2000/REC-xml-20001006</A+>+				.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><DIV+CLASS="biblioentry"+><A+NAME="bib_xmlts"+></A+><P+>[WWW02]&nbsp;<I+>Extensible Markup Language (XML) Conformance Test Suites</I+>, +					<A+HREF="http://www.w3.org/XML/Test/"+TARGET="_top"+>http://www.w3.org/XML/Test/</A+>+				.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><DIV+CLASS="biblioentry"+><A+NAME="bib_canxml"+></A+><P+>[WWW03]&nbsp;<I+>Canonical XML, Version 1.0</I+>, <SPAN+CLASS="AUTHOR"+>John Boyer</SPAN+>, +					<A+HREF="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"+TARGET="_top"+>http://www.w3.org/TR/2001/REC-xml-c14n-20010315</A+>+				.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><DIV+CLASS="biblioentry"+><A+NAME="bib_xmlquickref"+></A+><P+>[WWW04]&nbsp;<I+>XML Syntax Quick Reference</I+>, <SPAN+CLASS="AUTHOR"+>Mulberry Technologies, Inc.</SPAN+>, +					<A+HREF="http://www.mulberrytech.com/quickref/XMLquickref.pdf"+TARGET="_top"+>http://www.mulberrytech.com/quickref/XMLquickref.pdf</A+>+				.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><DIV+CLASS="biblioentry"+><A+NAME="bib_dom"+></A+><P+>[WWW05]&nbsp;<I+>Document Object Model (DOM)</I+>, <SPAN+CLASS="AUTHOR"+>W3C DOM Working Group</SPAN+>, +					<A+HREF="http://www.w3.org/DOM/"+TARGET="_top"+>http://www.w3.org/DOM/</A+>+				.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><DIV+CLASS="biblioentry"+><A+NAME="bib_jdom"+></A+><P+>[WWW06]&nbsp;<I+>JDOM</I+>, +					<A+HREF="http://www.jdom.org"+TARGET="_top"+>http://www.jdom.org</A+>+				.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><DIV+CLASS="biblioentry"+><A+NAME="bib_xsl"+></A+><P+>[WWW07]&nbsp;<I+>The Extensible Stylesheet Language (XSL)</I+>, <SPAN+CLASS="AUTHOR"+>XSL Working Group</SPAN+>, +					<A+HREF="http://www.w3.org/Style/XSL/"+TARGET="_top"+>http://www.w3.org/Style/XSL/</A+>+				.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><DIV+CLASS="biblioentry"+><A+NAME="bib_schema"+></A+><P+>[WWW08]&nbsp;<I+>XML Schema</I+>, <SPAN+CLASS="AUTHOR"+>C. M. Sperberg-McQueen, Henry Thompson</SPAN+>, +					<A+HREF="http://www.w3.org/XML/Schema"+TARGET="_top"+>http://www.w3.org/XML/Schema</A+>+				.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><DIV+CLASS="biblioentry"+><A+NAME="bib_dsssl"+></A+><P+>[WWW09]&nbsp;<I+>ISO/IEC 10179:1996 - Document Style Semantics and Specification Language</I+>, <SPAN+CLASS="AUTHOR"+>James Clark</SPAN+>, +					<A+HREF="http://www.jclark.com/dsssl/"+TARGET="_top"+>http://www.jclark.com/dsssl/</A+>+				.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><DIV+CLASS="biblioentry"+><A+NAME="bib_sax"+></A+><P+>[WWW10]&nbsp;<I+>Simple API for XML (SAX)</I+>, <SPAN+CLASS="AUTHOR"+>David Brownell</SPAN+>, +					<A+HREF="http://www.saxproject.org/"+TARGET="_top"+>http://www.saxproject.org/</A+>+				.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><DIV+CLASS="biblioentry"+><A+NAME="bib_haskellorg"+></A+><P+>[WWW11]&nbsp;<I+>Haskell.org</I+>, +					<A+HREF="http://www.haskell.org"+TARGET="_top"+>http://www.haskell.org</A+>+				.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><DIV+CLASS="biblioentry"+><A+NAME="bib_haskellbrooks"+></A+><P+>[WWW12]&nbsp;<I+>Haskell Brooks Curry</I+>, <SPAN+CLASS="AUTHOR"+>J. O'Connor, E. F. Robertson</SPAN+>, +					<A+HREF="http://www-gap.dcs.st-and.ac.uk/~history/Mathematicians/Curry.html"+TARGET="_top"+>http://www-gap.dcs.st-and.ac.uk/~history/Mathematicians/Curry.html</A+>+				.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><DIV+CLASS="biblioentry"+><A+NAME="bib_abouthaskell"+></A+><P+>[WWW13]&nbsp;<I+>About Haskell</I+>, <SPAN+CLASS="AUTHOR"+>Based on a paper by Simon Peyton Jones.</SPAN+>, December 2001, +					<A+HREF="http://www.haskell.org/aboutHaskell.html"+TARGET="_top"+>http://www.haskell.org/aboutHaskell.html</A+>+				.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><DIV+CLASS="biblioentry"+><A+NAME="bib_gentelinstruction"+></A+><P+>[WWW14]&nbsp;<I+>A Gentle Introduction to Haskell, Version 98</I+>, <SPAN+CLASS="AUTHOR"+>Paul Hudak, John Peterson, Joseph Fasel</SPAN+>, June 2000, +					<A+HREF="http://www.haskell.org/tutorial/index.html"+TARGET="_top"+>http://www.haskell.org/tutorial/index.html</A+>+				.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><DIV+CLASS="biblioentry"+><A+NAME="bib_98report"+></A+><P+>[WWW15]&nbsp;<I+>The Haskell 98 Report</I+>, <SPAN+CLASS="AUTHOR"+>Simon Peyton Jones, John Hughes et al.</SPAN+>, +					<A+HREF="http://www.haskell.org/onlinereport/"+TARGET="_top"+>http://www.haskell.org/onlinereport/</A+>+				.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><DIV+CLASS="biblioentry"+><A+NAME="bib_98libraryreport"+></A+><P+>[WWW16]&nbsp;<I+>The Haskell 98 Library Report</I+>, <SPAN+CLASS="AUTHOR"+>Simon Peyton Jones, John Hughes et al.</SPAN+>, +					<A+HREF="http://www.haskell.org/onlinelibrary/"+TARGET="_top"+>http://www.haskell.org/onlinelibrary/</A+>+				.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><DIV+CLASS="biblioentry"+><A+NAME="bib_bookshelf"+></A+><P+>[WWW17]&nbsp;<I+>The Haskell Bookshelf</I+>, +					<A+HREF="http://www.haskell.org/bookshelf/"+TARGET="_top"+>http://www.haskell.org/bookshelf/</A+>+				.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><DIV+CLASS="biblioentry"+><A+NAME="bib_matters"+></A+><P+>[WWW18]&nbsp;<I+>Why Functional Programming Matters</I+>, <SPAN+CLASS="AUTHOR"+>John Hughes</SPAN+>, +					<A+HREF="http://www.math.chalmers.se/~rjmh/Papers/whyfp.html"+TARGET="_top"+>http://www.math.chalmers.se/~rjmh/Papers/whyfp.html</A+>+				, 1984.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><DIV+CLASS="biblioentry"+><A+NAME="bib_ghc"+></A+><P+>[WWW19]&nbsp;<I+>GHC</I+>, +					<A+HREF="http://www.haskell.org/ghc"+TARGET="_top"+>http://www.haskell.org/ghc</A+>+				.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><DIV+CLASS="biblioentry"+><A+NAME="bib_hugs"+></A+><P+>[WWW20]&nbsp;<I+>Hugs</I+>, +					<A+HREF="http://www.haskell.org/hugs"+TARGET="_top"+>http://www.haskell.org/hugs</A+>+				.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><DIV+CLASS="biblioentry"+><A+NAME="bib_haxml"+></A+><P+>[WWW21]&nbsp;<I+>HaXml: Haskell and XML</I+>, <SPAN+CLASS="AUTHOR"+>Malcolm Wallace, Colin Runciman</SPAN+>, +					<A+HREF="http://www.cs.york.ac.uk/fp/HaXml/"+TARGET="_top"+>http://www.cs.york.ac.uk/fp/HaXml/</A+>+				.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><DIV+CLASS="biblioentry"+><A+NAME="bib_haxmlpaper"+></A+><P+>[WWW22]&nbsp;<I+>Haskell and XML: Generic Combinators or Type-Based Translation?</I+>, <SPAN+CLASS="AUTHOR"+>Malcolm Wallace, Colin Runciman, John Boyer</SPAN+>, +					<A+HREF="http://www.cs.york.ac.uk/fp/HaXml/icfp99.html"+TARGET="_top"+>http://www.cs.york.ac.uk/fp/HaXml/icfp99.html</A+>+				.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><DIV+CLASS="biblioentry"+><A+NAME="bib_haxml_mertz"+></A+><P+>[WWW23]&nbsp;<I+>The HaXml functional programming model for XML</I+>, <SPAN+CLASS="AUTHOR"+>David Mertz</SPAN+>, October 2001, +					<A+HREF="http://www-106.ibm.com/developerworks/xml/library/x-matters14.html"+TARGET="_top"+>http://www-106.ibm.com/developerworks/xml/library/x-matters14.html</A+>+				.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><DIV+CLASS="biblioentry"+><A+NAME="bib_haxml_parsia"+></A+><P+>[WWW24]&nbsp;<I+>Functional Programming and XML</I+>, <SPAN+CLASS="AUTHOR"+>Bijan Parsia</SPAN+>, 2000, +					<A+HREF="http://www.xml.com/lpt/a/2001/02/14/functional.html"+TARGET="_top"+>http://www.xml.com/lpt/a/2001/02/14/functional.html</A+>+				.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><DIV+CLASS="biblioentry"+><A+NAME="bib_hxml"+></A+><P+>[WWW25]&nbsp;<I+>HXML</I+>, <SPAN+CLASS="AUTHOR"+>Joe English</SPAN+>, +					<A+HREF="http://www.flightlab.com/~joe/hxml/"+TARGET="_top"+>http://www.flightlab.com/~joe/hxml/</A+>+				.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><DIV+CLASS="biblioentry"+><A+NAME="bib_derivates_je"+></A+><P+>[WWW26]&nbsp;<I+>How to validate XML</I+>, <SPAN+CLASS="AUTHOR"+>Joe English</SPAN+>, 1999, +					<A+HREF="http://www.flightlab.com/~joe/sgml/validate.html"+TARGET="_top"+>http://www.flightlab.com/~joe/sgml/validate.html</A+>+				.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><DIV+CLASS="biblioentry"+><A+NAME="bib_derivates_mh"+></A+><P+>[WWW27]&nbsp;<I+>Regular Expression Package. Posted to comp.compilers.</I+>, <SPAN+CLASS="AUTHOR"+>Mark Hopkins</SPAN+>, 1994, +					<A+HREF="http://compilers.iecc.com/comparch/article/94-02-109"+TARGET="_top"+>http://compilers.iecc.com/comparch/article/94-02-109</A+>+					<A+HREF="ftp://iecc.com/pub/file/regex.tar.gz"+TARGET="_top"+>ftp://iecc.com/pub/file/regex.tar.gz</A+>+				.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><DIV+CLASS="biblioentry"+><A+NAME="bib_derivates_jc"+></A+><P+>[WWW28]&nbsp;<I+>An algorithm for RELAX NG validation</I+>, <SPAN+CLASS="AUTHOR"+>James Clark</SPAN+>, February 2002, +					<A+HREF="http://www.thaiopensource.com/relaxng/derivative.html"+TARGET="_top"+>http://www.thaiopensource.com/relaxng/derivative.html</A+>+				.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><DIV+CLASS="biblioentry"+><A+NAME="bib_parsec"+></A+><P+>[WWW29]&nbsp;<I+>Parsec</I+>, <SPAN+CLASS="AUTHOR"+>Daan Leijen</SPAN+>, +					<A+HREF="http://www.cs.uu.nl/~daan/parsec.html"+TARGET="_top"+>http://www.cs.uu.nl/~daan/parsec.html</A+>+				.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><DIV+CLASS="biblioentry"+><A+NAME="bib_hdoc"+></A+><P+>[WWW30]&nbsp;<I+>HDoc</I+>, <SPAN+CLASS="AUTHOR"+>Armin Groesslinger</SPAN+>, +					<A+HREF="http://www.fmi.uni-passau.de/~groessli/hdoc/"+TARGET="_top"+>http://www.fmi.uni-passau.de/~groessli/hdoc/</A+>+				.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="a2458.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="b2739.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>MIT License</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+>&nbsp;</TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>Affidavit</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/b2739.html view
@@ -0,0 +1,171 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>Affidavit</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="PREVIOUS"+TITLE="Bibliography"+HREF="b2463.html"></HEAD+><BODY+CLASS="bibliography"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="b2463.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+></TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+>&nbsp;</TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><A+NAME="AEN2739"+></A+><H1+><A+NAME="AEN2739"+></A+>Affidavit</H1+><P+>&#13;	I hereby declare that this master thesis has been written only by the undersigned and without any assistance from third parties.+	</P+><P+>&#13;	Furthermore, I confirm that no sources have been used in the preparation of this thesis other than those indicated in the thesis itself.+	</P+><P+></P+><P+></P+><P+></P+><P+>&#13;	Hamburg, 2002-09-02+	</P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;------------------------------------------------------------------+Place, Date Signature+ 	</PRE+></TD+></TR+></TABLE+><DIV+CLASS="biblioentry"+><A+NAME="AEN2748"+></A+><P+><SPAN+CLASS="AUTHOR"+></SPAN+>.</P+><DIV+CLASS="BIBLIOENTRYBLOCK"+STYLE="margin-left: 0.5in"+></DIV+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="b2463.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>&nbsp;</TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>Bibliography</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+>&nbsp;</TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>&nbsp;</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/c1645.html view
@@ -0,0 +1,262 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>Package hparser</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="PREVIOUS"+TITLE="State-I/O monad from module XmlState"+HREF="x1577.html"><LINK+REL="NEXT"+TITLE="Module HdomParser"+HREF="x1694.html"></HEAD+><BODY+CLASS="chapter"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="x1577.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+></TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="x1694.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><DIV+CLASS="chapter"+><H1+><A+NAME="c3"+></A+>Chapter 3. Package hparser</H1+><P+>&#13;	The following chapter describes the package <TT+CLASS="filename"+>hparser</TT+>. It contains all modules for parsing XML files and checking the well-formedness constraints of XML. Validation, normalizing attribute values and adding default values is done by the separate package <TT+CLASS="filename"+>hvalidator</TT+>.+	</P+><P+>&#13;	The parser works internally with filters for reading XML data and processing the constructed <TT+CLASS="literal"+>XmlTree</TT+>. The whole parser works with filters of type <TT+CLASS="literal"+>XmlStateFilter</TT+> from the module <TT+CLASS="classname"+>XmlState</TT+> so that trace-output of the computations can be generated, errors can be reported and some state information can be saved where it is necessary.+	</P+><DIV+CLASS="section"+><H1+CLASS="section"+><A+NAME="AEN1654"+></A+>3.1. Overview</H1+><P+>&#13;		The package <TT+CLASS="filename"+>hparser</TT+> provides five public modules for implementing an XML parser, which builds the generic tree data structure <TT+CLASS="literal"+>XmlTree</TT+> from XML documents.+		</P+><P+></P+><DIV+CLASS="variablelist"+><P+><B+>Modules</B+></P+><DL+><DT+><TT+CLASS="function"+>HdomParser</TT+></DT+><DD+><P+>&#13;					 Basic parser for building the generic tree data structure <TT+CLASS="literal"+>XmlTree</TT+>. Bases on <TT+CLASS="classname"+>XmlParser</TT+>, <TT+CLASS="classname"+>XmlInput</TT+> and <TT+CLASS="classname"+>DTDProcessing</TT+>.+					</P+></DD+><DT+><TT+CLASS="function"+>XmlParser</TT+></DT+><DD+><P+>&#13;					Parses XML files. Bases on the free monadic parser combinator library Parsec [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_parsec"+><SPAN+CLASS="abbrev"+>WWW29</SPAN+></A+></SPAN+>].+					</P+></DD+><DT+><TT+CLASS="function"+>XmlInput</TT+></DT+><DD+><P+>Reads XML files, handles different character encodings.</P+></DD+><DT+><TT+CLASS="function"+>DTDProcessing</TT+></DT+><DD+><P+>Processes the DTD. Substitution of general and parameter entities, merging of the internal and external DTD subset.</P+></DD+><DT+><TT+CLASS="function"+>XmlOutput</TT+></DT+><DD+><P+>Prints the parsed data by using the <TT+CLASS="literal"+>XmlStateFilter</TT+> defined in module <TT+CLASS="classname"+>XmlState</TT+>.</P+></DD+></DL+></DIV+></DIV+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="x1577.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="x1694.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>State-I/O monad from module XmlState</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+>&nbsp;</TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>Module HdomParser</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/c1850.html view
@@ -0,0 +1,260 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>Package hvalidator</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="PREVIOUS"+TITLE="Module XmlOutput"+HREF="x1830.html"><LINK+REL="NEXT"+TITLE="Creating a validating XML parser"+HREF="x1900.html"></HEAD+><BODY+CLASS="chapter"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="x1830.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+></TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="x1900.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><DIV+CLASS="chapter"+><H1+><A+NAME="c4"+></A+>Chapter 4. Package hvalidator</H1+><P+>&#13;	This chapter describes the package <TT+CLASS="filename"+>hvalidator</TT+> which provides all functions for validating XML documents represented as <TT+CLASS="literal"+>XmlTree</TT+>. The validation process basically consists of three phases. First the DTD is validated, after this the document is validated. In the last step the document is transformed: missing default values are added and attribute values are normalized. Unlike other popular XML validation tools the validation functions return a list of errors instead of aborting after the first error was found.+	</P+><P+>&#13;	While the modules from package <TT+CLASS="filename"+>hparser</TT+> use a monadic approach, these modules are written purely functional. Validation is done by filter functions of type <TT+CLASS="literal"+>XmlFilter</TT+>. These filters return a list of errors or an empty list if no errors are detected.+	</P+><DIV+CLASS="section"+><H1+CLASS="section"+><A+NAME="module_hierarchy"+></A+>4.1. Module hierarchy</H1+><P+>&#13;		The only public module for validating XML documents is the module <TT+CLASS="classname"+>Validation</TT+>. It exports all functions for validating and transforming XML documents. <TT+CLASS="classname"+>Validation</TT+> is basically a helper module, which combines the functionalities of the internal modules taking part at validation and transformation.+		</P+><P+></P+><DIV+CLASS="variablelist"+><P+><B+>Internal modules</B+></P+><DL+><DT+><TT+CLASS="function"+>DTDValidation</TT+></DT+><DD+><P+>&#13;					Provides functions for validating the DTD of XML documents.+					</P+></DD+><DT+><TT+CLASS="function"+>DocValidation</TT+></DT+><DD+><P+>&#13;					Provides functions for validating the elements and attributes of XML documents.+					</P+></DD+><DT+><TT+CLASS="function"+>DocTransformation</TT+></DT+><DD+><P+>&#13;					Provides functions for transforming XML documents after they have been validated. The transformation phase is part of the validation process.+					</P+></DD+><DT+><TT+CLASS="function"+>AttributeValueValidation</TT+></DT+><DD+><P+>&#13;					Provides functions to normalize attribute values and to check if the attribute value matches the lexical constraints of its type.+					</P+></DD+><DT+><TT+CLASS="function"+>XmlRE</TT+> and <TT+CLASS="function"+>RE</TT+></DT+><DD+><P+>&#13;					Support <TT+CLASS="function"+>DocValidation</TT+> by validating the content model of an element. The algorithm used is based on derivatives of regular expressions.+					</P+></DD+></DL+></DIV+><P+>&#13;        	<DIV+CLASS="figure"+><A+NAME="modules_hvalidator"+></A+><P+><B+>Figure 4-1. Modules of package hvalidator</B+></P+><DIV+CLASS="mediaobject"+><P+><IMG+SRC="images/modules_hvalidator.gif"></P+></DIV+></DIV+>+        </P+></DIV+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="x1830.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="x1900.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>Module XmlOutput</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+>&nbsp;</TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>Creating a validating XML parser</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/c2165.html view
@@ -0,0 +1,240 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>Conclusion</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="PREVIOUS"+TITLE="Derivatives of regular expressions"+HREF="x2086.html"><LINK+REL="NEXT"+TITLE="The Haskell XML Toolbox in comparison to HaXml and HXML"+HREF="x2201.html"></HEAD+><BODY+CLASS="chapter"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="x2086.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+></TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="x2201.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><DIV+CLASS="chapter"+><H1+><A+NAME="c5"+></A+>Chapter 5. Conclusion</H1+><DIV+CLASS="section"+><H1+CLASS="section"+><A+NAME="AEN2167"+></A+>5.1. XML conformance of the parser</H1+><P+>&#13;		The validating XML parser of the Haskell XML Toolbox was elaborately tested with the XML Test Suites (XML TS) from the W3C [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_xmlts"+><SPAN+CLASS="abbrev"+>WWW02</SPAN+></A+></SPAN+>].+		</P+><P+>&#13;		These XML TS consist of over 2000 test files for the XML 1.0 specification [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_xml"+><SPAN+CLASS="abbrev"+>WWW01</SPAN+></A+></SPAN+>] and an associated test report. The test report contains background information on conformance testing for XML as well as test descriptions for each of the test files.+		</P+><P+>&#13;		The test suite consists of two basic test types: Binary Tests and Output Tests. Binary conformance tests are documents that should be accepted or rejected by the parser. Output tests are tests for valid documents which are paired with a reference file as the canonical representation [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_canxml"+><SPAN+CLASS="abbrev"+>WWW03</SPAN+></A+></SPAN+>] of the input file. By comparing the output of the XML parser with the reference file, it can be ensured that the parser provides the correct information.+		</P+><P+>&#13;		<P+></P+><DIV+CLASS="variablelist"+><P+><B+>There exist four different tests cases:</B+></P+><DL+><DT+>Valid Documents</DT+><DD+><P+>&#13;					The XML parser is required to accept these documents. For most test cases a reference file exists.+					</P+></DD+><DT+>Invalid documents</DT+><DD+><P+>&#13;					A validating XML parser has to report a  violation of some validity constraint. The reported error must meet the test case description.+					</P+></DD+><DT+>Not well-formed documents</DT+><DD+><P+>&#13;					An XML parser has to report a fatal error. The reported error must meet the test case description.+					</P+></DD+><DT+>Optional errors</DT+><DD+><P+>&#13;					An XML parser is permitted to ignore these errors, or to report them. If an error is reported, the error message must meet the test case description.+					</P+></DD+></DL+></DIV+>+		</P+><P+>&#13;		By using these tests, it could be ensured that the validating XML parser of the Haskell XML Toolbox covers most aspects of the XML 1.0 specification [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_xml"+><SPAN+CLASS="abbrev"+>WWW01</SPAN+></A+></SPAN+>]. Because the XML TS is not complete, it is not possible to claim conformance with the specification itself, but only with the XML TS. At the moment the parser passes about 95% of these test cases, see <A+HREF="x2308.html"+>Section A.2</A+> for further details.+		</P+></DIV+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="x2086.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="x2201.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>Derivatives of regular expressions</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+>&nbsp;</TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>The Haskell XML Toolbox in comparison to HaXml and HXML</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/c468.html view
@@ -0,0 +1,389 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>Package hdom</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="PREVIOUS"+TITLE="Haskell"+HREF="x298.html"><LINK+REL="NEXT"+TITLE="Data structures"+HREF="x558.html"></HEAD+><BODY+CLASS="chapter"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="x298.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+></TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="x558.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><DIV+CLASS="chapter"+><H1+><A+NAME="c2"+></A+>Chapter 2. Package hdom</H1+><P+>&#13;	This chapter describes the package <TT+CLASS="filename"+>hdom</TT+>, which defines a generic tree data type <TT+CLASS="literal"+>XmlTree</TT+> for representing whole XML documents in Haskell. The package provides many functions for processing XML documents represented by this data model.+	</P+><DIV+CLASS="section"+><H1+CLASS="section"+><A+NAME="modules"+></A+>2.1. Modules</H1+><P+>&#13;		The core public module of the package <TT+CLASS="filename"+>hdom</TT+> is the module <TT+CLASS="classname"+>XmlTree</TT+>. It exports all elements from the basic libraries <TT+CLASS="classname"+>XmlTreeAccess</TT+>, <TT+CLASS="classname"+>XmlTreePredicates</TT+>, <TT+CLASS="classname"+>XmlTreeTypes</TT+>, <TT+CLASS="classname"+>NTree</TT+> and <TT+CLASS="classname"+>XmlKeywords</TT+>.+		</P+><P+>&#13;		The module <TT+CLASS="classname"+>XmlTreeTypes</TT+> defines data types for representing any XML document in Haskell. The generic tree data type <TT+CLASS="literal"+>XmlTree</TT+> models XML documents, including all logical units of XML like the DTD subset or document subset. This type is based on the general n-ary tree <TT+CLASS="literal"+>NTree</TT+> defined in the module <TT+CLASS="classname"+>NTree</TT+>. The type <TT+CLASS="literal"+>NTree</TT+> defines trees as a node that has a list of child nodes. Leafs are just nodes with an empty child list. XML documents are composed of elements, comments, DTD declarations, character references or processing instructions. <TT+CLASS="literal"+>XmlTree</TT+> provides for each logical unit an own node type.+		</P+><P+>&#13;		The module <TT+CLASS="classname"+>NTree</TT+> defines a general n-ary tree structure <TT+CLASS="literal"+>NTree</TT+> as well as filter functions (see  <A+HREF="x854.html"+>Section 2.3</A+>) and combinators (see  <A+HREF="x1178.html"+>Section 2.4</A+>) for processing this data type. The filters and combinators have been copied and modified from HaXml [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_haxml"+><SPAN+CLASS="abbrev"+>WWW21</SPAN+></A+></SPAN+>]. In contrast to HaXml the filters have been modified using a more generic approach. The filter functions of HaXml work only for the document subset of XML documents. Because of the generic tree data model <TT+CLASS="literal"+>NTree</TT+> these functions can be used to process whole XML documents in the Haskell XML Toolbox.+		</P+><P+>&#13;		The module <TT+CLASS="classname"+>XmlTreeAccess</TT+> provides basic filter functions for constructing, editing or selecting parts of the data type <TT+CLASS="literal"+>XmlTree</TT+>. Furthermore it provides functions for processing the attribute list of <TT+CLASS="literal"+>XmlTree</TT+> nodes.+		</P+><P+>&#13;		The module <TT+CLASS="classname"+>XmlTreePredicates</TT+> provides basic predicate filter functions. The functions are similar to predicate logic. If the condition is true, they return a list with a node, otherwise they return an empty list.+		</P+><P+>&#13;+		The module <TT+CLASS="classname"+>XmlKeywords</TT+> provides constants that are used for representing DTD keywords and attributes in the <TT+CLASS="literal"+>XmlTree</TT+>.+		</P+><P+>&#13;        	<DIV+CLASS="figure"+><A+NAME="modules_xmltree"+></A+><P+><B+>Figure 2-1. Module hierarchy of XmlTree</B+></P+><DIV+CLASS="mediaobject"+><P+><IMG+SRC="images/modules_xmltree.gif"></P+></DIV+></DIV+>+        </P+><P+>&#13;		Besides the module <TT+CLASS="classname"+>XmlTree</TT+> and its sub-modules there exist some other public modules for processing the <TT+CLASS="literal"+>XmlTree</TT+> data structure.+		</P+><P+>&#13;		<TT+CLASS="classname"+>XmlTreeToString</TT+> provides functions for transformation of an <TT+CLASS="literal"+>XmlTree</TT+> back into a string. The string shows an XML document in XML syntax.+		</P+><P+>&#13;		<TT+CLASS="classname"+>EditFilters</TT+> provides some filters for transforming an <TT+CLASS="literal"+>XmlTree</TT+>:+		</P+><P+></P+><UL+><LI+><P+>Remove text nodes which contain only white space from the tree.</P+></LI+><LI+><P+>Remove comment nodes from the tree.</P+></LI+><LI+><P+>Transform special characters like &#60;, &#62;, ", ' and &#38; of text nodes into character references.</P+></LI+><LI+><P+>Manipulate text nodes with customized functions.</P+></LI+><LI+><P+>Convert CDATA nodes to text nodes by escaping all special characters.</P+></LI+><LI+><P+>Convert character references to normal text.</P+></LI+><LI+><P+>Create a canonicalized representation of XML documents [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_canxml"+><SPAN+CLASS="abbrev"+>WWW03</SPAN+></A+></SPAN+>].</P+></LI+></UL+><P+>&#13;		<TT+CLASS="classname"+>FormatXmlTree</TT+> creates a string with a tree representation of an <TT+CLASS="literal"+>XmlTree</TT+>. This is useful to see how the data type <TT+CLASS="literal"+>XmlTree</TT+> represents an XML document.+		</P+><P+>&#13;		<TT+CLASS="classname"+>XmlFilterCombinators</TT+> provides special filter combinators for processing an <TT+CLASS="literal"+>XmlTree</TT+>. These filters can only operate on the data type <TT+CLASS="literal"+>XmlTree</TT+> and not on the general n-ary tree data type <TT+CLASS="literal"+>NTree</TT+>.+		</P+><P+>&#13;        	<DIV+CLASS="figure"+><A+NAME="modules_hdom"+></A+><P+><B+>Figure 2-2. General modules of package hdom</B+></P+><DIV+CLASS="mediaobject"+><P+><IMG+SRC="images/modules_hdom.gif"></P+></DIV+></DIV+>+        </P+></DIV+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="x298.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="x558.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>Haskell</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+>&nbsp;</TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>Data structures</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/c78.html view
@@ -0,0 +1,912 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>Basics</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="PREVIOUS"+TITLE="Preface"+HREF="f61.html"><LINK+REL="NEXT"+TITLE="Haskell"+HREF="x298.html"></HEAD+><BODY+CLASS="chapter"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="f61.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+></TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="x298.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><DIV+CLASS="chapter"+><H1+><A+NAME="c1"+></A+>Chapter 1. Basics</H1+><P+>&#13;	The following chapter gives a short introduction to XML and Haskell.+	Readers who are familiar with these techniques can skip this chapter.+	</P+><DIV+CLASS="section"+><H1+CLASS="section"+><A+NAME="xml"+></A+>1.1. XML</H1+><DIV+CLASS="section"+><H2+CLASS="section"+><A+NAME="xml_introduction"+></A+>1.1.1. Introduction</H2+><P+>&#13;			The Extensible Markup Language (XML) was standardized by the World Wide Web Consortium (W3C) at the beginning of 1998. The current standard is described by the Extensible Markup Language (XML) 1.0 (Second Edition) W3C Recommendation [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_xml"+><SPAN+CLASS="abbrev"+>WWW01</SPAN+></A+></SPAN+>]. XML forms a subset of the Structured Generalized Markup Language (SGML), which is extremely complex. XML itself is a simplified form of SGML. Both languages are meta languages for defining markup languages.+			</P+><P+>&#13;			XML documents are structured hierarchical. The documents base on a simple data model: trees with attributes as some extra structure.+			</P+><P+>&#13;			A Document Type Definition (DTD) can be used to define formal requirements to the structure of an XML document. It specifies a grammar for a class of documents. These are rules for the elements, attributes and other data and how they are logically related in an XML document. Each document, which corresponds to a DTD, is called an instance of this DTD.+			</P+><P+>&#13;			Today XML is often used to define and exchange data structures application-independent. A central role plays the validation of XML documents. Validation of XML documents describes the check if the document corresponds to the constraints of a DTD. The application that reads an XML document and performs validation is called XML processor. Not all XML processors are validating ones. Applications that do not need these checks can use non-validating XML processors for performance reasons.+			</P+></DIV+><DIV+CLASS="section"+><H2+CLASS="section"+><A+NAME="processing_xml"+></A+>1.1.2. Processing XML</H2+><P+>&#13;			Every application that processes information from XML documents needs an XML processor, which reads an XML document and provides access to its content and structure to the processing application. Two parse methods exist: event based and tree based parse method. They define essential differences for the communication between the XML processor and applications.+			</P+><DIV+CLASS="simplesect"+><H4+CLASS="simplesect"+><A+NAME="event_based"+></A+>1.1.2.1. Event based parse method</H4+><P+>&#13;				The document is processed sequentially; the most popular parse method is SAX - the Simple API for XML [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_sax"+><SPAN+CLASS="abbrev"+>WWW10</SPAN+></A+></SPAN+>]. Each element is an event trigger, which can initiate an action on the processing application. In terms of processing speed and memory consumption this is the most performant technique for accessing an XML document in sequential order. The event based parsed method is also very efficient for processing only a few specific elements of a document. The main disadvantage is that it is more difficult to generate output with a different order of elements than the input, because some kind of memory is needed.+				</P+></DIV+><DIV+CLASS="simplesect"+><H4+CLASS="simplesect"+><A+NAME="tree_based"+></A+>1.1.2.2. Tree based parse method</H4+><P+>&#13;				The document is transformed from a sequential into a hierarchical structure by the XML processor (e.g. <A+HREF="b2463.html#bib_dom"+>DOM</A+>/<A+HREF="b2463.html#bib_jdom"+>JDOM</A+>). This tree model of the document is stored in memory and can be accessed by the processing application. The main advantage of this parse method is that it supports random access to the document. Random access is needed for example for Extensible Stylesheet Language Transformations (XSLT) [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_xsl"+><SPAN+CLASS="abbrev"+>WWW07</SPAN+></A+></SPAN+>]. XSLT implements a tree-oriented transformation language for transmuting XML documents.+				</P+><P+>&#13;				The tree representation can be used for traversing the document several times or construct output in a different order from the input. The main disadvantage of this method is that the tree model is only accessible when parsing of the document is complete. For large documents this can be slow and memory intensive.+				</P+></DIV+></DIV+><DIV+CLASS="section"+><H2+CLASS="section"+><A+NAME="correctness"+></A+>1.1.3. Correctness of documents</H2+><DIV+CLASS="simplesect"+><H4+CLASS="simplesect"+><A+NAME="well-formed"+></A+>1.1.3.1. Well-formed documents</H4+><P+>&#13;				There exist two classes of correctness for XML documents. The first class form the well-formed documents. These documents meet the syntax rules of the XML 1.0 specification [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_xml"+><SPAN+CLASS="abbrev"+>WWW01</SPAN+></A+></SPAN+>]. If a document does not meet these syntax rules, it is not an XML document and is rejected by any XML processor.+				</P+><P+>&#13;					<P+></P+><P+><B+>Some XML syntax rules:</B+></P+><UL+><LI+><P+>Every document must have a single unique root element that encloses all other elements.</P+></LI+><LI+><P+>All elements must be correctly nested.</P+></LI+><LI+><P+>All elements must have corresponding start and end tags.</P+></LI+><LI+><P+>Attribute values must be enclosed within single or double quotes.</P+></LI+></UL+>+				</P+></DIV+><DIV+CLASS="simplesect"+><H4+CLASS="simplesect"+><A+NAME="valid"+></A+>1.1.3.2. Valid documents</H4+><P+>&#13;				The second class form the valid documents. These documents are well-formed and meet in addition the constraints of a DTD (described in <A+HREF="c78.html#dtd"+>Section 1.1.4</A+>) or a Schema [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_schema"+><SPAN+CLASS="abbrev"+>WWW08</SPAN+></A+></SPAN+>]. This class of correctness is required if XML documents must be exchanged between applications reliably. Only validating XML processors perform these checks, non-validating XML processors ignore the DTD.+				</P+></DIV+></DIV+><DIV+CLASS="section"+><H2+CLASS="section"+><A+NAME="dtd"+></A+>1.1.4. Document Type Definition (DTD)</H2+><P+>&#13;			XML is a meta language for specifying markup languages, the DTD is a tool to create and describe this language. A DTD defines the elements, attributes, entities and notations used in an XML document. Further it defines a context free grammar that states which is the allowed content of an element.	The DTD can point to an external DTD subset containing declarations, it may contain the  declarations directly in an internal DTD subset, or even both. This section will describe the definitions of elements and their attributes. They form the basic concepts of XML documents. Entity declarations that are mainly used for replacing text and notation declarations that are used for specifying the format of special contents are not explained. For a complete overview see [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_xmlquickref"+><SPAN+CLASS="abbrev"+>WWW04</SPAN+></A+></SPAN+>].+			</P+><DIV+CLASS="simplesect"+><H4+CLASS="simplesect"+><A+NAME="element-declaration"+></A+>1.1.4.1. Element type declaration</H4+><P+>&#13;				A DTD declares all allowed elements in an XML document. Elements are defined by &#60;!ELEMENT&#62; declarations. This declaration specifies the name of the element and its content model. Only one declaration for each element is allowed, multiple declarations are forbidden. The order of the declarations is irrelevant.+				</P+><P+>&#13;					<P+></P+><P+><B+><TT+CLASS="literal"+>&#60;!ELEMENT name content model&#62;</TT+></B+></P+><UL+><LI+><P+><TT+CLASS="literal"+>ELEMENT</TT+> - Keyword</P+></LI+><LI+><P+><TT+CLASS="literal"+>name</TT+> - Element name, respectively its tag names</P+></LI+><LI+><P+><TT+CLASS="literal"+>content model</TT+> - Definition of the allowed types of child elements (text data, other elements) and their order</P+></LI+></UL+>+				</P+><P+>&#13;				For defining the content model of elements there exist some operators. These operators are described shortly in the following.+				</P+><DIV+CLASS="table"+><A+NAME="AEN153"+></A+><P+><B+>Table 1-1. Connectors</B+></P+><TABLE+BORDER="1"+CLASS="CALSTABLE"+><TBODY+><TR+><TD+WIDTH="133"+ALIGN="LEFT"+VALIGN="MIDDLE"+>,</TD+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>Sequence of elements, "then"</TD+></TR+><TR+><TD+WIDTH="133"+ALIGN="LEFT"+VALIGN="MIDDLE"+>|</TD+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>Alternative of elements (exclusive), "xor"</TD+></TR+></TBODY+></TABLE+></DIV+><DIV+CLASS="table"+><A+NAME="AEN164"+></A+><P+><B+>Table 1-2. Occurrence indicators</B+></P+><TABLE+BORDER="1"+CLASS="CALSTABLE"+><TBODY+><TR+><TD+WIDTH="133"+ALIGN="LEFT"+VALIGN="MIDDLE"+>(no indicator)</TD+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>Element must appear exactly one time</TD+></TR+><TR+><TD+WIDTH="133"+ALIGN="LEFT"+VALIGN="MIDDLE"+>?</TD+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>Element is optional, 0 or 1</TD+></TR+><TR+><TD+WIDTH="133"+ALIGN="LEFT"+VALIGN="MIDDLE"+>*</TD+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>Element is optional and repeatable, 0 or more</TD+></TR+><TR+><TD+WIDTH="133"+ALIGN="LEFT"+VALIGN="MIDDLE"+>+</TD+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>Element must appear at least one time, 1 or more</TD+></TR+></TBODY+></TABLE+></DIV+><DIV+CLASS="table"+><A+NAME="AEN181"+></A+><P+><B+>Table 1-3. Grouping</B+></P+><TABLE+BORDER="1"+CLASS="CALSTABLE"+><TBODY+><TR+><TD+WIDTH="133"+ALIGN="LEFT"+VALIGN="MIDDLE"+>(</TD+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>Start of content model or group</TD+></TR+><TR+><TD+WIDTH="133"+ALIGN="LEFT"+VALIGN="MIDDLE"+>)</TD+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>End of content model or group</TD+></TR+></TBODY+></TABLE+></DIV+><DIV+CLASS="table"+><A+NAME="AEN192"+></A+><P+><B+>Table 1-4. #PCDATA in content model</B+></P+><TABLE+BORDER="1"+CLASS="CALSTABLE"+><TBODY+><TR+><TD+WIDTH="133"+ALIGN="LEFT"+VALIGN="TOP"+>(#PCDATA)</TD+><TD+ALIGN="LEFT"+VALIGN="TOP"+>Element has only text data or nothing as content</TD+></TR+><TR+><TD+WIDTH="133"+ALIGN="LEFT"+VALIGN="TOP"+>(#PCDATA | el1 | el2)*</TD+><TD+ALIGN="LEFT"+VALIGN="TOP"+>Mixed content. The element can contain text data and elements. #PCDATA must be listed in the declaration at first. It cannot be defined that allowed child elements have to appear in a certain order, or that they at least must appear.</TD+></TR+></TBODY+></TABLE+></DIV+><P+>&#13;				#PCDATA is the abbreviation for "parsed character data" and means that text data is inspected by the XML parser for eventual markup. If for example the text data contains entity references, the entities are expanded.+				</P+><DIV+CLASS="table"+><A+NAME="AEN204"+></A+><P+><B+>Table 1-5. Keywords</B+></P+><TABLE+BORDER="1"+CLASS="CALSTABLE"+><TBODY+><TR+><TD+WIDTH="133"+ALIGN="LEFT"+VALIGN="TOP"+>EMPTY</TD+><TD+ALIGN="LEFT"+VALIGN="TOP"+>Element has no content</TD+></TR+><TR+><TD+WIDTH="133"+ALIGN="LEFT"+VALIGN="TOP"+>ANY</TD+><TD+ALIGN="LEFT"+VALIGN="TOP"+>Element has any declared elements and text data as content, or is empty.</TD+></TR+></TBODY+></TABLE+></DIV+></DIV+><DIV+CLASS="simplesect"+><H4+CLASS="simplesect"+><A+NAME="attribute_declaration"+></A+>1.1.4.2. Attribute declarations</H4+><P+>&#13;				Attributes define additional name-value pairs for elements. The attributes are defined by &#60;!ATTLIST&#62; declarations. It defines the attribute type and default values.+				</P+><P+>&#13;					<P+></P+><P+><B+><TT+CLASS="literal"+>&#60;!ATTLIST target_element attr_name attr_type default&#62;</TT+></B+></P+><UL+><LI+><P+><TT+CLASS="literal"+>ATTLIST</TT+> - Keyword</P+></LI+><LI+><P+><TT+CLASS="literal"+>target_element</TT+> - Element name</P+></LI+><LI+><P+><TT+CLASS="literal"+>attr_name</TT+> - Attribute name</P+></LI+><LI+><P+><TT+CLASS="literal"+>attr_type</TT+> - Type of the attribute value, or list of values</P+></LI+><LI+><P+><TT+CLASS="literal"+>default</TT+> - Keyword or default value</P+></LI+></UL+>+				</P+><DIV+CLASS="table"+><A+NAME="AEN237"+></A+><P+><B+>Table 1-6. Type of the attribute value</B+></P+><TABLE+BORDER="1"+CLASS="CALSTABLE"+><TBODY+><TR+><TD+WIDTH="133"+ALIGN="LEFT"+VALIGN="TOP"+>CDATA</TD+><TD+ALIGN="LEFT"+VALIGN="TOP"+>Text data</TD+></TR+><TR+><TD+WIDTH="133"+ALIGN="LEFT"+VALIGN="TOP"+>ID</TD+><TD+ALIGN="LEFT"+VALIGN="TOP"+>Unique identifier, value of attribute must be unique within the XML document</TD+></TR+><TR+><TD+WIDTH="133"+ALIGN="LEFT"+VALIGN="TOP"+>IDREF</TD+><TD+ALIGN="LEFT"+VALIGN="TOP"+>Reference to an ID, must match the value of some ID attribute</TD+></TR+><TR+><TD+WIDTH="133"+ALIGN="LEFT"+VALIGN="TOP"+>IDREFS</TD+><TD+ALIGN="LEFT"+VALIGN="TOP"+>One or more references to IDs, separated by white space</TD+></TR+><TR+><TD+WIDTH="133"+ALIGN="LEFT"+VALIGN="TOP"+>NMTOKEN</TD+><TD+ALIGN="LEFT"+VALIGN="TOP"+>Name token, attribute value must  only consist of letters, digits and some extra characters</TD+></TR+><TR+><TD+WIDTH="133"+ALIGN="LEFT"+VALIGN="TOP"+>NMTOKENS</TD+><TD+ALIGN="LEFT"+VALIGN="TOP"+>One or more name tokens, separated by white space</TD+></TR+><TR+><TD+WIDTH="133"+ALIGN="LEFT"+VALIGN="TOP"+>ENTITY</TD+><TD+ALIGN="LEFT"+VALIGN="TOP"+>Name of an unparsed entity, declared in the DTD</TD+></TR+><TR+><TD+WIDTH="133"+ALIGN="LEFT"+VALIGN="TOP"+>ENTITIES</TD+><TD+ALIGN="LEFT"+VALIGN="TOP"+>One or more names of unparsed entities declared in the DTD, separated by white space</TD+></TR+><TR+><TD+WIDTH="133"+ALIGN="LEFT"+VALIGN="TOP"+>(a | b | c)</TD+><TD+ALIGN="LEFT"+VALIGN="TOP"+>Enumeration, list of possible attribute values</TD+></TR+></TBODY+></TABLE+></DIV+><DIV+CLASS="table"+><A+NAME="AEN269"+></A+><P+><B+>Table 1-7. Attribute defaults</B+></P+><TABLE+BORDER="1"+CLASS="CALSTABLE"+><TBODY+><TR+><TD+WIDTH="133"+ALIGN="LEFT"+VALIGN="TOP"+>"value"</TD+><TD+ALIGN="LEFT"+VALIGN="TOP"+>Default value of the attribute. If the attribute is not specified, this value is used by the XML processor</TD+></TR+><TR+><TD+WIDTH="133"+ALIGN="LEFT"+VALIGN="TOP"+>#REQUIRED</TD+><TD+ALIGN="LEFT"+VALIGN="TOP"+>Attribute must be specified</TD+></TR+><TR+><TD+WIDTH="133"+ALIGN="LEFT"+VALIGN="TOP"+>#IMPLIED</TD+><TD+ALIGN="LEFT"+VALIGN="TOP"+>Attribute is optional</TD+></TR+><TR+><TD+WIDTH="133"+ALIGN="LEFT"+VALIGN="TOP"+>#FIXED "value"</TD+><TD+ALIGN="LEFT"+VALIGN="TOP"+>Attribute has a fixed value. No other value is allowed.</TD+></TR+></TBODY+></TABLE+></DIV+></DIV+></DIV+><DIV+CLASS="section"+><H2+CLASS="section"+><A+NAME="xml_examples"+></A+>1.1.5. Example</H2+><P+>&#13;			This simple example demonstrates an XML document with an internal DTD. The DTD defines the elements <TT+CLASS="literal"+>a</TT+>, <TT+CLASS="literal"+>b</TT+> and <TT+CLASS="literal"+>c</TT+>. The element <TT+CLASS="literal"+>a</TT+> has an additional attribute <TT+CLASS="literal"+>att1</TT+>. The small document enclosed by the root element <TT+CLASS="literal"+>a</TT+> is an instance of this DTD.+			</P+><DIV+CLASS="example"+><A+NAME="AEN295"+></A+><P+><B+>Example 1-1. Sample XML document</B+></P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;&#60;?xml version="1.0" encoding="UTF-8" standalone="yes" ?&#62;++&#60;!DOCTYPE a [+&#60;!ATTLIST a  att1  CDATA  #IMPLIED&#62;+&#60;!ELEMENT a  (b, c?)&#62;+&#60;!ELEMENT b  EMPTY&#62;+&#60;!ELEMENT c  (#PCDATA)&#62;+]&#62;++&#60;a att1="test"&#62;+    &#60;b/&#62;+    &#60;c&#62;hello world&#60;/c&#62;+&#60;/a&#62;+				</PRE+></TD+></TR+></TABLE+></DIV+></DIV+></DIV+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="f61.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="x298.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>Preface</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+>&nbsp;</TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>Haskell</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/f61.html view
@@ -0,0 +1,193 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>Preface</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="PREVIOUS"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="NEXT"+TITLE="Basics"+HREF="c78.html"></HEAD+><BODY+CLASS="preface"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="index.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+></TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="c78.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><DIV+CLASS="preface"+><H1+><A+NAME="AEN61"+></A+>Preface</H1+><P+>&#13;	The primary aim of this project is to gain some valuable experiences with the beautiful functional programming Haskell. Parsing and processing lists are strengths of functional programming languages. Both features are needed to handle XML. Combined with higher-order combinatorial functions, that a functional programming language like Haskell allows, processing XML can be very efficient and elegant.+	</P+><P+>&#13;	Many of the techniques described in this master thesis are far more elegant, compact and powerful than the ones found in familiar techniques like DOM [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_dom"+><SPAN+CLASS="abbrev"+>WWW05</SPAN+></A+></SPAN+>] or JDOM [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_jdom"+><SPAN+CLASS="abbrev"+>WWW06</SPAN+></A+></SPAN+>].+	</P+><P+>&#13;	Because there did not exist any validating XML parser written in Haskell, we thought it might be a nice project implementing one and doing some further+	XML processing with Haskell. The Haskell XML Toolbox uses a general tree data model for representing XML documents. This generic data model makes it possible to implement an XML parser or XML processing applications with a uniform design by using filter functions and combinators for processing XML.+	</P+><P+>&#13;	We have chosen Haskell because it is a popular modern functional programming language, and we were interested in learning more about the functional programming paradigm. There exist lots of free implementations, online tutorials and some good Haskell books. The Haskell homepage Haskell.org [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_haskellorg"+><SPAN+CLASS="abbrev"+>WWW11</SPAN+></A+></SPAN+>] gives many further details.+	</P+><P+>&#13;	Learning functional programming with Haskell by self-studies was very challenging. It required a change in perspective of programming. But once the paradigms are understood, writing Haskell programs is very straightforward and makes a lot of fun.+	</P+><P+>&#13;	The first chapter gives an introduction to XML and Haskell. Readers who are familiar with these techniques can skip it. The next three chapters describe the packages <TT+CLASS="filename"+>hdom</TT+>, <TT+CLASS="filename"+>hparser</TT+> and <TT+CLASS="filename"+>hvalidator</TT+> of the Haskell XML Toolbox. The last chapter compares the design used in the Haskell XML Toolbox with HaXml and HXML.+	</P+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="c78.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>Design and Implementation of a validating XML parser in Haskell</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+>&nbsp;</TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>Basics</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/images/modules_hdom.gif view

binary file changed (absent → 4906 bytes)

+ doc/hvalidator/thesis/images/modules_hvalidator.gif view

binary file changed (absent → 9792 bytes)

+ doc/hvalidator/thesis/images/modules_xmlparser.gif view

binary file changed (absent → 4811 bytes)

+ doc/hvalidator/thesis/images/modules_xmlstate.gif view

binary file changed (absent → 2182 bytes)

+ doc/hvalidator/thesis/images/modules_xmltree.gif view

binary file changed (absent → 4749 bytes)

+ doc/hvalidator/thesis/index.html view
@@ -0,0 +1,919 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>Design and Implementation of a validating XML parser in Haskell</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="NEXT"+TITLE="Preface"+HREF="f61.html"></HEAD+><BODY+CLASS="book"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="BOOK"+><A+NAME="AEN1"+></A+><DIV+CLASS="TITLEPAGE"+><H1+CLASS="title"+><A+NAME="AEN2"+></A+>Design and Implementation of a validating XML parser in Haskell</H1+><H2+CLASS="subtitle"+>Master's thesis</H2+><H2+CLASS="subtitle"+><H3+CLASS="othercredit"+><A+NAME="AEN7"+></A+>University of Applied Sciences Wedel</H3+></H2+><H3+CLASS="author"+><A+NAME="AEN10"+></A+>Martin Schmidt</H3+><DIV+><DIV+CLASS="abstract"+><A+NAME="AEN18"+></A+><P+><B+>Abstract</B+></P+><P+>&#13;	This thesis introduces the core component of the Haskell XML Toolbox: a validating XML parser that supports almost fully the Extensible Markup Language (XML) 1.0 (Second Edition) W3C Recommendation [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_xml"+>WWW01</A+></SPAN+>]. The thesis presents how a validating XML parser and XML processing applications can be implemented by using filter functions as a uniform design.+	</P+><P+>&#13;	The Haskell XML Toolbox is a collection of tools for processing XML with Haskell. It is itself purely written in Haskell. The Toolbox is a project of the University of Applied Sciences Wedel, initialized by Prof. Dr. Uwe Schmidt.+	</P+><P+>&#13;	The Haskell XML Toolbox bases on the ideas of HaXml [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_haxml"+>WWW21</A+></SPAN+>] and HXML [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_hxml"+>WWW25</A+></SPAN+>], but introduces a more general approach for processing XML with Haskell. It uses a generic data model for representing XML documents, including the DTD subset and the document subset. This data model makes is possible to use filter functions as a uniform design of XML processing applications. Libraries with filters and combinators are provided for processing this data model.+	</P+><P+>&#13;		<P+></P+><H1+CLASS="title"+><A+NAME="AEN30"+></A+>The following components are included:</H1+><UL+><LI+><P+><TT+CLASS="filename"+>hdom</TT+> - Core data types and functions for processing XML with Haskell</P+></LI+><LI+><P+><TT+CLASS="filename"+>hparser</TT+> - XML parser</P+></LI+><LI+><P+><TT+CLASS="filename"+>hvalidator</TT+> - Modules for validating XML documents</P+></LI+><LI+><P+><TT+CLASS="filename"+>hxslt</TT+> - Modules for XSL transformations</P+></LI+></UL+>+	</P+><P+>&#13;	Prof. Dr. Uwe Schmidt wrote the basic parser and core functions. His master student Christine Nickel wrote the package <TT+CLASS="filename"+>hxslt</TT+>, his master student Martin Schmidt wrote the package <TT+CLASS="filename"+>hvalidator</TT+> and some parts of the parser.+	</P+><P+></P+><P+><B+CLASS="command"+>Related work</B+></P+><P+>&#13;	Malcolm Wallace and Colin Runciman wrote HaXml [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_haxml"+>WWW21</A+></SPAN+>], a collection of utilities for using Haskell and XML together. The Haskell XML Toolbox is based on their idea of using filter combinators for processing XML with Haskell.+	</P+><P+>&#13;	Joe English wrote HXML [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_hxml"+>WWW25</A+></SPAN+>], a non-validating XML parser in Haskell. His idea of validating XML by using derivatives of regular expressions [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_derivates_je"+>WWW26</A+></SPAN+>] was implemented in the validation functions of this software.+	</P+></DIV+></DIV+><HR></DIV+><H1+><A+NAME="AEN58"+></A+>Dedication</H1+><P+>&#13;      		<TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;"Learn at least one new [programming] language every year.+ Different languages solve the same problems in different ways.+ By learning several different approaches, you can help broaden+ your thinking and avoid getting stuck in a rut."+    --- The Pragmatic Programmer+			</PRE+></TD+></TR+></TABLE+>+		</P+><DIV+CLASS="TOC"+><DL+><DT+><B+>Table of Contents</B+></DT+><DT+><A+HREF="f61.html"+>Preface</A+></DT+><DT+>1. <A+HREF="c78.html"+>Basics</A+></DT+><DD+><DL+><DT+>1.1. <A+HREF="c78.html#xml"+>XML</A+></DT+><DD+><DL+><DT+>1.1.1. <A+HREF="c78.html#xml_introduction"+>Introduction</A+></DT+><DT+>1.1.2. <A+HREF="c78.html#processing_xml"+>Processing XML</A+></DT+><DT+>1.1.3. <A+HREF="c78.html#correctness"+>Correctness of documents</A+></DT+><DT+>1.1.4. <A+HREF="c78.html#dtd"+>Document Type Definition (DTD)</A+></DT+><DT+>1.1.5. <A+HREF="c78.html#xml_examples"+>Example</A+></DT+></DL+></DD+><DT+>1.2. <A+HREF="x298.html"+>Haskell</A+></DT+><DD+><DL+><DT+>1.2.1. <A+HREF="x298.html#haskell_introduction"+>Introduction</A+></DT+><DT+>1.2.2. <A+HREF="x298.html#functions"+>Functions</A+></DT+><DT+>1.2.3. <A+HREF="x298.html#types"+>Types</A+></DT+><DT+>1.2.4. <A+HREF="x298.html#pattern_matching"+>Pattern Matching</A+></DT+><DT+>1.2.5. <A+HREF="x298.html#guards"+>Guards</A+></DT+><DT+>1.2.6. <A+HREF="x298.html#higher_order_functions"+>Higher-order Functions</A+></DT+><DT+>1.2.7. <A+HREF="x298.html#modules_introduction"+>Modules</A+></DT+></DL+></DD+></DL+></DD+><DT+>2. <A+HREF="c468.html"+>Package hdom</A+></DT+><DD+><DL+><DT+>2.1. <A+HREF="c468.html#modules"+>Modules</A+></DT+><DT+>2.2. <A+HREF="x558.html"+>Data structures</A+></DT+><DD+><DL+><DT+>2.2.1. <A+HREF="x558.html#AEN560"+>Core components</A+></DT+><DT+>2.2.2. <A+HREF="x558.html#AEN575"+>Data type XmlTree</A+></DT+><DT+>2.2.3. <A+HREF="x558.html#example_xmltree"+>Example</A+></DT+></DL+></DD+><DT+>2.3. <A+HREF="x854.html"+>Filter functions</A+></DT+><DD+><DL+><DT+>2.3.1. <A+HREF="x854.html#filter_introduction"+>Introduction</A+></DT+><DT+>2.3.2. <A+HREF="x854.html#filters_ntree"+>Filters from module NTree</A+></DT+><DT+>2.3.3. <A+HREF="x854.html#filters_xmltreeaccess"+>Filters from module XmlTreeAccess</A+></DT+></DL+></DD+><DT+>2.4. <A+HREF="x1178.html"+>Filter combinators</A+></DT+><DD+><DL+><DT+>2.4.1. <A+HREF="x1178.html#combinators_introduction"+>Introduction</A+></DT+><DT+>2.4.2. <A+HREF="x1178.html#combinators_list"+>List of combinators</A+></DT+><DT+>2.4.3. <A+HREF="x1178.html#combinators_binding"+>Binding power and associativity</A+></DT+></DL+></DD+><DT+>2.5. <A+HREF="x1438.html"+>Examples for filters and filter combinators</A+></DT+><DD+><DL+><DT+>2.5.1. <A+HREF="x1438.html#AEN1442"+>Removing comments</A+></DT+><DT+>2.5.2. <A+HREF="x1438.html#AEN1484"+>Merging internal and external DTD subset</A+></DT+></DL+></DD+><DT+>2.6. <A+HREF="x1522.html"+>Access functions</A+></DT+><DT+>2.7. <A+HREF="x1577.html"+>State-I/O monad from module XmlState</A+></DT+></DL+></DD+><DT+>3. <A+HREF="c1645.html"+>Package hparser</A+></DT+><DD+><DL+><DT+>3.1. <A+HREF="c1645.html#AEN1654"+>Overview</A+></DT+><DT+>3.2. <A+HREF="x1694.html"+>Module HdomParser</A+></DT+><DT+>3.3. <A+HREF="x1763.html"+>Module XmlParser</A+></DT+><DT+>3.4. <A+HREF="x1800.html"+>Module XmlInput</A+></DT+><DT+>3.5. <A+HREF="x1823.html"+>Module DTDProcessing</A+></DT+><DT+>3.6. <A+HREF="x1830.html"+>Module XmlOutput</A+></DT+></DL+></DD+><DT+>4. <A+HREF="c1850.html"+>Package hvalidator</A+></DT+><DD+><DL+><DT+>4.1. <A+HREF="c1850.html#module_hierarchy"+>Module hierarchy</A+></DT+><DT+>4.2. <A+HREF="x1900.html"+>Creating a validating XML parser</A+></DT+><DT+>4.3. <A+HREF="x1946.html"+>Validation of the Document Type Definition</A+></DT+><DT+>4.4. <A+HREF="x2007.html"+>Validation of the document subset</A+></DT+><DT+>4.5. <A+HREF="x2065.html"+>Transformation of the document subset</A+></DT+><DT+>4.6. <A+HREF="x2081.html"+>Validation of attribute values</A+></DT+><DT+>4.7. <A+HREF="x2086.html"+>Derivatives of regular expressions</A+></DT+><DD+><DL+><DT+>4.7.1. <A+HREF="x2086.html#AEN2102"+>Description</A+></DT+><DT+>4.7.2. <A+HREF="x2086.html#AEN2107"+>Examples</A+></DT+><DT+>4.7.3. <A+HREF="x2086.html#AEN2116"+>Realization in Haskell</A+></DT+><DT+>4.7.4. <A+HREF="x2086.html#AEN2153"+>Conclusions</A+></DT+></DL+></DD+></DL+></DD+><DT+>5. <A+HREF="c2165.html"+>Conclusion</A+></DT+><DD+><DL+><DT+>5.1. <A+HREF="c2165.html#AEN2167"+>XML conformance of the parser</A+></DT+><DT+>5.2. <A+HREF="x2201.html"+>The Haskell XML Toolbox in comparison to HaXml and HXML</A+></DT+><DT+>5.3. <A+HREF="x2257.html"+>Conclusions and future work</A+></DT+></DL+></DD+><DT+>A. <A+HREF="a2283.html"+>User handbook</A+></DT+><DD+><DL+><DT+>A.1. <A+HREF="a2283.html#AEN2285"+>System requirements</A+></DT+><DT+>A.2. <A+HREF="x2308.html"+>Missing features and known problems</A+></DT+><DT+>A.3. <A+HREF="x2330.html"+>Directory structure</A+></DT+><DT+>A.4. <A+HREF="x2367.html"+>HXmlParser - Well-formedness checker and validator</A+></DT+><DT+>A.5. <A+HREF="x2380.html"+>Check the XML parser with the XML Test Suites</A+></DT+><DT+>A.6. <A+HREF="x2408.html"+>Performance and profiling</A+></DT+><DD+><DL+><DT+>A.6.1. <A+HREF="x2408.html#AEN2411"+>Usage information</A+></DT+><DT+>A.6.2. <A+HREF="x2408.html#AEN2447"+>How to interpret the results</A+></DT+></DL+></DD+></DL+></DD+><DT+>B. <A+HREF="a2458.html"+>MIT License</A+></DT+><DT+><A+HREF="b2463.html"+>Bibliography</A+></DT+><DT+><A+HREF="b2739.html"+>Affidavit</A+></DT+></DL+></DIV+><DIV+CLASS="LOT"+><DL+CLASS="LOT"+><DT+><B+>List of Tables</B+></DT+><DT+>1-1. <A+HREF="c78.html#AEN153"+>Connectors</A+></DT+><DT+>1-2. <A+HREF="c78.html#AEN164"+>Occurrence indicators</A+></DT+><DT+>1-3. <A+HREF="c78.html#AEN181"+>Grouping</A+></DT+><DT+>1-4. <A+HREF="c78.html#AEN192"+>#PCDATA in content model</A+></DT+><DT+>1-5. <A+HREF="c78.html#AEN204"+>Keywords</A+></DT+><DT+>1-6. <A+HREF="c78.html#AEN237"+>Type of the attribute value</A+></DT+><DT+>1-7. <A+HREF="c78.html#AEN269"+>Attribute defaults</A+></DT+><DT+>2-1. <A+HREF="x1178.html#AEN1367"+>Binding power and associativity of functional combinators</A+></DT+><DT+>2-2. <A+HREF="x1178.html#AEN1414"+>Binding power and associativity of monadic combinators</A+></DT+></DL+></DIV+><DIV+CLASS="LOT"+><DL+CLASS="LOT"+><DT+><B+>List of Figures</B+></DT+><DT+>2-1. <A+HREF="c468.html#modules_xmltree"+>Module hierarchy of XmlTree</A+></DT+><DT+>2-2. <A+HREF="c468.html#modules_hdom"+>General modules of package hdom</A+></DT+><DT+>2-3. <A+HREF="x1577.html#modules_xmlstate"+>Modules of XmlState</A+></DT+><DT+>3-1. <A+HREF="x1763.html#modules_xmlparser"+>Modules of XmlParser</A+></DT+><DT+>4-1. <A+HREF="c1850.html#modules_hvalidator"+>Modules of package hvalidator</A+></DT+></DL+></DIV+><DIV+CLASS="LOT"+><DL+CLASS="LOT"+><DT+><B+>List of Examples</B+></DT+><DT+>1-1. <A+HREF="c78.html#AEN295"+>Sample XML document</A+></DT+><DT+>1-2. <A+HREF="x298.html#AEN328"+>Adding two integers</A+></DT+><DT+>1-3. <A+HREF="x298.html#AEN337"+>Prefix and infix notation</A+></DT+><DT+>1-4. <A+HREF="x298.html#AEN342"+>Type signature of an infix function</A+></DT+><DT+>1-5. <A+HREF="x298.html#AEN347"+>Define associativity and binding power</A+></DT+><DT+>1-6. <A+HREF="x298.html#AEN361"+>A tuple for persons with ID and name</A+></DT+><DT+>1-7. <A+HREF="x298.html#AEN368"+>Get the head of a list</A+></DT+><DT+>1-8. <A+HREF="x298.html#AEN379"+>Definition of String</A+></DT+><DT+>1-9. <A+HREF="x298.html#AEN391"+>A type for binary trees</A+></DT+><DT+>1-10. <A+HREF="x298.html#AEN397"+>Calculate the length of a list</A+></DT+><DT+>1-11. <A+HREF="x298.html#AEN412"+>Get all values from Bintree</A+></DT+><DT+>1-12. <A+HREF="x298.html#AEN419"+>Get all leafs from Bintree</A+></DT+><DT+>1-13. <A+HREF="x298.html#AEN428"+>Calculate the maximum of two numbers</A+></DT+><DT+>1-14. <A+HREF="x298.html#AEN436"+>Apply a function to a list</A+></DT+><DT+>1-15. <A+HREF="x298.html#AEN448"+>Increase all numbers in a list</A+></DT+><DT+>1-16. <A+HREF="x298.html#AEN457"+>Modules</A+></DT+><DT+>2-1. <A+HREF="x558.html#AEN836"+>Input document</A+></DT+><DT+>2-2. <A+HREF="x558.html#AEN847"+>Input document as XmlTree</A+></DT+><DT+>2-3. <A+HREF="x558.html#AEN851"+>Internal representation of the document subset</A+></DT+><DT+>2-4. <A+HREF="x1522.html#AEN1574"+>Adding a new attribute to an XTag node.</A+></DT+><DT+>2-5. <A+HREF="x1577.html#AEN1638"+>Using the monad from XmlState</A+></DT+><DT+>4-1. <A+HREF="x1900.html#AEN1943"+>Validating a document with errors</A+></DT+><DT+>4-2. <A+HREF="x1946.html#AEN2002"+>Validation that notations are not declared for EMPTY elements</A+></DT+><DT+>4-3. <A+HREF="x2007.html#AEN2062"+>Validation that all attributes are unique</A+></DT+><DT+>5-1. <A+HREF="x2201.html#AEN2213"+>Document subset in HXML</A+></DT+><DT+>5-2. <A+HREF="x2201.html#AEN2217"+>DTD subset in HXML</A+></DT+><DT+>5-3. <A+HREF="x2201.html#AEN2226"+>XML documents in HaXml</A+></DT+><DT+>5-4. <A+HREF="x2201.html#AEN2234"+>Document subset in HaXml</A+></DT+><DT+>5-5. <A+HREF="x2201.html#AEN2239"+>The filter type of HaXml</A+></DT+><DT+>5-6. <A+HREF="x2201.html#AEN2247"+>XML documents represented in the Haskell XML Toolbox</A+></DT+><DT+>A-1. <A+HREF="x2380.html#AEN2405"+>Executing RunTestCases</A+></DT+></DL+></DIV+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>&nbsp;</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+>&nbsp;</TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="f61.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>&nbsp;</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+>&nbsp;</TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>Preface</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/stylesheet-images/caution.gif view

binary file changed (absent → 1039 bytes)

+ doc/hvalidator/thesis/stylesheet-images/home.gif view

binary file changed (absent → 995 bytes)

+ doc/hvalidator/thesis/stylesheet-images/important.gif view

binary file changed (absent → 1081 bytes)

+ doc/hvalidator/thesis/stylesheet-images/next.gif view

binary file changed (absent → 964 bytes)

+ doc/hvalidator/thesis/stylesheet-images/note.gif view

binary file changed (absent → 1070 bytes)

+ doc/hvalidator/thesis/stylesheet-images/prev.gif view

binary file changed (absent → 944 bytes)

+ doc/hvalidator/thesis/stylesheet-images/tip.gif view

binary file changed (absent → 1029 bytes)

+ doc/hvalidator/thesis/stylesheet-images/toc-blank.gif view

binary file changed (absent → 95 bytes)

+ doc/hvalidator/thesis/stylesheet-images/toc-minus.gif view

binary file changed (absent → 843 bytes)

+ doc/hvalidator/thesis/stylesheet-images/toc-plus.gif view

binary file changed (absent → 846 bytes)

+ doc/hvalidator/thesis/stylesheet-images/up.gif view

binary file changed (absent → 922 bytes)

+ doc/hvalidator/thesis/stylesheet-images/warning.gif view

binary file changed (absent → 1052 bytes)

+ doc/hvalidator/thesis/x1178.html view
@@ -0,0 +1,887 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>Filter combinators</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="UP"+TITLE="Package hdom"+HREF="c468.html"><LINK+REL="PREVIOUS"+TITLE="Filter functions"+HREF="x854.html"><LINK+REL="NEXT"+TITLE="Examples for filters and filter combinators"+HREF="x1438.html"></HEAD+><BODY+CLASS="section"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="x854.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+>Chapter 2. Package hdom</TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="x1438.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><DIV+CLASS="section"+><H1+CLASS="section"+><A+NAME="combinators"+></A+>2.4. Filter combinators</H1+><DIV+CLASS="section"+><H2+CLASS="section"+><A+NAME="combinators_introduction"+></A+>2.4.1. Introduction</H2+><P+>&#13;			Functional programming languages like Haskell allow the use of higher-order functions, which take some functions as input, return a function as a result, or both. Filter combinators are higher-order functions, or operators, for combining several filters (see  <A+HREF="x854.html"+>Section 2.3</A+>). By combining simple filters, more complex functions can be created. Because all filters share the same type, it is possible that any filter can be composed with any other. All filters can be mixed and matched freely, because all functions in Haskell are side-effect free.+			</P+><P+>&#13;			The idea of filter combinators was adapted and extended from HaXml [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_haxml"+><SPAN+CLASS="abbrev"+>WWW21</SPAN+></A+></SPAN+>]. In their paper "Haskell and XML: Generic Combinators or Type-Based Translation?" [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_haxmlpaper"+><SPAN+CLASS="abbrev"+>WWW22</SPAN+></A+></SPAN+>] Malcom Wallace and Colin Runciman describe various algebraic laws for their combinators.+			</P+><P+>&#13;			The use of combinators makes it possible to hide details of programming over data structures. All details of data structure manipulation are hidden in combinator functions. In effect, the combinators define problem specific control structures. With this approach it is possible to reach a form of expression that is natural for the problem itself.+			</P+><P+>&#13;			Conceptually, combinators are much like Unix pipes in that they allow building up more complex computational sequences by flexibly arranging highly specialized tools [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_haxml_parsia"+><SPAN+CLASS="abbrev"+>WWW24</SPAN+></A+></SPAN+>].+			The equivalent to Unix pipes it the "Irish composition" combinator, represented by the infix operator "<TT+CLASS="function"+>o</TT+>". This combinator applies one filter to the results of another one. This is similar to a pipe, which passes the output of one program as the input to another one.+			</P+><P+>&#13;			The combinator library provides all functions that are necessary for traversing and processing XML documents represented as an <TT+CLASS="literal"+>XmlTree</TT+>. Haskell allows the definition of own infix operator symbols. Some combinators are defined as infix operators where it seemed more natural.+			</P+></DIV+><DIV+CLASS="section"+><H2+CLASS="section"+><A+NAME="combinators_list"+></A+>2.4.2. List of combinators</H2+><P+></P+><DIV+CLASS="variablelist"+><P+><B+>Basic filter combinators</B+></P+><DL+><DT+><TT+CLASS="function"+>o :: (a -&#62; [b]) -&#62; (c -&#62; [a]) -&#62; c -&#62; [b]</TT+></DT+><DD+><P+>&#13;						Irish composition. Sequential composition of two filters. The left filter is applied to the result of the right filter. (conjunction)+						</P+></DD+><DT+><TT+CLASS="function"+>(+++) :: (a -&#62; [b]) -&#62; (a -&#62; [b]) -&#62; (a -&#62; [b])</TT+></DT+><DD+><P+>&#13;						Binary parallel composition, the function unifies the results of two filters sequential. Each filter uses a copy of state. (union)+						</P+></DD+><DT+><TT+CLASS="function"+>cat :: [a -&#62; [b]] -&#62; (a -&#62; [b])</TT+></DT+><DD+><P+>&#13;						Concatenates the results of all filters in a list, a list version of union <TT+CLASS="function"+>+++</TT+>. The combinator sticks lots of filters together.+						</P+></DD+><DT+><TT+CLASS="function"+>($$) :: (a -&#62; [b]) -&#62; [a] -&#62; [b]</TT+></DT+><DD+><P+>&#13;						Applies a filter to a list.+						</P+></DD+><DT+><TT+CLASS="function"+>processChildren :: TFilter node -&#62; TFilter node</TT+></DT+><DD+><P+>&#13;						Applies a filter to the child list of a node.+						</P+></DD+></DL+></DIV+><P+></P+><DIV+CLASS="variablelist"+><P+><B+>Choice combinators</B+></P+><DL+><DT+><TT+CLASS="function"+>orElse :: (a -&#62; [b]) -&#62; (a -&#62; [b]) -&#62; (a -&#62; [b])</TT+></DT+><DD+><P+>&#13;						Directional choice. Second filter is only applied if the first one produces an empty list.+						</P+></DD+><DT+><TT+CLASS="function"+>(?&#62;) :: (a -&#62; [b]) -&#62; ThenElse (a -&#62; [b]) -&#62; (a -&#62; [b])</TT+></DT+><DD+><P+>&#13;						In combination with the type <TT+CLASS="function"+>ThenElse a = a :&#62; a</TT+> this combinator models an expression that resembles the conditional expression "<TT+CLASS="function"+>p ? f : g</TT+>" of C: "<TT+CLASS="function"+>p ?&#62; f :&#62; g</TT+>". If the predicate filter <TT+CLASS="literal"+>p</TT+> is true, the filter <TT+CLASS="literal"+>f</TT+> is applied otherwise <TT+CLASS="literal"+>g</TT+> is applied.+						</P+></DD+><DT+><TT+CLASS="function"+>when :: TFilter node -&#62; TFilter node -&#62; TFilter nod</TT+></DT+><DD+><P+>&#13;						First filter is only applied to the passed node, if the second filter produces a list with contents, otherwise a list with the passed node is returned. The second filter is typically a predicate filter.+						</P+><P+>&#13;							Definition: <TT+CLASS="function"+>f `when` g = g ?&#62; f :&#62; this</TT+>+						</P+></DD+><DT+><TT+CLASS="function"+>whenNot :: TFilter node -&#62; TFilter node -&#62; TFilter node</TT+></DT+><DD+><P+>&#13;						First filter is only applied to the passed node, if the second filter produces an empty list, otherwise a list of the passed node is returned. The second filter is typically a predicate filter.+						</P+><P+>&#13;							Definition: <TT+CLASS="function"+>f `whenNot` g = g ?&#62; this :&#62; f</TT+>+						</P+></DD+><DT+><TT+CLASS="function"+>guards :: TFilter node -&#62; TFilter node -&#62; TFilter node</TT+></DT+><DD+><P+>&#13;						First filter is only applied to the passed node, if the second filter produces a list with contents, otherwise an empty list is returned. The second filter is typically a predicate filter.+						</P+><P+>&#13;							Definition: <TT+CLASS="function"+>g `guards` f = g ?&#62; f :&#62; none</TT+>+						</P+></DD+><DT+><TT+CLASS="function"+>containing :: (a -&#62; [b]) -&#62; (b -&#62; [c]) -&#62; a -&#62; [b]</TT+></DT+><DD+><P+>&#13;						Pruning: Keep only those nodes for which the second filter produces a list with contents and apply the first filter to these nodes.+						</P+><P+>&#13;							Definition: <TT+CLASS="function"+>f `containing` g = filter (not . null . g) . f</TT+>+						</P+></DD+><DT+><TT+CLASS="function"+>notContaining :: (a -&#62; [b]) -&#62; (b -&#62; [c]) -&#62; a -&#62; [b]</TT+></DT+><DD+><P+>&#13;						Pruning: Keep only those nodes for which the second filter produces an empty list and apply the first filter to these nodes.+						</P+><P+>&#13;							Definition: <TT+CLASS="function"+>f `notContaining` g = filter (null . g) . f</TT+>+						</P+></DD+><DT+><TT+CLASS="function"+>(/&#62;) :: TFilter node -&#62; TFilter node -&#62; TFilter node</TT+></DT+><DD+><P+>&#13;						Interior search, pronounced <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>"slash"</I+></SPAN+>. First filter is applied to a node, the children of the result are taken and the second filter is applied to them, these children are returned. (meaning g inside f)+						</P+><P+>&#13;							Definition: <TT+CLASS="function"+>f /&#62; g = g `o` getChildren `o` f</TT+>+						</P+></DD+><DT+><TT+CLASS="function"+>(&#60;/) :: TFilter node -&#62; TFilter node -&#62; TFilter node</TT+></DT+><DD+><P+>&#13;						Exterior search, pronounced <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>"outside"</I+></SPAN+>. First filter is applied to a node, the second to its children. If both filters return a result, the node is returned. (meaning f containing g)+						</P+><P+>&#13;							Definition: <TT+CLASS="function"+>f &#60;/ g = f `containing` (g `o` getChildren)</TT+>+						</P+></DD+></DL+></DIV+><P+></P+><DIV+CLASS="variablelist"+><P+><B+>Recursive search combinators</B+></P+><DL+><DT+><TT+CLASS="function"+>deep :: TFilter node -&#62; TFilter node</TT+></DT+><DD+><P+>&#13;						Filter is applied to each node of the tree. If the filter returns a result, processing is stopped. If not, the filter is applied to the next node of the tree. (top down traversal)+						</P+></DD+><DT+><TT+CLASS="function"+>deepest :: TFilter node -&#62; TFilter node</TT+></DT+><DD+><P+>&#13;						See <TT+CLASS="function"+>deep</TT+>, but bottom up traversal.+						</P+></DD+><DT+><TT+CLASS="function"+>multi :: TFilter node -&#62; TFilter node</TT+></DT+><DD+><P+>&#13;						Returns all successful applications of the filter to the whole tree.+						</P+></DD+></DL+></DIV+><P+></P+><DIV+CLASS="variablelist"+><P+><B+>Recursive transformation combinators</B+></P+><DL+><DT+><TT+CLASS="function"+>applyBottomUp :: TFilter node -&#62; TFilter node</TT+></DT+><DD+><P+>&#13;						Constructs a new tree by applying the passed filter to each node of the tree. The tree is traversed bottom-up.+						</P+></DD+><DT+><TT+CLASS="function"+>applyTopDown :: TFilter node -&#62; TFilter node</TT+></DT+><DD+><P+>&#13;						Constructs a new tree by applying the passed filter to each node of the tree. The tree is traversed top-down.+						</P+></DD+><DT+><TT+CLASS="function"+>applyBottomUpIfNot :: TFilter node -&#62; TFilter node -&#62; TFilter node</TT+></DT+><DD+><P+>&#13;						Constructs a new tree with a guarded top down transformation. The first filter is only applied to those nodes for which the second filter produces a result.+						</P+></DD+></DL+></DIV+><P+></P+><DIV+CLASS="variablelist"+><P+><B+>Monadic composition</B+></P+><DL+><DT+><TT+CLASS="function"+>liftM :: Monad m =&#62; (a -&#62; [b]) -&#62; a -&#62; m [b]</TT+></DT+><DD+><P+>&#13;						Lift a normal filter to a monadic filter so that it can be used in monads.+						</P+></DD+><DT+><TT+CLASS="function"+>(.&#60;) :: Monad m =&#62; (b -&#62; m [c]) -&#62; (a -&#62; m[b]) -&#62; (a -&#62; m[c])</TT+></DT+><DD+><P+>&#13;						Monadic Irish composition. Sequential composition of two filters. The first filter is applied to the result of the second filter (conjunction). Monadic version of the basic filter <TT+CLASS="function"+>o</TT+>.+						</P+></DD+><DT+><TT+CLASS="function"+>($$&#60;) :: Monad m =&#62; (a -&#62; m [b]) -&#62; [a] -&#62; m [b]</TT+></DT+><DD+><P+>&#13;						Apply a monadic filter to a list. Monadic version of the basic filter combinator <TT+CLASS="function"+>cat</TT+>.+						</P+></DD+></DL+></DIV+><P+></P+><DIV+CLASS="variablelist"+><P+><B+>Special Filter combinators for XmlTree</B+></P+><DL+><DT+><TT+CLASS="function"+>whenOk :: XmlFilter -&#62; XmlFilter -&#62;XmlFilter</TT+></DT+><DD+><P+>&#13;						Applies the first filter to a node and checks the result for errors. In case of an error it stops processing and returns the list with the <TT+CLASS="literal"+>XError</TT+> node. Otherwise processing is continued and the second filter is applied to the result.+						</P+></DD+><DT+><TT+CLASS="function"+>whenOkM :: Monad m =&#62; (a -&#62; XmlTrees) -&#62; (XmlTrees -&#62; m XmlTrees) -&#62; a -&#62; m XmlTrees</TT+></DT+><DD+><P+>&#13;						Monadic version of <TT+CLASS="function"+>whenOk</TT+>.+						</P+></DD+></DL+></DIV+></DIV+><DIV+CLASS="section"+><H2+CLASS="section"+><A+NAME="combinators_binding"+></A+>2.4.3. Binding power and associativity</H2+><P+>&#13;			Some combinators like the basic filter combinators and choice combinators can be expressed more naturally by operators. In Haskell completely new operators can be invented by using infix versions of functions and defining precedences and associativities for them.+			</P+><P+>&#13;			The combinator operators are listed in following tables in decreasing order of their binding power. Combinators defined as prefix functions have to be written in back-quotes to be used as operators.+			</P+><DIV+CLASS="table"+><A+NAME="AEN1367"+></A+><P+><B+>Table 2-1. Binding power and associativity of functional combinators</B+></P+><TABLE+BORDER="1"+CLASS="CALSTABLE"+><THEAD+><TR+><TH+ALIGN="LEFT"+VALIGN="MIDDLE"+>Precedence level</TH+><TH+ALIGN="LEFT"+VALIGN="MIDDLE"+>Operator</TH+><TH+ALIGN="LEFT"+VALIGN="MIDDLE"+>Associativity</TH+></TR+></THEAD+><TBODY+><TR+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>6 (high)</TD+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>&#13;								<TT+CLASS="function"+>`containing`</TT+>, <TT+CLASS="function"+>`notContaining`</TT+>+							</TD+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>left</TD+></TR+><TR+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>5</TD+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>&#13;								<TT+CLASS="function"+>`o`</TT+>, <TT+CLASS="function"+>+++</TT+>+							</TD+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>right</TD+></TR+><TR+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>5</TD+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>&#13;								<TT+CLASS="function"+>/&#62;</TT+>, <TT+CLASS="function"+>&#60;/</TT+>, <TT+CLASS="function"+>`orElse`</TT+>+							</TD+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>left</TD+></TR+><TR+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>4</TD+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>&#13;								<TT+CLASS="function"+>`when`</TT+>, <TT+CLASS="function"+>`whenNot`</TT+>, <TT+CLASS="function"+>`guards`</TT+>, <TT+CLASS="function"+>`whenOk`</TT+>+							</TD+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>right</TD+></TR+><TR+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>3</TD+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>&#13;								<TT+CLASS="function"+>?&#62;</TT+>, <TT+CLASS="function"+>:&#62;</TT+>+							</TD+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>right</TD+></TR+><TR+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>0 (low)</TD+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>&#13;								<TT+CLASS="function"+>$$</TT+>+							</TD+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>right</TD+></TR+></TBODY+></TABLE+></DIV+><DIV+CLASS="table"+><A+NAME="AEN1414"+></A+><P+><B+>Table 2-2. Binding power and associativity of monadic combinators</B+></P+><TABLE+BORDER="1"+CLASS="CALSTABLE"+><THEAD+><TR+><TH+ALIGN="LEFT"+VALIGN="MIDDLE"+>Precedence level</TH+><TH+ALIGN="LEFT"+VALIGN="MIDDLE"+>Operator</TH+><TH+ALIGN="LEFT"+VALIGN="MIDDLE"+>Associativity</TH+></TR+></THEAD+><TBODY+><TR+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>5 (high)</TD+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>&#13;								<TT+CLASS="function"+>.&#60;</TT+>+							</TD+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>right</TD+></TR+><TR+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>4</TD+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>&#13;								<TT+CLASS="function"+>`whenOkM`</TT+>+							</TD+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>right</TD+></TR+><TR+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>0 (low)</TD+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>&#13;								<TT+CLASS="function"+>$$&#60;</TT+>+							</TD+><TD+ALIGN="LEFT"+VALIGN="MIDDLE"+>right</TD+></TR+></TBODY+></TABLE+></DIV+></DIV+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="x854.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="x1438.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>Filter functions</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="c468.html"+ACCESSKEY="U"+>Up</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>Examples for filters and filter combinators</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/x1438.html view
@@ -0,0 +1,539 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>Examples for filters and filter combinators</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="UP"+TITLE="Package hdom"+HREF="c468.html"><LINK+REL="PREVIOUS"+TITLE="Filter combinators"+HREF="x1178.html"><LINK+REL="NEXT"+TITLE="Access functions"+HREF="x1522.html"></HEAD+><BODY+CLASS="section"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="x1178.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+>Chapter 2. Package hdom</TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="x1522.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><DIV+CLASS="section"+><H1+CLASS="section"+><A+NAME="examples"+></A+>2.5. Examples for filters and filter combinators</H1+><P+>&#13;		After discussing filters and filter combinators in depth, this section shows the use of these functions in real life examples. Because the filters work on the generic tree data type <TT+CLASS="literal"+>XmlTree</TT+>, which represents whole XML documents, these functions form the basic uniform design of XML processing applications. The whole XML Parser of the Haskell XML Toolbox works internally with filters.+		</P+><DIV+CLASS="section"+><H2+CLASS="section"+><A+NAME="AEN1442"+></A+>2.5.1. Removing comments</H2+><P+>&#13;			This example describes in depth the use of filters and combinators for removing comments from an <TT+CLASS="literal"+>XmlTree</TT+>. It illustrates, how a complex filter can be constructed by combining very simple ones.+			</P+><P+>&#13;			Removing comments from an <TT+CLASS="literal"+>XmlTree</TT+> is done by transforming the tree with a special filter. This filter returns an empty list for comment nodes, all other nodes are simply returned. The result is a new tree without comment nodes.+			</P+><P+>&#13;			To implement this filter, a predicate function is needed first, which detects comment nodes. Building on this filter a more complex one will be constructed that returns an empty list for comment nodes, but returns all other nodes. The final filter will apply this filter to the whole tree and create a new tree from its results.+			</P+><P+>&#13;			The function <TT+CLASS="function"+>isXCmt</TT+> is a predicate filter that detects comment nodes. It takes a node and checks if the node is of type <TT+CLASS="literal"+>XCmt</TT+>. If the node is a comment, a list with this node is returned, otherwise the result is an empty list.+			</P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;isXCmt              :: XmlFilter+isXCmt              = isOfNode isXCmtNode+			</PRE+></TD+></TR+></TABLE+><P+>&#13;			The predicate filter <TT+CLASS="function"+>isXCmt</TT+> itself bases on the basic selection filter <TT+CLASS="function"+>isOfNode</TT+>, which is exported by the module <TT+CLASS="classname"+>XmlTree</TT+>, and the predicate function <TT+CLASS="function"+>isXCmtNode</TT+>. The selection filter <TT+CLASS="function"+>isOfNode</TT+> takes the predicate function as a parameter and returns a list with the passed node if the predicate function returns true for this node. Otherwise an empty list is returned. The predicate function <TT+CLASS="function"+>isXCmtNode</TT+> uses pattern matching to figure out if a node is of type <TT+CLASS="literal"+>XCmt</TT+>.+			</P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;isOfNode            :: (node -&#62; Bool) -&#62; TFilter node+isOfNode p t@(NTree n _)+    | p n       = [t]+    | otherwise	= []++isXCmtNode          :: XNode -&#62; Bool+isXCmtNode (XCmt _) = True+isXCmtNode _        = False+			</PRE+></TD+></TR+></TABLE+><P+>&#13;			The filter <TT+CLASS="function"+>removeComment</TT+> takes a node and returns an empty list if the node is a comment, otherwise a list with the passed node is returned. The filter <TT+CLASS="function"+>removeComment</TT+> combines the simple filter <TT+CLASS="function"+>none</TT+> and the above described filter <TT+CLASS="function"+>isXCmt</TT+> with the combinator <TT+CLASS="function"+>when</TT+>. If the predicate filter <TT+CLASS="function"+>isXCmt</TT+> is true, <TT+CLASS="function"+>none</TT+> returns an empty list. Otherwise a list with the node is returned.+			</P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;removeComment		:: XmlFilter+removeComment+    = none `when` isXCmt+			</PRE+></TD+></TR+></TABLE+><P+>&#13;			The main filter <TT+CLASS="function"+>removeAllComment</TT+> is a filter for removing all comments from an <TT+CLASS="literal"+>XmlTree</TT+>. It uses the recursive transformation filter <TT+CLASS="function"+>applyBottomUp</TT+>, which applies the filter <TT+CLASS="function"+>removeComment</TT+> to the whole tree. The result is a new tree where all comments have been removed.+			</P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;removeAllComment	:: XmlFilter+removeAllComment+    = applyBottomUp removeComment+			</PRE+></TD+></TR+></TABLE+><P+>&#13;			This example shows very clearly how complex filters can be constructed out of simple ones. The functions <TT+CLASS="function"+>isOfNode</TT+>, <TT+CLASS="function"+>none</TT+>, <TT+CLASS="function"+>when</TT+> and <TT+CLASS="function"+>applyBottomUp</TT+> are already exported by the module <TT+CLASS="classname"+>XmlTree</TT+>. They define own control structures and hide processing of the <TT+CLASS="literal"+>XmlTree</TT+> from the programmer. The programmer does not have to worry about how to apply a filter to the whole tree and how to transform it. The use of predefined combinators and filters makes it possible to program on a very high abstraction level.+			</P+></DIV+><DIV+CLASS="section"+><H2+CLASS="section"+><A+NAME="AEN1484"+></A+>2.5.2. Merging internal and external DTD subset</H2+><P+>&#13;			After discussing the simple example for removing comments, this example will show a much more complex use of filters. Having defined combinators and basic filters already, it shows how they can usefully be combined into a complex function for merging the internal and external DTD subset. The XML parser of the Haskell XML Toolbox uses this function internally. The filter is part of the module <TT+CLASS="classname"+>DTDProcessing</TT+>.+			</P+><P+>&#13;			A validating XML parser must merge the internal and external DTD subset. The document type declaration can point to an external subset containing declarations, it can contain the declarations directly in an internal subset, or can do both. If both the external and internal subsets are used, the internal subset must occur before the external subset. This has the effect that entity and attribute-list declarations in the internal subset take precedence over those in the external subset [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_xml"+><SPAN+CLASS="abbrev"+>WWW01</SPAN+></A+></SPAN+>].+			</P+><P+>&#13;			The function <TT+CLASS="function"+>mergeDTDs</TT+> takes two lists with the declarations of the internal and external subset as input and returns both subsets merged. Because the internal subset dominates over the external one, its declarations can be prepended before the filtered result list of the external subset. The operator <TT+CLASS="function"+>++</TT+> is a standard Haskell function for concatenating two lists. The expression <TT+CLASS="function"+>mergeDTDentry dtdInt</TT+> creates a complex filter function that filters declarations from the external subset, which have been already declared in the internal subset. This complex filter is applied by the combinator <TT+CLASS="function"+>$$</TT+> to the whole declaration list of the external DTD subset.+			</P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;mergeDTDs	:: XmlTrees -&#62; XmlTrees -&#62; XmlTrees+mergeDTDs dtdInt dtdExt+    = dtdInt ++ (mergeDTDentry dtdInt $$ dtdExt)+			</PRE+></TD+></TR+></TABLE+><P+>&#13;			The complex filter <TT+CLASS="function"+>mergeDTDentry</TT+> is initialized with the internal subset. By applying this filter to each node of the external subset, it filters all entries that are already declared in the internal subset. It uses the same semantic like the example for removing comments. If a declaration occurs in both subsets, the filter returns an empty list, otherwise it returns a list with the element from the external subset. This behavior is defined by the expression: <TT+CLASS="function"+>none `when` found</TT+>.+			</P+><P+>&#13;			 Internally the filter <TT+CLASS="function"+>mergeDTDentry</TT+> bases on the filter <TT+CLASS="function"+>filterDTDNode</TT+>, which returns a node that occurs in both subsets. This filter is initialized with one node from the internal subset and checks if a node from the external subset equals this node. Because there usually exists more than one declaration in the internal subset, a list of this filter function is constructed, by applying <TT+CLASS="function"+>filterDTDNode</TT+> with the list transformation function <TT+CLASS="function"+>map</TT+> to all nodes of the internal subset. The result is a list of filter functions. This list of filters is later applied to a node of the external subset by the combinator <TT+CLASS="function"+>cat</TT+>.+			</P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;mergeDTDentry	:: XmlTrees -&#62; XmlFilter+mergeDTDentry dtd+    = none `when` found+      where+      filterList = map filterDTDNode dtd  -- construct the list of filters+      found      = cat filterList         -- concatenate the filters (set union)+			</PRE+></TD+></TR+></TABLE+><P+>&#13;			The function <TT+CLASS="function"+>filterDTDNode</TT+> constructs a filter which returns a list with a node that occurs in both subsets. The filter is initialized with a node from the internal subset.+			</P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;filterDTDNode	:: XmlTree -&#62; XmlFilter+			</PRE+></TD+></TR+></TABLE+><P+>&#13;			If the nodes from the internal and external subsets are both of type <TT+CLASS="literal"+>ELEMENT</TT+>, <TT+CLASS="literal"+>NOTATION</TT+> or <TT+CLASS="literal"+>ENTITY</TT+>, the filter checks if the values of their attributes "<SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>name</I+></SPAN+>" are equal. If this is the case, a list with the node is returned, otherwise an empty list is returned.+			</P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;filterDTDNode (NTree (XDTD dtdElem al) _)+    | dtdElem `elem` [ELEMENT, NOTATION, ENTITY]+        = filterElement+          where+          filterElement n@(NTree (XDTD dtdElem' al') _cl')+              | dtdElem == dtdElem' &#38;&#38;+                getAttrValue a_name al' == getAttrValue a_name al+                  = [n]+              | otherwise  = []+          filterElement _  = []+			</PRE+></TD+></TR+></TABLE+><P+>&#13;			If the nodes from the internal and external subset are of type <TT+CLASS="literal"+>ATTLIST</TT+>, the filter has to check if the values of the attributes for the element name and attribute name are equal. If this is the case, the declarations are equal and a list with this node is returned, otherwise an empty list is returned.+			</P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;filterDTDNode (NTree (XDTD ATTLIST al) _)+    = filterAttlist+      where+      filterAttlist n@(NTree (XDTD ATTLIST al') _cl')+          | getAttrValue a_name  al' == getAttrValue a_name  al &#38;&#38;+            getAttrValue a_value al' == getAttrValue a_value al+              = [n]+      filterAttlist _ = []+			</PRE+></TD+></TR+></TABLE+><P+>&#13;			For all other types a filter is constructed that returns always an empty list.+			</P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;filterDTDNode _ =  none+			</PRE+></TD+></TR+></TABLE+><P+>&#13;			This example might be a little bit confusing for people being not familiar with Haskell, but it demonstrates how even very complex tasks like merging the internal and external DTD subset can be implemented with filter functions and combinators. In this case a list of parameterized filter functions is constructed at runtime, which is applied to each node of the external DTD subset.+			</P+></DIV+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="x1178.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="x1522.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>Filter combinators</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="c468.html"+ACCESSKEY="U"+>Up</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>Access functions</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/x1522.html view
@@ -0,0 +1,295 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>Access functions</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="UP"+TITLE="Package hdom"+HREF="c468.html"><LINK+REL="PREVIOUS"+TITLE="Examples for filters and filter combinators"+HREF="x1438.html"><LINK+REL="NEXT"+TITLE="State-I/O monad from module XmlState"+HREF="x1577.html"></HEAD+><BODY+CLASS="section"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="x1438.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+>Chapter 2. Package hdom</TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="x1577.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><DIV+CLASS="section"+><H1+CLASS="section"+><A+NAME="access_functions"+></A+>2.6. Access functions</H1+><P+>&#13;		Besides filters and combinators there exist some access functions for processing the attribute list <TT+CLASS="literal"+>TagAttrl</TT+> of nodes.+		</P+><P+></P+><P+></P+><DIV+CLASS="variablelist"+><P+><B+>Functions for processing the attribute list</B+></P+><DL+><DT+><TT+CLASS="function"+>getAttrValue :: Eq a =&#62; a -&#62; [(a,b)] -&#62; Maybe b</TT+></DT+><DD+><P+>&#13;					Looks up the value for a certain attribute. If the attribute does not exist, the data type <TT+CLASS="literal"+>Nothing</TT+> is returned.+					</P+></DD+><DT+><TT+CLASS="function"+>getAttrValue1 :: Eq a =&#62; a -&#62; [(a, String)] -&#62; String</TT+></DT+><DD+><P+>&#13;					Looks up the value for a certain attribute. If the attribute does not exist, an empty string is returned.+					</P+></DD+><DT+><TT+CLASS="function"+>hasAttrValue :: Eq a =&#62; a -&#62; [(a,b)] -&#62; Bool</TT+></DT+><DD+><P+>&#13;					Returns true if there is an attribute with the searched name in the attribute list.+					</P+></DD+><DT+><TT+CLASS="function"+>addAttrValue :: Eq a =&#62; a -&#62; b -&#62; [(a,b)] -&#62; [(a,b)]</TT+></DT+><DD+><P+>&#13;					Adds an attribute, the name and value, to the list.+					</P+></DD+><DT+><TT+CLASS="function"+>addAttrValues :: Eq a =&#62; [(a,b)] -&#62; [(a,b)] -&#62; [(a,b)]</TT+></DT+><DD+><P+>&#13;					Adds a list of name-value pairs to the attribute list.+					</P+></DD+><DT+><TT+CLASS="function"+>changeAttrValue :: Eq a =&#62; a -&#62; b -&#62; [(a,b)] -&#62; [(a,b)]</TT+></DT+><DD+><P+>&#13;					Changes the value of a certain attribute.+					</P+></DD+><DT+><TT+CLASS="function"+>delAttrValue :: Eq a =&#62; a -&#62; [(a,b)] -&#62; [(a,b)]</TT+></DT+><DD+><P+>&#13;					Deletes an attribute from the list.+					</P+></DD+><DT+><TT+CLASS="function"+>delAttrValues :: Eq a =&#62; [a] -&#62; [(a,b)] -&#62; [(a,b)]</TT+></DT+><DD+><P+>&#13;					Deletes a list of attributes from the attribute list.+					</P+></DD+></DL+></DIV+><P+>&#13;		The following example shows the use of access functions for adding a new attribute with the name "<SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>att2</I+></SPAN+>" and the value "<SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>val2</I+></SPAN+>" to the attribute list of an <TT+CLASS="literal"+>XTag</TT+> node. The type of the node is detected by pattern-matching. If the node is of another type, it is simply returned.+		</P+><DIV+CLASS="example"+><A+NAME="AEN1574"+></A+><P+><B+>Example 2-4. Adding a new attribute to an XTag node.</B+></P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;addAttribute :: XmlFilter+addAttribute n@(NTree (XTag name al) cs)+    = replaceAttrl newAttList n+      where+      newAttList = addAttrValue "att2" "val2" al++addAttribute n = [n]+			</PRE+></TD+></TR+></TABLE+></DIV+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="x1438.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="x1577.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>Examples for filters and filter combinators</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="c468.html"+ACCESSKEY="U"+>Up</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>State-I/O monad from module XmlState</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/x1577.html view
@@ -0,0 +1,401 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>State-I/O monad from module XmlState</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="UP"+TITLE="Package hdom"+HREF="c468.html"><LINK+REL="PREVIOUS"+TITLE="Access functions"+HREF="x1522.html"><LINK+REL="NEXT"+TITLE="Package hparser"+HREF="c1645.html"></HEAD+><BODY+CLASS="section"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="x1522.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+>Chapter 2. Package hdom</TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="c1645.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><DIV+CLASS="section"+><H1+CLASS="section"+><A+NAME="XmlState"+></A+>2.7. State-I/O monad from module XmlState</H1+><P+>&#13;		The module <TT+CLASS="classname"+>XmlState</TT+> provides a monad for an internal state and I/O commands. The concept of a monad comes from category theory. Monads are used for programming in a functional language using an imperative style. A monad can encapsulate computations such as I/O, manipulation of state or exceptions. For further information about monads, the section "Using Monads" of the Haskell Bookshelf [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_bookshelf"+><SPAN+CLASS="abbrev"+>WWW17</SPAN+></A+></SPAN+>] is a good starting place.+		</P+><P+>&#13;		<TT+CLASS="classname"+>XmlState</TT+> is used for various parts of the XML parser, e.g. when building the parse tree or substituting entities.	The internal state of the monad from <TT+CLASS="classname"+>XmlState</TT+> consists of two parts, the user state and the system state. The user state is a type parameter, the system state is a list of name-value pairs. If the user state is not needed, the type parameter can be instantiated with <TT+CLASS="literal"+>()</TT+>.+		</P+><P+>&#13;		The monad provides trace functions combined with trace levels to output marked computation steps. Error reporting functions are also located in this module. The error messages are printed to <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>stderr</I+></SPAN+> and the maximum error level is stored in the system state.+		</P+><P+>&#13;		Furthermore there are types for <TT+CLASS="function"+>XmlFilter</TT+> functions working on this monad, functions for manipulating the state components and for lifting I/O commands and <TT+CLASS="function"+>XmlFilter</TT+>s to monad filters.+		</P+><P+>&#13;        	<DIV+CLASS="figure"+><A+NAME="modules_xmlstate"+></A+><P+><B+>Figure 2-3. Modules of XmlState</B+></P+><DIV+CLASS="mediaobject"+><P+><IMG+SRC="images/modules_xmlstate.gif"></P+></DIV+></DIV+>+        </P+><P+>&#13;		The internal state consists of a system and a user state.+		</P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;data XmlState state       = XmlState { sysState  :: SysState+                                     , userState :: state+                                     }+		</PRE+></TD+></TR+></TABLE+><P+>&#13;		The system state consists of a list of name-value pairs of type String.+		</P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;type SysState             = TagAttrl+		</PRE+></TD+></TR+></TABLE+><P+>&#13;		The monad type for commands. It is an instance of <TT+CLASS="literal"+>StateIO</TT+> from the general module <TT+CLASS="classname"+>MonadStateIO</TT+>.+		</P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;type XState state res     = MonadStateIO.StateIO (XmlState state) res+		</PRE+></TD+></TR+></TABLE+><P+>&#13;		The <TT+CLASS="function"+>XmlFilter</TT+> type for filters working on a state.+		</P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;type XmlStateFilter state = XmlTree -&#62; XState state XmlTrees+		</PRE+></TD+></TR+></TABLE+><P+></P+><P+></P+><DIV+CLASS="variablelist"+><P+><B+>Functions for executing XState commands</B+></P+><DL+><DT+><TT+CLASS="function"+>run0 :: XmlState state -&#62; XState state res -&#62; IO (res, XmlState state)</TT+></DT+><DD+><P+>&#13;					Executes an XState command with an initial state.+					</P+></DD+><DT+><TT+CLASS="function"+>run :: state -&#62; XState state res -&#62; IO res</TT+></DT+><DD+><P+>&#13;					Executes an XState command with an initial user state.+					</P+></DD+><DT+><TT+CLASS="function"+>run' :: XState () res -&#62; IO res</TT+></DT+><DD+><P+>&#13;                    Executes an XState command in the I/O monad.+					</P+></DD+></DL+></DIV+><P+>&#13;		The following example shows the use of the State-I/O monad. All computations of <TT+CLASS="function"+>processXmlN</TT+> take place in the State-I/O monad. The functions <TT+CLASS="function"+>getXmlContents</TT+>, <TT+CLASS="function"+>parseXmlDoc</TT+> and <TT+CLASS="function"+>putXmlTree</TT+> are <TT+CLASS="literal"+>XmlStateFilter</TT+>s. The first two filters do some computations where errors might occur. These <TT+CLASS="literal"+>XmlStateFilter</TT+>s can output the errors and set an error level in the State-I/O monad. The value of the error level is tested before the constructed parse tree is returned. The <TT+CLASS="literal"+>XmlStateFilter</TT+>s <TT+CLASS="function"+>putXmlTree</TT+> just outputs the constructed parse tree.+		</P+><DIV+CLASS="example"+><A+NAME="AEN1638"+></A+><P+><B+>Example 2-5. Using the monad from XmlState</B+></P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;processXmlN	:: XmlTree -&#62; IO [XmlTree]+processXmlN t0+    = run' $ do+             setSysState (selXTagAttrl . getNode $ t0)+             setTraceLevel 0+             t1 &#60;- getXmlContents $ t0+             t2 &#60;- parseXmlDoc    $$&#60; t1+             putXmlTree t2+             el &#60;- getErrorLevel+             return ( if el == 0+                      then t2+                      else [] )+			</PRE+></TD+></TR+></TABLE+></DIV+><P+>&#13;		The functions <TT+CLASS="function"+>setSysState</TT+>, <TT+CLASS="function"+>setTraceLevel</TT+> and <TT+CLASS="function"+>getErrorLevel</TT+> are functions for accessing and manipulating the state of the monad. The monad comes with lots of more access functions.+		</P+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="x1522.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="c1645.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>Access functions</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="c468.html"+ACCESSKEY="U"+>Up</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>Package hparser</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/x1694.html view
@@ -0,0 +1,344 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>Module HdomParser</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="UP"+TITLE="Package hparser"+HREF="c1645.html"><LINK+REL="PREVIOUS"+TITLE="Package hparser"+HREF="c1645.html"><LINK+REL="NEXT"+TITLE="Module XmlParser"+HREF="x1763.html"></HEAD+><BODY+CLASS="section"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="c1645.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+>Chapter 3. Package hparser</TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="x1763.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><DIV+CLASS="section"+><H1+CLASS="section"+><A+NAME="AEN1694"+></A+>3.2. Module HdomParser</H1+><P+>&#13;		The module <TT+CLASS="classname"+>HdomParser</TT+> provides functions for parsing XML files and building the generic tree data structure <TT+CLASS="literal"+>XmlTree</TT+> from these documents. The whole parsing process takes place in the State-I/O monad of the module <TT+CLASS="classname"+>XmlState</TT+>, so that well-formedness errors can be reported and different computations can be traced by outputting their results.+		</P+><P+></P+><DIV+CLASS="variablelist"+><P+><B+>Parse functions</B+></P+><DL+><DT+><TT+CLASS="function"+>parseDoc :: String -&#62; IO [XmlTree]</TT+></DT+><DD+><P+>&#13;					Parses the file specified by the first parameter.+					</P+></DD+><DT+><TT+CLASS="function"+>parseXmlFile :: IO [XmlTree]</TT+></DT+><DD+><P+>Parses an XML file specified by a command line argument:+					<P+></P+><UL+><LI+><P+>--source "source file" - XML file to parse</P+></LI+><LI+><P+>--encoding "encoding" - Encoding scheme used in the file (optional)</P+></LI+></UL+>+					</P+></DD+></DL+></DIV+><P+>&#13;		The following example shows how an XML parser is constructed in the module <TT+CLASS="classname"+>HdomParser</TT+>. The whole parsing process takes place in the State-I/O monad defined in the module <TT+CLASS="classname"+>XmlState</TT+>. All computations are of type <TT+CLASS="literal"+>XmlStateFilter</TT+>.+		</P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;processXmlN	:: Int -&#62; XmlTree -&#62; IO [XmlTree]+processXmlN n t0+    = run' $ do+             setSysState (selXTagAttrl . getNode $ t0)+             setTraceLevel n+             t1 &#60;- getXmlContents $ t0+             t2 &#60;- parseXmlDoc    $$&#60; t1+             t3 &#60;- liftM transfAllCharRef $$&#60; t2+             t4 &#60;- processDTD     $$&#60; t3+             t5 &#60;- processGeneralEntities $$&#60; t4+             el &#60;- getErrorLevel+             return ( if el == 0+                      then t5+                      else [] )+		</PRE+></TD+></TR+></TABLE+><P+></P+><DIV+CLASS="variablelist"+><P+><B+>Actions during parsing</B+></P+><DL+><DT+><TT+CLASS="function"+>getXmlContents :: XmlStateFilter a</TT+></DT+><DD+><P+>&#13;					 Returns a filter for reading the XML file. The filename is retrieved from the attribute with the name "<SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>source</I+></SPAN+>" which must be part of the initial node <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>t0</I+></SPAN+>.+					</P+></DD+><DT+><TT+CLASS="function"+>parseXmlDoc :: XmlStateFilter a</TT+></DT+><DD+><P+>&#13;					Parses the XML file and builds the <TT+CLASS="literal"+>XmlTree</TT+>.+					</P+></DD+><DT+><TT+CLASS="function"+>transfAllCharRef :: XmlFilter</TT+></DT+><DD+><P+>&#13;					The <TT+CLASS="literal"+>XmlFilter</TT+> <TT+CLASS="function"+>transfAllCharRef</TT+> has to be lifted to an <TT+CLASS="literal"+>XmlStateFilter</TT+>. The filter substitutes character references by their characters.+					</P+></DD+><DT+><TT+CLASS="function"+>processDTD :: XmlStateFilter a</TT+></DT+><DD+><P+>&#13;					 Substitutes parameter entities, adds include sections and removes exclude sections of DTDs, merges internal and external DTD subsets.+					</P+></DD+><DT+><TT+CLASS="function"+>processGeneralEntities :: XmlStateFilter a</TT+></DT+><DD+><P+>&#13;					 Substitutes general entities.+					</P+></DD+><DT+><TT+CLASS="function"+>getErrorLevel :: XState state Int</TT+></DT+><DD+><P+>&#13;					 If an error occurred during applying the <TT+CLASS="literal"+>XmlStateFilter</TT+>s, <TT+CLASS="function"+>&#13;					 processXmlN</TT+> returns an empty list, otherwise it returns the constructed <TT+CLASS="literal"+>XmlTree</TT+>.+					</P+></DD+></DL+></DIV+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="c1645.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="x1763.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>Package hparser</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="c1645.html"+ACCESSKEY="U"+>Up</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>Module XmlParser</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/x1763.html view
@@ -0,0 +1,240 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>Module XmlParser</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="UP"+TITLE="Package hparser"+HREF="c1645.html"><LINK+REL="PREVIOUS"+TITLE="Module HdomParser"+HREF="x1694.html"><LINK+REL="NEXT"+TITLE="Module XmlInput"+HREF="x1800.html"></HEAD+><BODY+CLASS="section"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="x1694.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+>Chapter 3. Package hparser</TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="x1800.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><DIV+CLASS="section"+><H1+CLASS="section"+><A+NAME="AEN1763"+></A+>3.3. Module XmlParser</H1+><P+>&#13;		The module <TT+CLASS="classname"+>XmlParser</TT+> provides the parse functions for parsing XML files and building an <TT+CLASS="literal"+>XmlTree</TT+>. The parser bases on Parsec [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_parsec"+><SPAN+CLASS="abbrev"+>WWW29</SPAN+></A+></SPAN+>], a free monadic parser combinator library for Haskell and does not need any look-ahead. The lexer and the parser are not separated. A feature of this parser is that nearly all parse functions can be implemented as it is defined by the productions in the XML 1.0 specification [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_xml"+><SPAN+CLASS="abbrev"+>WWW01</SPAN+></A+></SPAN+>].+		</P+><P+>&#13;		Like filters are composed with filter combinators in the Haskell XML Toolbox, parsing is usually done with parser combinators in Haskell. Simple parser functions are combined with these higher-order functions to complex ones. The parser combinators are control structures that represent the operators used it the productions of syntax definitions.+		</P+><P+>&#13;		An XML parser has to deal with different character sets. The parser of the Haskell XML Toolbox works internally with Unicode (UTF-8) encoding. The module <TT+CLASS="classname"+>Unicode</TT+> provides several conversion functions for different character sets.+		</P+><P+>&#13;			<P+></P+><P+><B+>Supported character sets by the XmlParser:</B+></P+><UL+><LI+><P+>UTF-8</P+></LI+><LI+><P+>ISO-8859-1</P+></LI+><LI+><P+>US-ASCII</P+></LI+><LI+><P+>ISO-10646-UCS-2</P+></LI+><LI+><P+>UTF-16</P+></LI+><LI+><P+>UTF-16BE</P+></LI+><LI+><P+>UTF-16LE</P+></LI+></UL+>+		</P+><P+>&#13;        	<DIV+CLASS="figure"+><A+NAME="modules_xmlparser"+></A+><P+><B+>Figure 3-1. Modules of XmlParser</B+></P+><DIV+CLASS="mediaobject"+><P+><IMG+SRC="images/modules_xmlparser.gif"></P+></DIV+></DIV+>+        </P+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="x1694.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="x1800.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>Module HdomParser</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="c1645.html"+ACCESSKEY="U"+>Up</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>Module XmlInput</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/x1800.html view
@@ -0,0 +1,210 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>Module XmlInput</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="UP"+TITLE="Package hparser"+HREF="c1645.html"><LINK+REL="PREVIOUS"+TITLE="Module XmlParser"+HREF="x1763.html"><LINK+REL="NEXT"+TITLE="Module DTDProcessing"+HREF="x1823.html"></HEAD+><BODY+CLASS="section"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="x1763.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+>Chapter 3. Package hparser</TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="x1823.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><DIV+CLASS="section"+><H1+CLASS="section"+><A+NAME="AEN1800"+></A+>3.4. Module XmlInput</H1+><P+>&#13;		The module XmlInput provides input functions implemented as filters of type <TT+CLASS="literal"+>XmlStateFilter</TT+>. The main function is <TT+CLASS="function"+>getXmlContents</TT+>, which returns an <TT+CLASS="literal"+>XmlStateFilter</TT+> for reading the content. This filter expects as input a node of type <TT+CLASS="literal"+>NTree XTag</TT+>  with several arguments stored in its attribute list. The child list of this node should be empty, because the parsed document will be stored there.+		</P+><P+>&#13;		Protocols like the <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>http</I+></SPAN+> or <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>file</I+></SPAN+> protocol are not supported at the moment. Unfortunately there does not seem to exist any Haskell library supporting theses protocols. Perhaps later versions of the parser will use the <TT+CLASS="literal"+>curl</TT+> command.+		</P+><P+></P+><DIV+CLASS="variablelist"+><P+><B+>Arguments of getXmlContents</B+></P+><DL+><DT+>Keyword a_source ("source") from module <TT+CLASS="classname"+>XmlKeywords</TT+></DT+><DD+><P+>&#13;					Specifies input file (or later URL)+					</P+></DD+><DT+>Keyword a_encoding ("encoding") from module <TT+CLASS="classname"+>XmlKeywords</TT+></DT+><DD+><P+>&#13;					Specifies encoding scheme (optional). If no encoding is specified, the parser tries to guess the encoding.+					</P+></DD+></DL+></DIV+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="x1763.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="x1823.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>Module XmlParser</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="c1645.html"+ACCESSKEY="U"+>Up</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>Module DTDProcessing</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/x1823.html view
@@ -0,0 +1,161 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>Module DTDProcessing</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="UP"+TITLE="Package hparser"+HREF="c1645.html"><LINK+REL="PREVIOUS"+TITLE="Module XmlInput"+HREF="x1800.html"><LINK+REL="NEXT"+TITLE="Module XmlOutput"+HREF="x1830.html"></HEAD+><BODY+CLASS="section"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="x1800.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+>Chapter 3. Package hparser</TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="x1830.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><DIV+CLASS="section"+><H1+CLASS="section"+><A+NAME="AEN1823"+></A+>3.5. Module DTDProcessing</H1+><P+>&#13;		The module <TT+CLASS="classname"+>DTDProcessing</TT+> provides functions for parameter entity substitution, general entity substitution and merging the internal and the external DTD subset into one internal part. Parameter entity substitution should be done before merging the subsets of a DTD. The function <TT+CLASS="function"+>processDTD</TT+> ensures this. Substitution of general entities is done by <TT+CLASS="function"+>processGeneralEntities</TT+>. The filters are monadic functions that use the State-I/O monad from the module <TT+CLASS="classname"+>XmlState</TT+>.+		</P+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="x1800.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="x1830.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>Module XmlInput</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="c1645.html"+ACCESSKEY="U"+>Up</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>Module XmlOutput</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/x1830.html view
@@ -0,0 +1,194 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>Module XmlOutput</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="UP"+TITLE="Package hparser"+HREF="c1645.html"><LINK+REL="PREVIOUS"+TITLE="Module DTDProcessing"+HREF="x1823.html"><LINK+REL="NEXT"+TITLE="Package hvalidator"+HREF="c1850.html"></HEAD+><BODY+CLASS="section"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="x1823.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+>Chapter 3. Package hparser</TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="c1850.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><DIV+CLASS="section"+><H1+CLASS="section"+><A+NAME="AEN1830"+></A+>3.6. Module XmlOutput</H1+><P+>&#13;		<TT+CLASS="classname"+>XmlOutput</TT+> provides output functions implemented as <TT+CLASS="literal"+>XmlStateFilter</TT+>s. These filters are very useful for printing out the <TT+CLASS="literal"+>XmlTree</TT+> during  computations while parsing, e.g. printing out the tree before and after entity processing. The whole parsing process takes place in the State-I/O monad from <TT+CLASS="classname"+>XmlState</TT+>. If a trace level different from zero is set in this monad, these functions are used to show the computation steps.+		</P+><P+></P+><DIV+CLASS="variablelist"+><DL+><DT+><TT+CLASS="function"+>putXmlSource :: XmlStateFilter a</TT+></DT+><DD+><P+>&#13;					Prints the <TT+CLASS="literal"+>XmlTree</TT+> in XML representation.+					</P+></DD+><DT+><TT+CLASS="function"+>putXmlTree :: XmlStateFilter a</TT+></DT+><DD+><P+>&#13;					Prints the <TT+CLASS="literal"+>XmlTree</TT+> in tree representation.+					</P+></DD+></DL+></DIV+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="x1823.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="c1850.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>Module DTDProcessing</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="c1645.html"+ACCESSKEY="U"+>Up</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>Package hvalidator</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/x1900.html view
@@ -0,0 +1,339 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>Creating a validating XML parser</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="UP"+TITLE="Package hvalidator"+HREF="c1850.html"><LINK+REL="PREVIOUS"+TITLE="Package hvalidator"+HREF="c1850.html"><LINK+REL="NEXT"+TITLE="Validation of the Document Type Definition"+HREF="x1946.html"></HEAD+><BODY+CLASS="section"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="c1850.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+>Chapter 4. Package hvalidator</TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="x1946.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><DIV+CLASS="section"+><H1+CLASS="section"+><A+NAME="creating_a_validating_xml_parser"+></A+>4.2. Creating a validating XML parser</H1+><P+>&#13;		The only public module for validating XML documents is the module <TT+CLASS="classname"+>Validation</TT+>. It exports several functions for validating XML documents, parts of XML documents and transforming them.+		</P+><P+></P+><DIV+CLASS="variablelist"+><DL+><DT+><TT+CLASS="function"+>validateAndTransform :: XmlSFilter</TT+></DT+><DD+><P+>&#13;					Combines validation and transformation of a document. If errors or fatal errors occurred during validation, a list of errors is returned. Otherwise the transformed document is returned.+					</P+></DD+><DT+><TT+CLASS="function"+>validate :: XmlSFilter</TT+></DT+><DD+><P+>&#13;					Checks if the DTD and the document are valid.+					</P+></DD+><DT+><TT+CLASS="function"+>validateDTD :: XmlSFilter</TT+></DT+><DD+><P+>&#13;					Checks if the DTD is valid.+					</P+></DD+><DT+><TT+CLASS="function"+>validateDoc :: XmlSFilter</TT+></DT+><DD+><P+>&#13;					Checks if the document corresponds to the given DTD.+					</P+></DD+><DT+><TT+CLASS="function"+>transform :: XmlSFilter</TT+></DT+><DD+><P+>&#13;					Transforms the document with respect to the given DTD. Validating parsers are expected to  normalize attribute values and add default values. This function should be called after a successful validation.+					</P+></DD+></DL+></DIV+><P+>&#13;		The following example shows how the functions <TT+CLASS="function"+>validate</TT+> and <TT+CLASS="function"+>transform</TT+> can be used in an XML processing application. The document is valid, if <TT+CLASS="function"+>validate</TT+> returns an empty list or a list containing only errors of type <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>warning</I+></SPAN+>. If the list contains errors of type <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>error</I+></SPAN+> or <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>fatal error</I+></SPAN+>, the document is not valid. If the document is valid the document is transformed and displayed to the user.+		</P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;+printMsg :: XmlTrees -&#62; XmlTrees -&#62; IO()+printMsg errors doc+    = if null ((isError +++ isFatalError) $$ errors)+        then do+             if null errors+               then+                  putStrLn "The document is valid."+                  putStrLn (xmlTreesToString $ transform doc)+             else do+                  putStrLn "The document is valid, but there were warnings:"+                  putStrLn (xmlTreesToString $ transform doc)+                  putStrLn (showXErrors errors)+        else do+             putStrLn "The document is not valid. List of errors:"+             putStrLn (showXErrors errors)++++main :: IO()+main+    = do+      doc &#60;- parseDoc "invalid.xml"+      printMsg (validate doc) doc+      return ()++		</PRE+></TD+></TR+></TABLE+><P+></P+><P+>&#13;		Calling the module <TT+CLASS="classname"+>ValidateExample</TT+> from the directory <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>example</I+></SPAN+> of the Haskell XML Toolbox with the invalid document <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>invalid.xml</I+></SPAN+> produces the following error messages.+		</P+><DIV+CLASS="example"+><A+NAME="AEN1943"+></A+><P+><B+>Example 4-1. Validating a document with errors</B+></P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;&#60;?xml version="1.0" encoding="UTF-8" standalone="yes" ?&#62;++&#60;!DOCTYPE a [+&#60;!ATTLIST a  att1  CDATA  #IMPLIED&#62;+&#60;!ELEMENT a  (z, c?)&#62;+&#60;!ELEMENT b  EMPTY&#62;+&#60;!ELEMENT c  (#PCDATA)&#62;+]&#62;++&#60;a att2="test"&#62;+    &#60;y/&#62;+    &#60;c&#62;hello world&#60;/c&#62;+&#60;/a&#62;++The document is not valid. List of errors:+Warning: The element type "z", used in content model of element "a", is not declared.+Error: The content of element "a" must match ( "z" , "c"? ). Element "z" expected,+       but Element "y" found.+Error: Attribute "att2" of element "a" is not declared in DTD.+Error: Element "y" not declared in DTD.+  			</PRE+></TD+></TR+></TABLE+></DIV+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="c1850.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="x1946.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>Package hvalidator</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="c1850.html"+ACCESSKEY="U"+>Up</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>Validation of the Document Type Definition</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/x1946.html view
@@ -0,0 +1,332 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>Validation of the Document Type Definition</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="UP"+TITLE="Package hvalidator"+HREF="c1850.html"><LINK+REL="PREVIOUS"+TITLE="Creating a validating XML parser"+HREF="x1900.html"><LINK+REL="NEXT"+TITLE="Validation of the document subset"+HREF="x2007.html"></HEAD+><BODY+CLASS="section"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="x1900.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+>Chapter 4. Package hvalidator</TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="x2007.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><DIV+CLASS="section"+><H1+CLASS="section"+><A+NAME="validation_of_the_dtd"+></A+>4.3. Validation of the Document Type Definition</H1+><P+>&#13;		Validation of the DTD is done by the module <TT+CLASS="classname"+>DTDValidation</TT+>. Notations, unparsed entities, element declarations and attribute declarations are checked if they correspond to the constraints of the XML 1.0 specification [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_xml"+><SPAN+CLASS="abbrev"+>WWW01</SPAN+></A+></SPAN+>].+		</P+><P+>&#13;		The following checks are performed:+		</P+><P+></P+><P+><B+>DTD</B+></P+><UL+><LI+><P+>Error: There exists no DOCTYPE declaration in the document.</P+></LI+></UL+><P+></P+><P+><B+>Notations</B+></P+><UL+><LI+><P+>Error: A notation was already specified.</P+></LI+></UL+><P+></P+><P+><B+>Unparsed entities:</B+></P+><UL+><LI+><P+>Warning: Entity is declared multiple times. First declaration is used.</P+></LI+><LI+><P+>Error: A referenced notations must be declared</P+></LI+></UL+><P+></P+><P+><B+>Element declarations:</B+></P+><UL+><LI+><P+>Error: Element is declared more than once</P+></LI+><LI+><P+>Error: Element was specified multiple times in a content model of type mixed content.</P+></LI+><LI+><P+>Warning: Element used in a content model is not declared.</P+></LI+></UL+><P+></P+><P+><B+>Attribute declarations:</B+></P+><UL+><LI+><P+>Warning: There exists no element declaration for the attribute declaration.</P+></LI+><LI+><P+>Warning: Attribute is declared multiple times. First declaration will be used.</P+></LI+><LI+><P+>Warning: Same Nmtoken should not occur more than once in enumerate attribute types.</P+></LI+><LI+><P+>Error: Element already has an attribute of type ID. A second attribute of type ID is not permitted.</P+></LI+><LI+><P+>Error: ID attribute must have a declared default of #IMPLIED or #REQUIRED.</P+></LI+><LI+><P+>Error: Element already has an attribute of type NOTATION. A second attribute of type NOTATION is not permitted.</P+></LI+><LI+><P+>Error: Attribute of type NOTATION must not be declared on an element declared EMPTY.</P+></LI+><LI+><P+>Error: A notation must be declared when referenced in the notation type list for an attribute.</P+></LI+><LI+><P+>Error: The declared default value must meet the lexical constraints of the declared attribute type.</P+></LI+></UL+><P+>&#13;		Each check is done by a separate function, which takes the child list of the <TT+CLASS="literal"+>XDTD DOCTYPE</TT+> node as input and returns a list of errors. Some functions can optionally take some further arguments to have access to context information, e.g. when validating unparsed entities, a list of all defined notations is needed. The result of validating the DTD is a concatenated list of the results of all validation functions.+		</P+><P+>&#13;		The following example shows a filter function for checking the validity constraint: "No Notation on Empty Element" (section 3.3.1 in XML 1.0 specification [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_xml"+><SPAN+CLASS="abbrev"+>WWW01</SPAN+></A+></SPAN+>]). It means that an attribute of type NOTATION must not be declared for an element declared EMPTY. A notation attribute is a way to give an application a clue how the content of an element should be processed. The notation might refer to a program that can process the content, e.g. a base-64 encoded JPEG. Because empty elements cannot have contents, attributes of type notation are forbidden. The function <TT+CLASS="function"+>checkNoNotationForEmptyElement</TT+> is initialized with a list of all element names declared EMPTY. The constructed filter is then applied to all <TT+CLASS="literal"+>XDTD ATTLIST</TT+> nodes of type NOTATION that have been selected from the DTD by another filter function.+		</P+><DIV+CLASS="example"+><A+NAME="AEN2002"+></A+><P+><B+>Example 4-2. Validation that notations are not declared for EMPTY elements</B+></P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;checkNoNotationForEmptyElement :: [String] -&#62; XmlFilter+checkNoNotationForEmptyElement emptyElems nd@(NTree (XDTD ATTLIST al) _)+    = if elemName `elem` emptyElems+      then err ("Attribute \""++ attName ++"\" of type NOTATION must not be "+++                "declared on the element \""++ elemName ++"\" declared EMPTY.") nd+      else []+      where+      elemName = getAttrValue1 a_name  al+      attName  = getAttrValue1 a_value al++checkNoNotationForEmptyElement _ nd+    = error ("checkNoNotationForEmptyElement: illegal parameter:\n" ++ show nd)+			</PRE+></TD+></TR+></TABLE+></DIV+><P+>&#13;		The validation functions cannot check if a content model is deterministic. This requirement is for compatibility with SGML, because some SGML tools can rely on unambiguous content models. XML processors may flag such content models as errors, but the Haskell XML Toolbox does not. It does not need deterministic content models for checking if the children of an element are valid (see <A+HREF="x2086.html"+>Section 4.7</A+>).+		</P+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="x1900.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="x2007.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>Creating a validating XML parser</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="c1850.html"+ACCESSKEY="U"+>Up</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>Validation of the document subset</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/x2007.html view
@@ -0,0 +1,330 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>Validation of the document subset</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="UP"+TITLE="Package hvalidator"+HREF="c1850.html"><LINK+REL="PREVIOUS"+TITLE="Validation of the Document Type Definition"+HREF="x1946.html"><LINK+REL="NEXT"+TITLE="Transformation of the document subset"+HREF="x2065.html"></HEAD+><BODY+CLASS="section"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="x1946.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+>Chapter 4. Package hvalidator</TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="x2065.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><DIV+CLASS="section"+><H1+CLASS="section"+><A+NAME="validation_of_the_document"+></A+>4.4. Validation of the document subset</H1+><P+>&#13;		After validation of the DTD the document has to be validated. By validating the document, validation of the elements and their attributes is meant. This process is split into two phases: validation of the elements and their attributes and validation of attributes of types ID, IDREF and IDREFS.+		</P+><P+></P+><DIV+CLASS="variablelist"+><P+><B+>Involved modules</B+></P+><DL+><DT+><TT+CLASS="classname"+>DocValidation</TT+></DT+><DD+><P+>&#13;					Validation of the elements and their attributes. Validation of content models is delegated to the module <TT+CLASS="classname"+>XmlRE</TT+>.+					</P+></DD+><DT+><TT+CLASS="classname"+>IdValidation</TT+></DT+><DD+><P+>&#13;					Validation of attributes of types ID, IDREF and IDREFS.+					</P+></DD+></DL+></DIV+><P+>&#13;		Before the document is validated, a lookup-table is built on the basis of the DTD. This table maps element names to their validation functions. The validation function for an element is a set of <TT+CLASS="literal"+>XmlFilter</TT+> functions, which take the current element as input and return a list of errors. If the element meets the validation constraints, an empty list is returned. Each validation constraint, listed in the following, is represented by a single filter. All these filters are combined by the combinator <TT+CLASS="function"+>+++</TT+>, which concatenates the results of filters, each filter uses copy of state. This approach for validation is very flexible. It is very easy to add new functions without affecting the other ones.+		</P+><P+>&#13;        After the initialization phase of building the validation filters and the lookup table, the whole document is traversed in preorder and every element is validated by its validation filter.+		</P+><P+>&#13;			<P+></P+><P+><B+>Validation of elements:</B+></P+><UL+><LI+><P+>Error: Element is not declared in DTD.</P+></LI+><LI+><P+>Error: Root element must match value declared in DOCTYPE.</P+></LI+><LI+><P+>Error: Children of element do not match its content model.</P+></LI+></UL+>++			<P+></P+><P+><B+>Validation of attributes:</B+></P+><UL+><LI+><P+>Error: Attribute is not declared.</P+></LI+><LI+><P+>Error: Attribute is specified multiple times.</P+></LI+><LI+><P+>Error: Attribute is of type #REQUIRED, but was not specified.</P+></LI+><LI+><P+>Error: Attribute is of type #FIXED, but specified value differs from fixed value.</P+></LI+><LI+><P+>Error: Value of attribute does not match the lexical constraints of its type.</P+></LI+></UL+>+		</P+><P+>&#13;		The module <TT+CLASS="classname"+>IdValidation</TT+> provides functions for checking special ID/IDREF/IDREFS constraints. First it is checked if all ID values are unique. All nodes with ID attributes are collected from the document, then it is validated that values of ID attributes do not occur more than once. During a second iteration over the document it is validated that all IDREF/IDREFS values match the value of some ID attribute. For both checks a lookup-table, which maps element names to their validation functions, is built like it is done in the module <TT+CLASS="classname"+>DocValidation</TT+>.+		</P+><P+>&#13;			<P+></P+><P+><B+>Validation of ID/IDREF/IDREFS:</B+></P+><UL+><LI+><P+>Error: Value of type ID must be unique within the document.</P+></LI+><LI+><P+>Error: An attribute of type IDREF/IDREFS references an identifier that does not exist in the document.</P+></LI+></UL+>+		</P+><P+>&#13;		The following example shows a filter for validating that all attributes of an element are unique (Unique AttSpec, section 3.1 XML 1.0 specification [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_xml"+><SPAN+CLASS="abbrev"+>WWW01</SPAN+></A+></SPAN+>]). It is a filter, which takes an element - an <TT+CLASS="literal"+>NTree XTag</TT+> node - checks if its attributes are unique, and returns a list of errors or an empty list.+		</P+><DIV+CLASS="example"+><A+NAME="AEN2062"+></A+><P+><B+>Example 4-3. Validation that all attributes are unique</B+></P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;noDoublicateAttributes :: XmlFilter+noDoublicateAttributes n@(NTree (XTag name al) _)+    = doubles $ reverse al+      where+      doubles :: TagAttrl -&#62; XmlTrees+      doubles ((attrName,_):xs)+          = if (lookup attrName xs) == Nothing+            then doubles xs+            else (err ("Attribute \""++ attrName ++"\" was already specified "+++                       "for element \"++ name ++"\".") n)+                 +++                 doubles xs++      doubles [] = []++noDoublicateAttributes n+    = error ("noDoublicateAttributes: illegal parameter:\n" ++ show n)+			</PRE+></TD+></TR+></TABLE+></DIV+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="x1946.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="x2065.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>Validation of the Document Type Definition</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="c1850.html"+ACCESSKEY="U"+>Up</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>Transformation of the document subset</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/x2065.html view
@@ -0,0 +1,184 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>Transformation of the document subset</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="UP"+TITLE="Package hvalidator"+HREF="c1850.html"><LINK+REL="PREVIOUS"+TITLE="Validation of the document subset"+HREF="x2007.html"><LINK+REL="NEXT"+TITLE="Validation of attribute values"+HREF="x2081.html"></HEAD+><BODY+CLASS="section"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="x2007.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+>Chapter 4. Package hvalidator</TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="x2081.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><DIV+CLASS="section"+><H1+CLASS="section"+><A+NAME="transformation_of_document"+></A+>4.5. Transformation of the document subset</H1+><P+>&#13;		Transformation of the document is done by the module <TT+CLASS="classname"+>DocTransformation</TT+>. The transformation should be started after validating the document.+		</P+><P+>&#13;			<P+></P+><P+><B+>Tasks:</B+></P+><UL+><LI+><P+>Adding default values of attributes</P+></LI+><LI+><P+>Normalizing attribute values</P+></LI+><LI+><P+>Sorting all attributes in lexicographic order</P+></LI+></UL+>+		</P+><P+>&#13;		Before the document can be transformed, a lookup-table is built on the basis of the DTD which maps element names to their transformation functions. The transformation functions are <TT+CLASS="literal"+>XmlFilter</TT+> functions, which take a node and return the transformed node. After the initialization phase the whole document is traversed in preorder and every element is transformed by its transformation filter from the lookup-table. The result is a new, transformed <TT+CLASS="literal"+>XmlTree</TT+>.+		</P+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="x2007.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="x2081.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>Validation of the document subset</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="c1850.html"+ACCESSKEY="U"+>Up</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>Validation of attribute values</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/x2081.html view
@@ -0,0 +1,155 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>Validation of attribute values</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="UP"+TITLE="Package hvalidator"+HREF="c1850.html"><LINK+REL="PREVIOUS"+TITLE="Transformation of the document subset"+HREF="x2065.html"><LINK+REL="NEXT"+TITLE="Derivatives of regular expressions"+HREF="x2086.html"></HEAD+><BODY+CLASS="section"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="x2065.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+>Chapter 4. Package hvalidator</TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="x2086.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><DIV+CLASS="section"+><H1+CLASS="section"+><A+NAME="validation_of_attribute_values"+></A+>4.6. Validation of attribute values</H1+><P+>&#13;		The module <TT+CLASS="classname"+>AttributeValueValidation</TT+> provides all functions for validating attribute values. It provides a function for checking if the attribute value meets the lexical constraints of its type and a function for normalizing attribute values. These functions have been moved into an own module, because they are needed when the DTD subset and the document subset are validated and when the document is transformed. The function for checking the attribute value is again an <TT+CLASS="literal"+>XmlFilter</TT+> function.+		</P+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="x2065.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="x2086.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>Transformation of the document subset</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="c1850.html"+ACCESSKEY="U"+>Up</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>Derivatives of regular expressions</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/x2086.html view
@@ -0,0 +1,509 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>Derivatives of regular expressions</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="UP"+TITLE="Package hvalidator"+HREF="c1850.html"><LINK+REL="PREVIOUS"+TITLE="Validation of attribute values"+HREF="x2081.html"><LINK+REL="NEXT"+TITLE="Conclusion"+HREF="c2165.html"></HEAD+><BODY+CLASS="section"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="x2081.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+>Chapter 4. Package hvalidator</TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="c2165.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><DIV+CLASS="section"+><H1+CLASS="section"+><A+NAME="derivates_of_regexp"+></A+>4.7. Derivatives of regular expressions</H1+><P+>&#13;		The following section describes how the algorithm for validating the  element content works. It is implemented in the modules <TT+CLASS="classname"+>XmlRE</TT+> and <TT+CLASS="classname"+>RE</TT+>. The most commonly-used technique to solve this problem is based on finite automaton.+		</P+><P+>&#13;		Another algorithm, based on derivatives of regular expressions, is much better suited for implementation in a functional language. This technique does not need to backtrack, like some NFA-based algorithms do and when combined with lazy evaluation and memorization it can be very efficient.+		</P+><P+>&#13;		The algorithm of derivating regular expressions was first described by Janusz A. Brzozowski [<SPAN+CLASS="citation"+><A+HREF="b2463.html#brzozowski64"+><SPAN+CLASS="abbrev"+>Brzozowski64</SPAN+></A+></SPAN+>]. Joe English  suggested using this algorithm for validating element contents in XML. He gave a short description of his ideas combined with a small Haskell program fragment [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_derivates_je"+><SPAN+CLASS="abbrev"+>WWW26</SPAN+></A+></SPAN+>].+		</P+><P+>&#13;		Mark Hopkins wrote some small C programs based on this algorithm. A description of the algorithm and working source code is available from the comp.compilers archive [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_derivates_mh"+><SPAN+CLASS="abbrev"+>WWW27</SPAN+></A+></SPAN+>]. James Clark describes an algorithm for RELAX NG validation [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_derivates_jc"+><SPAN+CLASS="abbrev"+>WWW28</SPAN+></A+></SPAN+>] that bases on derivatives, too.+		</P+><DIV+CLASS="section"+><H2+CLASS="section"+><A+NAME="AEN2102"+></A+>4.7.1. Description</H2+><P+>&#13;			Validating the element content is an instance of regular expression matching problem. Basically the content model of an element describes a regular expression. If given the regular expression e and the content c it has to be checked if c is in L(e)? L(e) denotes the language accepted by the regular expression e.+			</P+><P+>&#13; 			Informal described, the algorithm works as follows. A regular expression is applied to a sentence. The remaining regular expression is checked if it can be derived to an empty sequence. If it can be derived to an empty sequence, the sentence matches the regular expression. Otherwise the sentence is not described by the regular expression.+			</P+><P+>&#13;			The algorithm can be seen as working on an infinite DFA with states labeled by regular expressions instead of symbols as in the canonical construction. The final states are those states for which+			the regular expression can be derived to an empty sequence. The transition function is a function, which derives the regular expression by a single symbol.+			</P+></DIV+><DIV+CLASS="section"+><H2+CLASS="section"+><A+NAME="AEN2107"+></A+>4.7.2. Examples</H2+><P+>&#13;			The regular expression <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>foobar</I+></SPAN+> should be derived with respect to the string "foo". After applying the regular expression to this string, the remaining regular expression is <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>bar</I+></SPAN+>. This regular expression cannot be derived to an empty string, because it expects the characters 'b', 'a' and 'r'. This means that the string <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>bar</I+></SPAN+> is not described by the regular expression. (Short form: foo\foobar = bar)+			</P+><P+>&#13;			The regular expression <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>a*</I+></SPAN+> should be derived with respect to the string "aa". After applying the regular expression to the string, the regular expression <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>a*</I+></SPAN+> remains. This expression can be derived to an empty string, because the *-operator indicates that none or more 'a' characters are expected. This means that the regular expression matches the string. (Short form: aa\a* = a*)+			</P+></DIV+><DIV+CLASS="section"+><H2+CLASS="section"+><A+NAME="AEN2116"+></A+>4.7.3. Realization in Haskell</H2+><P+>&#13;			The following code was adopted from Joe English [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_derivates_je"+><SPAN+CLASS="abbrev"+>WWW26</SPAN+></A+></SPAN+>], but has been extended to support  meaningful error messages, to accept any single symbol (dot operator) and to work with data types of <TT+CLASS="literal"+>XmlTree</TT+>.+			</P+><P+>&#13;			Regular expressions are defined by the algebraic data type <SPAN+CLASS="type"+>RE</SPAN+>.+			</P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;data RE a =+    RE_ZERO	String          --' L(0)   = {} (empty set, or failure with message)+    | RE_UNIT               --' L(1)   = { [] } (empty sequence, or success)+    | RE_SYM a              --' L(x)   = { [x] }+    | RE_DOT                --' accept any single symbol+    | RE_REP (RE a)         --' L(e*)  = { [] } `union` L(e+)+    | RE_PLUS (RE a)        --' L(e+)  = { x ++ y | x &#60;- L(e), y &#60;- L(e*) }+    | RE_OPT (RE a)         --' L(e?)  = L(e) `union` { [] }+    | RE_SEQ (RE a) (RE a)  --' L(e,f) = { x ++ y | x &#60;- L(e), y &#60;- L(f) }+    | RE_ALT (RE a) (RE a)  --' L(e|f) = L(e) `union` L(f)+    deriving (Show, Eq)+			</PRE+></TD+></TR+></TABLE+><P+>&#13;			The core of the algorithm is the <TT+CLASS="function"+>delta</TT+> ("derivative") function. It takes a regular expression <TT+CLASS="literal"+>re</TT+> and a symbol <TT+CLASS="literal"+>s</TT+>. The function returns a new expression that matches all sentences that are a suffix of sentences in L(<TT+CLASS="literal"+>re</TT+>) beginning with <TT+CLASS="literal"+>s</TT+>. The function works by simple case wise analysis.+			</P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;delta :: (Eq a, Show a) =&#62; RE a -&#62; a -&#62; RE a+delta re s = case re of+    RE_ZERO m        -&#62; re_zero m+    RE_UNIT          -&#62; re_zero ("Symbol "++ show s ++" unexpected.")+    RE_SYM sym+        | s == sym   -&#62; re_unit+        | otherwise  -&#62; re_zero ("Symbol "++ show sym ++" expected, but "+++                                 "symbol "++ show s ++" found.")+    RE_REP e         -&#62; re_seq (delta e s) (re_rep e)+    RE_PLUS e        -&#62; re_seq (delta e s) (re_rep e)+    RE_OPT e         -&#62; delta e s+    RE_SEQ e f+        | nullable e -&#62; re_alt (re_seq (delta e s) f) (delta f s)+        | otherwise  -&#62; re_seq (delta e s) f+    RE_ALT e f       -&#62; re_alt (delta e s) (delta f s)+    RE_DOT           -&#62; re_unit+			</PRE+></TD+></TR+></TABLE+><P+>&#13;			The function <TT+CLASS="function"+>matches</TT+> derives a regular expression with respect to a sentence by using the higher-order function <TT+CLASS="function"+>foldl</TT+> which folds a function into a list of values.+			</P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;matches :: (Eq a, Show a) =&#62; RE a -&#62; [a] -&#62; RE a+matches e = foldl delta e+			</PRE+></TD+></TR+></TABLE+><P+>&#13;			The auxiliary function <TT+CLASS="function"+>nullable</TT+> tests if a regular expression matches the empty sequence. If regular expressions are compound ones and the outer expression cannot be itself derived to an empty sequence, the sub-expressions have to be tested if they are nullable.+			</P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;nullable ::  (Show a) =&#62; RE a -&#62; Bool+nullable (RE_ZERO _)  = False+nullable RE_UNIT      = True+nullable (RE_SYM _)   = False+nullable (RE_REP _)   = True+nullable (RE_PLUS e)  = nullable e+nullable (RE_OPT _)   = True+nullable (RE_SEQ e f) = nullable e &#38;&#38; nullable f+nullable (RE_ALT e f) = nullable e || nullable f+nullable RE_DOT       = True+			</PRE+></TD+></TR+></TABLE+><P+>&#13;			The function <TT+CLASS="function"+>checkRE</TT+> checks if an input matched a regular expression. The regular expression <TT+CLASS="literal"+>RE_ZERO</TT+> indicates that an error occured during derivation and that the regular expression does not match the given sentence.+			</P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;checkRE :: (Show a) =&#62; RE a -&#62; String+checkRE (RE_ZERO m) = m+checkRE re+    | nullable re = ""+    | otherwise   = "Input must match " ++ printRE re+			</PRE+></TD+></TR+></TABLE+><P+>&#13;			The constructor functions <TT+CLASS="function"+>re_seq</TT+>, <TT+CLASS="function"+>re_opt</TT+> and so on, used in the <TT+CLASS="function"+>delta</TT+> function, are not shown. Without these constructor functions the intermediate regular expressions would grow very rapidly.  The constructors simplify them at each step, e.g. by replacing a sequence of epsilons (<TT+CLASS="literal"+>RE_UNIT</TT+>) by a single epsilon.+			</P+><P+>&#13;			The described <TT+CLASS="function"+>delta</TT+> function is not the one used for validating <TT+CLASS="literal"+>XmlTree</TT+> types. There exists a special function for validating <TT+CLASS="literal"+>XmlTree</TT+> nodes in the module <TT+CLASS="classname"+>XmlRE</TT+>.+			</P+></DIV+><DIV+CLASS="section"+><H2+CLASS="section"+><A+NAME="AEN2153"+></A+>4.7.4. Conclusions</H2+><P+>&#13;			The algorithm of derivating regular expressions can be expressed in Haskell very naturally: regular expressions are represented by a special data type, sentences are just a list of symbols. Pattern-matching and Haskell's standard functions for list processing allow a very clear and short implementation.+			</P+><P+>&#13;			The algorithm can handle ambiguous regular expressions very well. If a regular expression consists of sub-expressions, all sub-expressions are derived by a certain symbol. If for example the ambiguous regular expression <TT+CLASS="literal"+>(a , b) | (a , c)</TT+> is derived with respect to the sentence "<TT+CLASS="literal"+>ab</TT+>", the algorithm will construct the regular expression <TT+CLASS="literal"+>(b | c)</TT+> after deriving the original expression by the symbol <TT+CLASS="literal"+>a</TT+>. After deriving the remaining regular expression by the symbol <TT+CLASS="literal"+>b</TT+>, the regular expression <TT+CLASS="literal"+>(RE_UNIT | RE_ZERO)</TT+> remains. This expression can be derived to the empty sequence and therefore the regular expression matches the sentence.+			</P+><P+>&#13;			Haskell's lazy evaluation avoids the evaluation of the whole regular expression. The expression has only to be evaluated as much that <TT+CLASS="function"+>nullable</TT+> can calculate an answer.+			</P+></DIV+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="x2081.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="c2165.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>Validation of attribute values</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="c1850.html"+ACCESSKEY="U"+>Up</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>Conclusion</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/x2201.html view
@@ -0,0 +1,442 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>The Haskell XML Toolbox in comparison to HaXml and HXML</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="UP"+TITLE="Conclusion"+HREF="c2165.html"><LINK+REL="PREVIOUS"+TITLE="Conclusion"+HREF="c2165.html"><LINK+REL="NEXT"+TITLE="Conclusions and future work"+HREF="x2257.html"></HEAD+><BODY+CLASS="section"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="c2165.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+>Chapter 5. Conclusion</TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="x2257.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><DIV+CLASS="section"+><H1+CLASS="section"+><A+NAME="comparison"+></A+>5.2. The Haskell XML Toolbox in comparison to HaXml and HXML</H1+><P+>&#13;		In this section the Haskell XML Toolbox is compared with HaXml [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_haxml"+><SPAN+CLASS="abbrev"+>WWW21</SPAN+></A+></SPAN+>] and HXML [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_hxml"+><SPAN+CLASS="abbrev"+>WWW25</SPAN+></A+></SPAN+>]. Many valuable ideas of HaXml and HXML  have been adopted by the Haskell XML Toolbox. It is not the intention of this section to run down these great projects. The intention is to show how their ideas have been extended and generalized.+		</P+><P+>&#13;		The Haskell XML Toolbox, HaXml and HXML differ in the way how XML documents are represented in Haskell. First the approaches of HXML and HaXml are introduced, after this the data model of the Haskell XML Toolbox is compared with them.+		</P+><P+>&#13;		In HXML, XML document subsets are represented as a <TT+CLASS="literal"+>Tree</TT+> of <TT+CLASS="literal"+>XMLNode</TT+>s. The hierarchical structure of XML documents is modeled by the generic tree data type <TT+CLASS="literal"+>Tree</TT+>. This type does not distinguish between inner nodes and leafs. Leafs are just nodes with an empty list of children.+		</P+><DIV+CLASS="example"+><A+NAME="AEN2213"+></A+><P+><B+>Example 5-1. Document subset in HXML</B+></P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;data Tree a  = Tree a [Tree a]++type XML	 = Tree XMLNode+data XMLNode =+      RTNode                 -- root node+    | ELNode GI AttList      -- element node: GI, attributes+    | TXNode String          -- text node+    | PINode Name String     -- processing instruction (target,value)+    | CXNode String          -- comment node+    | ENNode Name            -- general entity reference+      deriving Show+			</PRE+></TD+></TR+></TABLE+></DIV+><P+>&#13;		DTDs are modeled totally different in HXML. They are represented by named fields and are not stored in the tree model where the document subset is stored.+		</P+><DIV+CLASS="example"+><A+NAME="AEN2217"+></A+><P+><B+>Example 5-2. DTD subset in HXML</B+></P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;data DTD = DTD {+    elements :: FM.FM Name ELEMTYPE,    -- elemtps / element types+    attlists :: FM.FM Name [ATTDEF],    -- elemtype.attdefs+    genents  :: FM.FM Name EntityText,  -- general entities+    parments :: FM.FM Name EntityText,  -- parameter entities+    notations:: [DCN],                  -- nots/notations+    dtdname  :: Name                    -- name (document type name)+} 	deriving Show+			</PRE+></TD+></TR+></TABLE+></DIV+><P+>&#13;		HaXml's representation of XML documents differs totally from the approach HXML and the Haskell XML Toolbox use. Instead of modeling XML documents with a generic tree type, HaXml uses a more data centric approach. The whole structure of XML documents is modeled by different algebraic data types. There exist special types for almost each production of the XML 1.0 specification [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_xml"+><SPAN+CLASS="abbrev"+>WWW01</SPAN+></A+></SPAN+>]. XML documents are modeled by the data type <TT+CLASS="literal"+>Document</TT+>, which consists of a <TT+CLASS="literal"+>Prolog</TT+> and the document subset, an <TT+CLASS="literal"+>Element</TT+>. This data model distinguishes clearly between leafs and inner nodes. Leafs are types which constructors do not take any arguments.+		</P+><DIV+CLASS="example"+><A+NAME="AEN2226"+></A+><P+><B+>Example 5-3. XML documents in HaXml</B+></P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;data Document = Document Prolog (SymTab EntityDef) Element+data Prolog   = Prolog (Maybe XMLDecl) (Maybe DocTypeDecl)+data XMLDecl  = XMLDecl VersionInfo (Maybe EncodingDecl) (Maybe SDDecl)+...+			</PRE+></TD+></TR+></TABLE+></DIV+><P+>&#13;		The document subset is modeled in HaXml by the algebraic types <TT+CLASS="literal"+>Element</TT+> and <TT+CLASS="literal"+>Content</TT+>. An <TT+CLASS="literal"+>Element</TT+> has an attribute list and a list of <TT+CLASS="literal"+>Content</TT+> types. If the content list is empty, the element is a leaf. Together  these types define a mutually recursive, multi-branch tree.+		</P+><DIV+CLASS="example"+><A+NAME="AEN2234"+></A+><P+><B+>Example 5-4. Document subset in HaXml</B+></P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;data Element   = Elem Name [Attribute] [Content]++type Attribute = (Name, AttValue)+data Content   = CElem Element+               | CString Bool CharData+               | CRef Reference+               | CMisc Misc+			</PRE+></TD+></TR+></TABLE+></DIV+><P+>&#13;		HaXml introduced the idea of using filter functions and combinators for processing parts of the XML data model. The examples from the previous chapters show that this approach is very powerful and flexible. The whole XML parser of the Haskell XML Toolbox bases on filters. The filters of HaXml work for nodes of the type <TT+CLASS="literal"+>Content</TT+>.+		</P+><DIV+CLASS="example"+><A+NAME="AEN2239"+></A+><P+><B+>Example 5-5. The filter type of HaXml</B+></P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;type CFilter   = Content -&#62; [Content]+			</PRE+></TD+></TR+></TABLE+></DIV+><P+>&#13;		The Haskell XML Toolbox uses the most generic data model in contrast to HaXml and HXML. Its data model is a generalization of the data models discusses above.+		</P+><P+>&#13;		The generic tree data model <TT+CLASS="literal"+>NTree</TT+> of the Haskell XML Toolbox forms the basis for representing XML documents in Haskell. This type does not distinguish between inner nodes and leafs. Leafs are just nodes with an empty child list. The most important aspect is that this generic tree data model represents a whole XML document, including the DTD subset, the document subset and all other logical units of XML.	Two algebraic data types <TT+CLASS="literal"+>XNode</TT+> and <TT+CLASS="literal"+>DTDElem</TT+> are used to represent all logical units of XML.+		</P+><DIV+CLASS="example"+><A+NAME="AEN2247"+></A+><P+><B+>Example 5-6. XML documents represented in the Haskell XML Toolbox</B+></P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;data NTree  node = NTree node (NTrees node)+type NTrees node = [NTree node]++type XmlTree  = NTree  XNode+type XmlTrees = NTrees XNode++data XNode =+      XTag TagName TagAttrl+    | XDTD DTDElem TagAttrl+    | ...++data DTDElem =+      DOCTYPE+    | ELEMENT+    | ATTLIST+    | ...+			</PRE+></TD+></TR+></TABLE+></DIV+><P+>&#13;		HXML uses the same generic data model as the Haskell XML Toolbox for representing the document subset, but DTDs are represented by a totally different model: named fields. HaXml uses special types for XML's logical units. This leads to the fact that the DTD subset is modeled totally different than the document subset.+		</P+><P+>&#13;		The advantage of representing the whole XML document by one generic data type lies in the fact that one unique design for processing the whole document can be used. Because all logical parts of XML are modeled by one generic data model, filters (see <A+HREF="x854.html"+>Section 2.3</A+>) can be used to process the whole XML document and not only parts as in HaXml and HXML.+		</P+><P+>&#13;		HaXml's filters can only work on the type <TT+CLASS="literal"+>Content</TT+> that just represents a small part of XML documents, the document subset. If one wants to process other parts of an XML document, one cannot use filters any more, but has to implement special functions. The same applies for HXML.+		</P+><P+>&#13;		The generalization used in the Haskell XML Toolbox makes the design of applications that process whole XML documents very uniform. In effect the design of the whole XML parser of the Haskell XML Toolbox bases on filters. Merging of the internal DTD part and external DTD part is done by filters, checking the validity constraints of DTDs and document subsets is done by filters, or processings like transforming the whole <TT+CLASS="literal"+>XmlTree</TT+> back to XML is done by filters.+		</P+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="c2165.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="x2257.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>Conclusion</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="c2165.html"+ACCESSKEY="U"+>Up</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>Conclusions and future work</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/x2257.html view
@@ -0,0 +1,230 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>Conclusions and future work</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="UP"+TITLE="Conclusion"+HREF="c2165.html"><LINK+REL="PREVIOUS"+TITLE="The Haskell XML Toolbox in comparison to HaXml and HXML"+HREF="x2201.html"><LINK+REL="NEXT"+TITLE="User handbook"+HREF="a2283.html"></HEAD+><BODY+CLASS="section"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="x2201.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+>Chapter 5. Conclusion</TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="a2283.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><DIV+CLASS="section"+><H1+CLASS="section"+><A+NAME="AEN2257"+></A+>5.3. Conclusions and future work</H1+><P+>&#13;		The developed XML parser shows that the functional approach accomplishes the task of parsing and validating XML by using fewer lines of code and producing a very short and compact program in contrast to imperative languages. The packages <TT+CLASS="filename"+>hdom</TT+>, <TT+CLASS="filename"+>hparser</TT+> and <TT+CLASS="filename"+>hvalidator</TT+> contain only about 9.000 lines of code including lots of HDoc [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_hdoc"+><SPAN+CLASS="abbrev"+>WWW30</SPAN+></A+></SPAN+>] comments.+		</P+><P+>&#13;		Although the program is compact, the code is understandable and maintainable, because the code is more succinct and it follows a clear  and simple design. The Haskell XML Toolbox introduced the very general tree data type <TT+CLASS="literal"+>XmlTree</TT+> for representing whole XML documents in Haskell. This general data model makes it possible to base all processings of XML documents on filters. The whole XML parser, presented in this thesis, bases on this uniform design.+		</P+><P+>&#13;		Writing a validating XML parser is a quite complex task. It must cope with different encodings, correct processing of entities and of course validation. Functional programming helps master this complexity better than other methods.+		</P+><P+>&#13;		In Haskell functions are just values and have no side effects. These qualities allow an easy use of higher-order functions that take functions as arguments, return functions as a result or do both. The filter combinators, which have been adopted from HaXml, form a powerful library for combining filter functions. Because all filters of the Haskell XML Toolbox share the same type, it is possible to combine them freely with the use of filter combinators. All details of manipulating the <TT+CLASS="literal"+>XmlTree</TT+> data structure are hidden in these higher-order functions. In effect these filter combinators define problem specific control structures that make it possible to program on a very high abstraction level. Errors can be reduced, because programmers can use the filter combinators as standard functions for processing the <TT+CLASS="literal"+>XmlTree</TT+>.+		</P+><P+>&#13;		Because functions are just values in Haskell, they can be constructed at runtime. The XML parser introduced in this thesis makes an extensive use of creating parameterized filter functions during runtime. The whole validation process bases on this design.+		</P+><P+>&#13;		It can be quite useful to use functional programming paradigms when writing programs in imperative languages. Functional paradigms like higher-order functions for abstractions can be done in Java by defining an interface that has only one function. This interface can be passed to other functions or returned by a function. In C function pointers can be used for this task. But imperative languages are not designed to support functional programming styles, so they cannot actively support its paradigms. The main focus of these languages lies on the fact <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>how</I+></SPAN+> a problem is solved, e.g. the order in which computations are performed.+		</P+><P+>&#13;		Unfortunately functional programming and functional programming languages are not very popular. Two standard examples for functional programming are using a spreadsheet program like Excel and querying a database with SQL. Another field where functional programming dominates is transformation of SGML and XML documents. The Document Style Semantics and Specification Language (DSSSL) [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_dsssl"+><SPAN+CLASS="abbrev"+>WWW09</SPAN+></A+></SPAN+>] bases on the functional programming language Scheme and is very popular in the world of SGML publishing. The Extensible Stylesheet Language (XSL) [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_xsl"+><SPAN+CLASS="abbrev"+>WWW07</SPAN+></A+></SPAN+>] is its corresponding part for XML publishing. Functional programming languages are very well equipped for this task, because the transformation process is a functional mapping from a structural document as input to a formatted representation as output.+		</P+><P+>&#13;		Sometimes it is said that functional programming languages lack of libraries. We do not know any validating XML Parser written in Haskell and hope that the framework of the Haskell XML Toolbox will be a useful tool for XML processing applications written in Haskell. The parser supports almost fully the XML 1.0 specification with the exception of namespaces.+		</P+><P+>&#13;		The Haskell XML Toolbox introduces a powerful approach for processing XML in Haskell. It generalizes the ideas of HaXml and HXML. Whole XML documents are represented as a tree of different nodes. This tree can be processed in a uniform way by using filter functions and filter combinators.+		</P+><P+>&#13; 		Lots of great ideas of the projects HaXml and HXML have been taken into this project. We want to thank their members for their great work and emphasis that all three projects are enrichments for the Haskell community.+		</P+><P+>&#13;		The Haskell XML Toolbox project will be maintained and enlarged at the University of Applied Sciences Wedel. One student already wrote an XSLT processor on the basis of this project. Another student is writing a program using the Haskell XML Toolbox for deriving Java classes from DTDs.+		</P+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="x2201.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="a2283.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>The Haskell XML Toolbox in comparison to HaXml and HXML</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="c2165.html"+ACCESSKEY="U"+>Up</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>User handbook</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/x2308.html view
@@ -0,0 +1,198 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>Missing features and known problems</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="UP"+TITLE="User handbook"+HREF="a2283.html"><LINK+REL="PREVIOUS"+TITLE="User handbook"+HREF="a2283.html"><LINK+REL="NEXT"+TITLE="Directory structure"+HREF="x2330.html"></HEAD+><BODY+CLASS="section"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="a2283.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+>Appendix A. User handbook</TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="x2330.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><DIV+CLASS="section"+><H1+CLASS="section"+><A+NAME="known_problems"+></A+>A.2. Missing features and known problems</H1+><P+>&#13;		Unfortunately the XML parser of the Haskell XML Toolbox does not support fully the XML 1.0 specification at the moment. We are working hard to implement the missing features in the near future.+		</P+><P+>&#13;			<P+></P+><P+><B+>Missing features:</B+></P+><UL+><LI+><P+>Namespaces are not supported.</P+></LI+><LI+><P+>Protocols like "http" and "file" are not yet supported due to a lack of libraries. We think of using the <TT+CLASS="literal"+>curl</TT+> command instead.</P+></LI+><LI+><P+>General external entities are not yet processed.</P+></LI+><LI+><P+>General entities in default values of attributes are not yet substituted.</P+></LI+></UL+>+		</P+><P+>&#13;			<P+></P+><P+><B+>Known problems:</B+></P+><UL+><LI+><P+>Line numbers are not yet reported for validity constraint errors.</P+></LI+><LI+><P+>Under Hugs 98 only: The parser suffers a serious space fault when parsing large documents.</P+></LI+></UL+>+		</P+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="a2283.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="x2330.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>User handbook</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="a2283.html"+ACCESSKEY="U"+>Up</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>Directory structure</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/x2330.html view
@@ -0,0 +1,225 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>Directory structure</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="UP"+TITLE="User handbook"+HREF="a2283.html"><LINK+REL="PREVIOUS"+TITLE="Missing features and known problems"+HREF="x2308.html"><LINK+REL="NEXT"+TITLE="HXmlParser - Well-formedness checker and validator"+HREF="x2367.html"></HEAD+><BODY+CLASS="section"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="x2308.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+>Appendix A. User handbook</TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="x2367.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><DIV+CLASS="section"+><H1+CLASS="section"+><A+NAME="AEN2330"+></A+>A.3. Directory structure</H1+><P+></P+><DIV+CLASS="variablelist"+><DL+><DT+><TT+CLASS="filename"+>doc</TT+></DT+><DD+><P+>&#13;					Contains the documentation: this thesis and the generated HDoc documentation+					</P+></DD+><DT+><TT+CLASS="filename"+>examples</TT+></DT+><DD+><P+>&#13;					Contains some example applications for using the parser, filter functions and filter combinators. Includes <TT+CLASS="literal"+>HXmlParser</TT+>, a command line well-formedness checker and validator.+					</P+></DD+><DT+><TT+CLASS="filename"+>hdom</TT+></DT+><DD+><P+>&#13;					Sources of package <TT+CLASS="filename"+>hdom</TT+>.+					</P+></DD+><DT+><TT+CLASS="filename"+>hparser</TT+></DT+><DD+><P+>&#13;					Sources of package <TT+CLASS="filename"+>hparser</TT+>.+					</P+></DD+><DT+><TT+CLASS="filename"+>hvalidator</TT+></DT+><DD+><P+>&#13;					Sources of package <TT+CLASS="filename"+>hvalidator</TT+>.+					</P+></DD+><DT+><TT+CLASS="filename"+>parsec</TT+></DT+><DD+><P+>&#13;					Sources of the free monadic parser combinator library Parsec. Parsec is already distributed with Hugs and GHC, but we had some problems with different behaviors of these libraries.+					</P+></DD+></DL+></DIV+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="x2308.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="x2367.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>Missing features and known problems</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="a2283.html"+ACCESSKEY="U"+>Up</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>HXmlParser - Well-formedness checker and validator</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/x2367.html view
@@ -0,0 +1,215 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>HXmlParser - Well-formedness checker and validator</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="UP"+TITLE="User handbook"+HREF="a2283.html"><LINK+REL="PREVIOUS"+TITLE="Directory structure"+HREF="x2330.html"><LINK+REL="NEXT"+TITLE="Check the XML parser with the XML Test Suites"+HREF="x2380.html"></HEAD+><BODY+CLASS="section"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="x2330.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+>Appendix A. User handbook</TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="x2380.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><DIV+CLASS="section"+><H1+CLASS="section"+><A+NAME="AEN2367"+></A+>A.4. HXmlParser - Well-formedness checker and validator</H1+><P+>&#13;		The Haskell XML Toolbox comes with a command line tool for checking if XML documents are well-formed and valid. To build this tool with GHC, run <TT+CLASS="literal"+>make HXmlParser</TT+> in the root directory of the Haskell XML Toolbox. This will produce the binary file <TT+CLASS="literal"+>HXmlParser</TT+> that will be stored in the root directory. The sources of this tool are located in the directory <TT+CLASS="literal"+>examples</TT+>.+		</P+><P+>&#13;		When checking an invalid XML file, <TT+CLASS="literal"+>HXmlParser</TT+> will report errors to <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>stderr</I+></SPAN+> and quit with an exit code of <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>"-1"</I+></SPAN+>. If there are no errors in the document, the tool will just quit without any message.+		</P+><P+>&#13;		If you run <TT+CLASS="literal"+>HXmlParser</TT+> without any arguments, the usage information is displayed:+		</P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;Usage:+  --source "filename"  - source file (required)+  --encoding "charset" - document encoding+  --trace "level"      - trace level (0-4)++  -h                   - this help+  -v                   - display a message if document is well-formed or valid+  -w                   - well-formed check only++  -op                  - output parsed document+  -opt                 - output XmlTree of parsed document+  -oph                 - output Haskell type of parsed document++Only for validity checks:+  -ot                  - output transformed document+  -ott                 - output XmlTree of transformed document+  -oth                 - output Haskell type of transformed document++  -oc                  - output canonicalized document+  -oct                 - output XmlTree of canonicalized document+  -och                 - output Haskell type of canonicalized document+		</PRE+></TD+></TR+></TABLE+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="x2330.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="x2380.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>Directory structure</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="a2283.html"+ACCESSKEY="U"+>Up</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>Check the XML parser with the XML Test Suites</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/x2380.html view
@@ -0,0 +1,249 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>Check the XML parser with the XML Test Suites</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="UP"+TITLE="User handbook"+HREF="a2283.html"><LINK+REL="PREVIOUS"+TITLE="HXmlParser - Well-formedness checker and validator"+HREF="x2367.html"><LINK+REL="NEXT"+TITLE="Performance and profiling"+HREF="x2408.html"></HEAD+><BODY+CLASS="section"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="x2367.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+>Appendix A. User handbook</TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="x2408.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><DIV+CLASS="section"+><H1+CLASS="section"+><A+NAME="AEN2380"+></A+>A.5. Check the XML parser with the XML Test Suites</H1+><P+>&#13;		The XML parser of the Haskell XML Toolbox was elaborately tested with the XML Test Suites from the W3C [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_xmlts"+><SPAN+CLASS="abbrev"+>WWW02</SPAN+></A+></SPAN+>]. If you want to run these checks on your own, you can use the tool <TT+CLASS="literal"+>RunTestCases</TT+> that is distributed with the Haskell XML Toolbox.+		</P+><P+>&#13;		First you have to download the test cases from the W3C [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_xmlts"+><SPAN+CLASS="abbrev"+>WWW02</SPAN+></A+></SPAN+>] and extract them in an own directory. To test the XML parser with these test cases, you have to build the program <TT+CLASS="literal"+>RunTestCases</TT+>. Executing <TT+CLASS="literal"+>make RunTestCases</TT+> in the root directory of the Haskell XML Toolbox will compile this program.+		</P+><P+>&#13;		The XML Test Suites contain test cases from different organizations and people. <TT+CLASS="literal"+>RunTestCases</TT+> must be called with a test case description file as argument from the directories: <TT+CLASS="literal"+>ibm</TT+>, <TT+CLASS="literal"+>oasis</TT+>, <TT+CLASS="literal"+>sun</TT+> or <TT+CLASS="literal"+>xmltest</TT+>.+		</P+><P+>&#13;		Perhaps a dummy root node must be added to these files to form a valid XML document. <TT+CLASS="literal"+>RunTestCases</TT+> cannot process the root file that combines all theses description files.+		</P+><P+>&#13;		When being executed, <TT+CLASS="literal"+>RunTestCases</TT+> will ask what type of test shall be performed. The type entered must correspond to the tests listed in the test case description file. <TT+CLASS="function"+>RunTestCases</TT+> will only execute these test cases.+		</P+><P+>&#13;		If the option "show detailed information" is set, <TT+CLASS="literal"+>RunTestCases</TT+> will display the <TT+CLASS="literal"+>XmlTree</TT+> in addition if a test fails.+		</P+><DIV+CLASS="example"+><A+NAME="AEN2405"+></A+><P+><B+>Example A-1. Executing RunTestCases</B+></P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;RunTestCases ibm_oasis_valid.xml++Which kind of test shall be performed?+([1] - valid | 2 - invalid | 3 - not-wf | 4 - error):++Show detailed information? (j/[n])+			</PRE+></TD+></TR+></TABLE+></DIV+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="x2367.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="x2408.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>HXmlParser - Well-formedness checker and validator</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="a2283.html"+ACCESSKEY="U"+>Up</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>Performance and profiling</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/x2408.html view
@@ -0,0 +1,312 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>Performance and profiling</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="UP"+TITLE="User handbook"+HREF="a2283.html"><LINK+REL="PREVIOUS"+TITLE="Check the XML parser with the XML Test Suites"+HREF="x2380.html"><LINK+REL="NEXT"+TITLE="MIT License"+HREF="a2458.html"></HEAD+><BODY+CLASS="section"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="x2380.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+>Appendix A. User handbook</TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="a2458.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><DIV+CLASS="section"+><H1+CLASS="section"+><A+NAME="AEN2408"+></A+>A.6. Performance and profiling</H1+><P+>&#13;		Time and space profiling is very useful to optimize programs and remove bottlenecks. We already added the ability of profiling to the XML parser, but did not use this information yet. The main focus of the parser lays on a clear and easy design at the moment.+		</P+><DIV+CLASS="section"+><H2+CLASS="section"+><A+NAME="AEN2411"+></A+>A.6.1. Usage information</H2+><P+>&#13;			The validating XML parser can be analyzed with the time and space profiling system of the Glasgow Haskell Compiler (GHC). Cost centers have been added for all main computations, so that it could be measured which parts of the parser consume most time and memory.+			</P+><P+>&#13;			The tool <TT+CLASS="literal"+>Profiling</TT+> can be used to run these tests with the XML parser. It can be built by executing <TT+CLASS="literal"+>make Profiling</TT+> in the root directory of the Haskell XML Toolbox.+			</P+><P+>&#13;			<TT+CLASS="literal"+>Profiling</TT+> must be executed with an XML file as test input and several different parameters that influence GHC's profiling behavior. These parameters are described in depth in the documentation of GHC.+			</P+><P+>&#13;			Four predefined profiling types have been added to the <TT+CLASS="literal"+>Makefile</TT+> in the root directory of the Haskell XML Toolbox. The input file of <TT+CLASS="literal"+>Profiling</TT+> can be set by the variable <TT+CLASS="literal"+>PROFILING_INPUT</TT+>.+			</P+><P+></P+><DIV+CLASS="variablelist"+><P+><B+>Predefined profiling targets:</B+></P+><DL+><DT+><TT+CLASS="filename"+>make runprofiling1</TT+></DT+><DD+><P+>&#13;						Time and allocation profiling - Generate profiling information in XML format and display them with the tool <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>ghcprof</I+></SPAN+> of GHC.+						</P+></DD+><DT+><TT+CLASS="filename"+>make runprofiling2</TT+></DT+><DD+><P+>&#13;						Time and allocation profiling - Generate profiling information in text format and display them with <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>less</I+></SPAN+>.+						</P+></DD+><DT+><TT+CLASS="filename"+>make runprofiling4</TT+></DT+><DD+><P+>&#13;						Heap profiling - Break down the graph by the cost-center stack which produced the data.+						</P+></DD+><DT+><TT+CLASS="filename"+>make runprofiling4</TT+></DT+><DD+><P+>&#13;						Heap profiling - Break down the graph by the retainer set.+						</P+></DD+></DL+></DIV+></DIV+><DIV+CLASS="section"+><H2+CLASS="section"+><A+NAME="AEN2447"+></A+>A.6.2. How to interpret the results</H2+><P+>&#13;			This section will show how to interpret the results from the profiling tests. The W3C Recommendation of the Extensible Hypertext Markup Language (XHTML) and its Strict DTD was chosen as test input. The test machine was a Pentium 4 with 1.6 GHz and 256 MB memory, running Debian 3.0.+			</P+><P+>&#13;			The results from time and space profiling show that most time and memory is consumed by the function <TT+CLASS="function"+>procesDTD</TT+>. This function provides substitution of parameter entities in the internal and external DTD part. The next resource intensive function is <TT+CLASS="function"+>parseXmlDoc</TT+> that does the parsing of an XML document and constructs an <TT+CLASS="literal"+>XmlTree</TT+> representation from it.+			</P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;total time  =        1.26 secs   (63 ticks @ 20 ms)+total alloc = 102,664,004 bytes  (excludes profiling overheads)+++COST CENTER                    MODULE               %time %alloc++processDTD                     HdomParser            27.0   45.6+parseXmlDoc                    HdomParser            19.0   29.3+buildAllValFcts                DocValidation         14.3    5.0+validateAttributes             DTDValidation         12.7    0.5+processGeneralEntities         HdomParser             7.9    9.6+MAIN                           MAIN                   6.3    5.0+buildAllTransFcts              DocTransformation      4.8    1.8+IdVal.validateIds              Validation             4.8    1.1+validateElements               DTDValidation          3.2    0.2+getXmlContents                 HdomParser             0.0    1.1+			</PRE+></TD+></TR+></TABLE+><P+>&#13;			The ranking of the cost centers might have changed dramatically if the profiling tests are performed with other documents. In this case, parameter entities are exhaustively used in the Strict DTD of XHTML. It is not astonishing that the function that handles their substitution takes the most time and space. Another important aspect is the ratio of the DTD subset and the document subset. If for example the DTD subset is very large, its processing functions might take a large percentage of time and space consumption, too.+			</P+><P+>&#13;			Heap profiling produces graphs that show the memory consumption of the cost centers during execution time. These graphs show very clearly how the program execution behavior of Haskell programs differs from programs written in imperative languages. Haskell uses lazy evaluation when evaluating expressions. Arguments to functions are evaluated only when they are needed. Functions only calculate their result as much as it is needed by other functions that called them.+			</P+><P+>&#13;			Lazy evaluation leads to the fact that Haskell programs do not have a strict sequential evaluation order, but that they resemble a stream. The graphs show very clearly this execution behavior. First the parsing functions are started, after producing enough output, processing of the DTD starts. In the end the validation process starts calculations. The graphs show that almost all functions work in parallel after they have enough input.+			</P+></DIV+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="x2380.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="a2458.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>Check the XML parser with the XML Test Suites</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="a2283.html"+ACCESSKEY="U"+>Up</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>MIT License</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/x298.html view
@@ -0,0 +1,949 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>Haskell</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="UP"+TITLE="Basics"+HREF="c78.html"><LINK+REL="PREVIOUS"+TITLE="Basics"+HREF="c78.html"><LINK+REL="NEXT"+TITLE="Package hdom"+HREF="c468.html"></HEAD+><BODY+CLASS="section"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="c78.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+>Chapter 1. Basics</TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="c468.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><DIV+CLASS="section"+><H1+CLASS="section"+><A+NAME="haskell"+></A+>1.2. Haskell</H1+><P+>&#13;	This introduction to Haskell can only cover a few aspects of Haskell. Its aim is to make the next chapters more easily understandable for persons who are not familiar with Haskell, but with programming languages. If you are new to Haskell, its homepage Haskell.org [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_haskellorg"+><SPAN+CLASS="abbrev"+>WWW11</SPAN+></A+></SPAN+>] is a good place to start for gaining information and lots of free compilers and libraries. The tutorial "A Gentle Introduction to Haskell" [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_gentelinstruction"+><SPAN+CLASS="abbrev"+>WWW14</SPAN+></A+></SPAN+>] gives a detailed overview about the language. A great learning book, full of examples is "The Craft of Functional Programming" by Simon Thompson [<SPAN+CLASS="citation"+><A+HREF="b2463.html#thompson99"+><SPAN+CLASS="abbrev"+>Thompson99</SPAN+></A+></SPAN+>]. For advanced people Paul Hudak's "The Haskell School of Expression" [<SPAN+CLASS="citation"+><A+HREF="b2463.html#hudak00"+><SPAN+CLASS="abbrev"+>Hudak00</SPAN+></A+></SPAN+>] gives a more complete overview about monads and higher-order functions by samples from multimedia. The language itself is defined in the Haskell 98 Report [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_98report"+><SPAN+CLASS="abbrev"+>WWW15</SPAN+></A+></SPAN+>] and the Haskell 98 Library Report [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_98libraryreport"+><SPAN+CLASS="abbrev"+>WWW16</SPAN+></A+></SPAN+>].+	</P+><DIV+CLASS="section"+><H2+CLASS="section"+><A+NAME="haskell_introduction"+></A+>1.2.1. Introduction</H2+><P+>&#13;		Haskell is named after Haskell Brooks Curry [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_haskellbrooks"+><SPAN+CLASS="abbrev"+>WWW12</SPAN+></A+></SPAN+>] who was one of the pioneers of the lambda calculus. Haskell bases on the lambda calculus, a mathematical theory of functions, and not on the Turing machine like imperative programming languages do. In functional programming the programmer defines <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>what</I+></SPAN+> has to be calculated and not <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>how</I+></SPAN+> it is calculated. A functional program is a single expression, which is executed by evaluating the expression.+		</P+><P+>&#13;		Shortly described, Haskell is a strong typed, lazy, pure functional programming language.+		</P+><P+>&#13;		Haskell has a static type system so that all type errors are detected at compile time. This makes Haskell programs very type safe. Its type class system is complex but powerful.+		</P+><P+>&#13;		Haskell's evaluation model is called lazy or non-strict, because arguments of functions are only evaluated if they are needed for computations. This leads to a demand-driven evaluation. Expressions are evaluated just enough to get the result. Parts of them may not be evaluated at all. In contrast to imperative languages, program order is not needed.+		</P+><P+>&#13;		The language is called pure, because it has no imperative extensions and it eschews all side effects. This leads to the fact that Haskell lacks any loop constructs, because mutable variables do not exist. All iterations have to be expressed by recursions. The lack of side effects allows easy reasoning about the programs.+		</P+><P+>&#13;		The above-described qualities make Haskell a modern functional programming language with many strengths over actual object oriented languages like Java or C++.+		</P+></DIV+><DIV+CLASS="section"+><H2+CLASS="section"+><A+NAME="functions"+></A+>1.2.2. Functions</H2+><P+>&#13;		Functions are essential for structuring a program. The following example shows a function declaration for adding two numbers.+		</P+><DIV+CLASS="example"+><A+NAME="AEN328"+></A+><P+><B+>Example 1-2. Adding two integers</B+></P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;add :: Int -&#62; Int -&#62; Int+add a b = a + b+			</PRE+></TD+></TR+></TABLE+></DIV+><P+>&#13;		The first line is the type signature, it declares the name and type of the function. The function <TT+CLASS="function"+>add</TT+> takes two integers as input and returns an integer as a result. The type system of Haskell is so powerful that the type signature can be avoided. However there exist a few exceptions and defining the type signatures makes a program much more maintainable.+		</P+><P+>&#13;		The second line gives the definition of the function as an equation. The part before the equal sign names the arguments, the part after the equal sign defines the computation. Using <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>pattern matching</I+></SPAN+> (see <A+HREF="x298.html#pattern_matching"+>Section 1.2.4</A+>) a function can be defined by a series of these equations.+		</P+><P+>&#13;		By surrounding the function name of a two-argument function in back-quotes, it can be written between its arguments, called infix.+		</P+><DIV+CLASS="example"+><A+NAME="AEN337"+></A+><P+><B+>Example 1-3. Prefix and infix notation</B+></P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;add 1 2+1 'add' 2+			</PRE+></TD+></TR+></TABLE+></DIV+><P+>&#13;		Operators, such as <TT+CLASS="function"+>++</TT+> for concatenating two lists, are just infix functions. Instead of writing the function in front of its arguments, it is written between them. Haskell allows the programmer to define his own operators. For defining infix functions, the function name has to be enclosed in parenthesis in the type signature.+		</P+><DIV+CLASS="example"+><A+NAME="AEN342"+></A+><P+><B+>Example 1-4. Type signature of an infix function</B+></P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;(++) :: [a] -&#62; [a] -&#62; [a]+			</PRE+></TD+></TR+></TABLE+></DIV+><P+>&#13;		It is also possible to define the associativity and binding power of the self-defined operators. The following example defines <TT+CLASS="function"+>++</TT+> as a right-associative operator with a precedence level of 5.+		</P+><DIV+CLASS="example"+><A+NAME="AEN347"+></A+><P+><B+>Example 1-5. Define associativity and binding power</B+></P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;infixr 5  +++			</PRE+></TD+></TR+></TABLE+></DIV+></DIV+><DIV+CLASS="section"+><H2+CLASS="section"+><A+NAME="types"+></A+>1.2.3. Types</H2+><P+>&#13;		In general terms, a type is a collection of similar objects, such as numbers or characters. Haskell has a very powerful and complex type system. The following sections can just give a small overview. Type classes, abstract data types or infinite lists are not discussed.+		</P+><DIV+CLASS="simplesect"+><H4+CLASS="simplesect"+><A+NAME="AEN353"+></A+>1.2.3.1. Build-in types</H4+><P+>&#13;			Like many other programming languages Haskell has the basic build-in types: Char, Int, Bool, Float and String, which is only a synonym for a list of Char.+			</P+><P+>&#13;			Lists and tuples are often used data structures for compound data in Haskell and are therefore also build-in values.+			</P+><P+>&#13;			Lists combine values of the same type into a single object. The list [1,2,3] is a shorthand for 1:(2:(3:[])). The infix operator : adds its first argument to the front of its second argument, a list. The empty list is expressed by []. The data type list is a <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>polymorphic type</I+></SPAN+>, see <A+HREF="x298.html#polymorphic_types"+>Section 1.2.3.2</A+> .+			</P+><P+>&#13;			A tuple combines a predefined number of values of predefined, may be different, types into a single object. Tuples are called records or structures in other programming languages. A person might be represented by a personal id and a name. These two different types can be expressed by a tuple:+			</P+><DIV+CLASS="example"+><A+NAME="AEN361"+></A+><P+><B+>Example 1-6. A tuple for persons with ID and name</B+></P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;(Int,String) =&#62; (42, "Schmidt")+				</PRE+></TD+></TR+></TABLE+></DIV+></DIV+><DIV+CLASS="simplesect"+><H4+CLASS="simplesect"+><A+NAME="polymorphic_types"+></A+>1.2.3.2. Polymorphic types</H4+><P+>&#13;			Lists and tuples are the most common examples of generic polymorph data types. A list can contain any type, the only constraint is that all types in one list are the same.+			</P+><P+>&#13;			The Prelude, Haskell's standard library, contains lots of polymorphic functions and operators for processing lists and tuples. The head function for example is a list function that returns the head element of any list.+			</P+><DIV+CLASS="example"+><A+NAME="AEN368"+></A+><P+><B+>Example 1-7. Get the head of a list</B+></P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;head :: [a] -&#62; a+				</PRE+></TD+></TR+></TABLE+></DIV+><P+>&#13;			The function takes a list with elements of type <TT+CLASS="literal"+>a</TT+> and returns one element of type <TT+CLASS="literal"+>a</TT+>, the head. Haskell supports type variables, like the <TT+CLASS="literal"+>a</TT+> above. They are uncapitalized in contrast to specific types like Char or Int and stand for any type.+			</P+></DIV+><DIV+CLASS="simplesect"+><H4+CLASS="simplesect"+><A+NAME="AEN375"+></A+>1.2.3.3. Type synonyms</H4+><P+>&#13;			Type synonyms are names for commonly used types. They are created using a type declaration. A synonym does not define a new type, it just gives a new name for an existing type. Because synonyms are simply a shorthand, which can always be expanded out, type synonyms cannot be recursive.+			</P+><P+>&#13;			As mentioned in the section about basic types, a String is a type synonym for a list of characters.+			</P+><DIV+CLASS="example"+><A+NAME="AEN379"+></A+><P+><B+>Example 1-8. Definition of String</B+></P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;type String = [Char]+				</PRE+></TD+></TR+></TABLE+></DIV+><P+>&#13;			Instead of writing ['H','e','l','l','o'] for a string, Haskell defines a shorthand syntax for strings: "Hello".+			</P+></DIV+><DIV+CLASS="simplesect"+><H4+CLASS="simplesect"+><A+NAME="AEN383"+></A+>1.2.3.4. Algebraic types</H4+><P+>&#13;			Algebraic types are used to define more complex types than lists or tuples, e.g. enumerated types or trees. These types can be recursive. Their definition starts with the keyword <TT+CLASS="literal"+>data</TT+>, followed by the name of the type and the constructors.+			</P+><P+>&#13;			The following example demonstrates a recursive data structure for a polymorphic binary tree, which can store any data type in its leafs. The two kinds <TT+CLASS="literal"+>Leaf</TT+> and <TT+CLASS="literal"+>Branch</TT+> of the data type <TT+CLASS="literal"+>BinTree</TT+> are called constructors. They can be used in the pattern matching of function definitions, described in the next section.+			</P+><DIV+CLASS="example"+><A+NAME="AEN391"+></A+><P+><B+>Example 1-9. A type for binary trees</B+></P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;data BinTree a = Leaf a | Branch (BinTree a) (BinTree a)+				</PRE+></TD+></TR+></TABLE+></DIV+></DIV+></DIV+><DIV+CLASS="section"+><H2+CLASS="section"+><A+NAME="pattern_matching"+></A+>1.2.4. Pattern Matching</H2+><P+>&#13;		Functions can get different types of input. A powerful way for describing different input types in Haskell is using pattern matching. A function can be multiple defined, each definition having a particular pattern for its input arguments. The first pattern that matches the argument is used for that function call. An underscore is a wildcard and is used where something should match, but where the matched value is not used.+		</P+><DIV+CLASS="example"+><A+NAME="AEN397"+></A+><P+><B+>Example 1-10. Calculate the length of a list</B+></P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;length :: [a] -&#62; Int+length []     = 0+length (_:xs) = 1 + length xs+			</PRE+></TD+></TR+></TABLE+></DIV+><P+>&#13;		The function length uses recursion for calculating the length of lists. It calls itself on the right-hand of the second equation. There exist two definitions of the function: one for empty lists and one for lists with content. The pattern <TT+CLASS="literal"+>[]</TT+> matches the empty list. The pattern <TT+CLASS="literal"+>x:xs</TT+> matches any list with at least one element. The head element is described by the <TT+CLASS="literal"+>x</TT+>, the tail of the list by <TT+CLASS="literal"+>xs</TT+>. The <TT+CLASS="literal"+>x</TT+> can be replaced by the wildcard, because the head element has not to be accessed directly.+		</P+><P+>&#13;		The generic type <TT+CLASS="literal"+>[a]</TT+> in the function declaration of <TT+CLASS="function"+>length</TT+> expresses that <TT+CLASS="function"+>length</TT+> is a polymorph function, which can be applied to a list containing elements of any type.+		</P+><P+>&#13;		Constructors of algebraic types can also be used for pattern matching. The following function returns a list of all values stored in a binary tree. The infix function <TT+CLASS="function"+>++</TT+> concatenates two lists.+		</P+><DIV+CLASS="example"+><A+NAME="AEN412"+></A+><P+><B+>Example 1-11. Get all values from Bintree</B+></P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;fringe :: Bintree a -&#62; [a]+fringe (Leaf x)       = [x]+fringe (Branch t1 t2) = fringe t1 ++ fringe t2+			</PRE+></TD+></TR+></TABLE+></DIV+><P+>&#13;		To name a pattern for the use on the right-hand side of an equation, there exists the operator <TT+CLASS="literal"+>@</TT+>. These patterns are called <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>as-patterns</I+></SPAN+>. The pattern in front of the <TT+CLASS="literal"+>@</TT+> always results in a successful match, but the sub-pattern can fail. The following example shows a rewritten fringe function that returns not only the values of the leafs but the leafs itself.+		</P+><DIV+CLASS="example"+><A+NAME="AEN419"+></A+><P+><B+>Example 1-12. Get all leafs from Bintree</B+></P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;fringe2 :: Bintree a -&#62; [Bintree a]+fringe2 l@(Leaf _)     = [l]+fringe2 (Branch t1 t2) = fringe t1 ++ fringe t2+			</PRE+></TD+></TR+></TABLE+></DIV+></DIV+><DIV+CLASS="section"+><H2+CLASS="section"+><A+NAME="guards"+></A+>1.2.5. Guards</H2+><P+>&#13;		Guards (<TT+CLASS="literal"+>|</TT+>) allow boolean tests of arguments passed to a function. The function definition which conditional expression matches first is applied. The keyword <TT+CLASS="literal"+>otherwise</TT+> matches always. The function <TT+CLASS="function"+>max</TT+> uses guards for calculating the maximum of two numbers.+		</P+><DIV+CLASS="example"+><A+NAME="AEN428"+></A+><P+><B+>Example 1-13. Calculate the maximum of two numbers</B+></P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;max :: Int -&#62; Int -&#62; Int+max x y+    | x &#60;= y     = y+    | otherwise  = x+			</PRE+></TD+></TR+></TABLE+></DIV+></DIV+><DIV+CLASS="section"+><H2+CLASS="section"+><A+NAME="higher_order_functions"+></A+>1.2.6. Higher-order Functions</H2+><P+>&#13;		In Haskell functions are first-class citizens. This means that they are themselves simply values. They can be stored in data types or passed as arguments to other functions.+		</P+><P+>&#13;		Higher-order functions are functions that take functions as input, return functions as a result or do both. This technique provides a very high abstraction, by embodying a pattern of computation into a function.+		The following <TT+CLASS="function"+>map</TT+> function embodies transformations over lists.+		</P+><DIV+CLASS="example"+><A+NAME="AEN436"+></A+><P+><B+>Example 1-14. Apply a function to a list</B+></P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;map :: (a -&#62; b) -&#62; [a] -&#62; [b]+map f []     = []+map f (x:xs) = f x : map f xs+			</PRE+></TD+></TR+></TABLE+></DIV+><P+>&#13;		<TT+CLASS="function"+>map</TT+> is a polymorphic function that takes a function and a list as arguments. The passed function takes any type <TT+CLASS="literal"+>a</TT+> and returns any type <TT+CLASS="literal"+>b</TT+>. By applying <TT+CLASS="function"+>map</TT+> to a list of <TT+CLASS="literal"+>a</TT+>'s, it returns a new list of <TT+CLASS="literal"+>b</TT+>'s. The generic types <TT+CLASS="literal"+>a</TT+> and <TT+CLASS="literal"+>b</TT+> might be different, but do not have to be like the following example demonstrates.+		</P+><DIV+CLASS="example"+><A+NAME="AEN448"+></A+><P+><B+>Example 1-15. Increase all numbers in a list</B+></P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;map (+1) [1,2,3]  =&#62;  [2,3,4]+			</PRE+></TD+></TR+></TABLE+></DIV+><P+>&#13;		The infix function <TT+CLASS="function"+>+</TT+> in the example for increasing all numbers in a list is partially applied. Partial application can be done to any function taking two or more arguments. The operator <TT+CLASS="function"+>+</TT+> expects two arguments, one argument is predefined as "1". In this case the function increases every second argument by one.+		</P+></DIV+><DIV+CLASS="section"+><H2+CLASS="section"+><A+NAME="modules_introduction"+></A+>1.2.7. Modules</H2+><P+>&#13;		Modules are the basis for structuring programs or building general libraries. A module has a name and contains a collection of Haskell definitions. A module may import definitions from other modules and export definitions for the use by other modules.+		</P+><DIV+CLASS="example"+><A+NAME="AEN457"+></A+><P+><B+>Example 1-16. Modules</B+></P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;module Foo+    ( inc+    , dec)++where import Bar++... definitions of inc and dec+			</PRE+></TD+></TR+></TABLE+></DIV+><P+>&#13;		The module <TT+CLASS="filename"+>Foo</TT+> exports the functions <TT+CLASS="function"+>inc</TT+> and <TT+CLASS="function"+>dec</TT+>. It imports the module <TT+CLASS="filename"+>Bar</TT+> so that <TT+CLASS="filename"+>Foo</TT+> can use <TT+CLASS="filename"+>Bar</TT+>'s exported definitions. Haskell's standard library, the <TT+CLASS="filename"+>Prelude</TT+>, is implicitly imported.+		</P+></DIV+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="c78.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="c468.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>Basics</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="c78.html"+ACCESSKEY="U"+>Up</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>Package hdom</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/x558.html view
@@ -0,0 +1,1187 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>Data structures</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="UP"+TITLE="Package hdom"+HREF="c468.html"><LINK+REL="PREVIOUS"+TITLE="Package hdom"+HREF="c468.html"><LINK+REL="NEXT"+TITLE="Filter functions"+HREF="x854.html"></HEAD+><BODY+CLASS="section"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="c468.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+>Chapter 2. Package hdom</TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="x854.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><DIV+CLASS="section"+><H1+CLASS="section"+><A+NAME="data_structures"+></A+>2.2. Data structures</H1+><DIV+CLASS="section"+><H2+CLASS="section"+><A+NAME="AEN560"+></A+>2.2.1. Core components</H2+><P+>&#13;			XML documents are structured hierarchically and can be represented as trees. Trees can be modeled easily with lists, because trees can be seen as a generalization of lists: nested lists. As shown in the first chapter, Haskell has some nifty facilities for representing and manipulating lists.+			</P+><P+>&#13;			XML documents consist of many different logical units, which can be represented by different types. Functional languages like Haskell are well-equipped to process typed tree-structured data by using pattern matching and recursion.+			</P+><P+>&#13;			Basically there exist two different approaches for representing XML documents in Haskell. One approach is to use a generic tree structure by which all XML documents can be handled.+			</P+><P+>&#13;			Another approach is to use problem specific types that are derived from a specific Document Type Definition. Both approaches have several advantages and disadvantages. They are discussed in depth in the paper "Haskell and XML: Generic Combinators or Type-Based Translation?" by Malcolm Wallace and Colin Runciman [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_haxmlpaper"+><SPAN+CLASS="abbrev"+>WWW22</SPAN+></A+></SPAN+>].+			</P+><P+>&#13;			The Haskell XML Toolbox uses a generic data structure for representing whole XML documents. Its data model is more general than the one used in HaXml. The differences are discussed in depth in <A+HREF="x2201.html"+>Section 5.2</A+>. A generic data model is the only practical approach for implementing a generic XML parser and a framework for processing any XML documents.+			</P+><P+>&#13;			The data type that models a generic tree structure is the data type <TT+CLASS="literal"+>NTree</TT+>, defined in the module <TT+CLASS="classname"+>NTree</TT+>. It defines an n-ary tree: a node with a list of children that are also nodes. If a node is a leaf it has an empty child list. The data type <TT+CLASS="literal"+>NTrees</TT+> is an abbreviation for the node list. Together both types are mutually recursive and form a multi-branch tree structure.+ 			</P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;data NTree  node = NTree node (NTrees node)+                   deriving (Eq, Ord, Show, Read)++type NTrees node = [NTree node]+			</PRE+></TD+></TR+></TABLE+></DIV+><DIV+CLASS="section"+><H2+CLASS="section"+><A+NAME="AEN575"+></A+>2.2.2. Data type XmlTree</H2+><P+>&#13;			Building on the very general tree data type <TT+CLASS="literal"+>NTree</TT+> are defined the types <TT+CLASS="literal"+>XmlTree</TT+> and <TT+CLASS="literal"+>XmlTrees</TT+> that are defined in the module <TT+CLASS="classname"+>XmlTreeTypes</TT+>. They are used to specify a general recursive data type for XML documents. The data, which can be stored in the nodes, must be of type <TT+CLASS="literal"+>XNode</TT+>.+			</P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;type XmlTree  = NTree  XNode++type XmlTrees = NTrees XNode+			</PRE+></TD+></TR+></TABLE+><P+>&#13;			The algebraic data type <TT+CLASS="literal"+>XNode</TT+> is used for representing all kinds of XML's logical units. The type is described in detail in the next section.+			</P+><DIV+CLASS="section"+><H3+CLASS="section"+><A+NAME="AEN586"+></A+>2.2.2.1. Data type XNode</H3+><P+>&#13;				Before introducing the data type <TT+CLASS="literal"+>XNode</TT+>, some type synonyms have to be presented which are used in the definitions of <TT+CLASS="literal"+>XNode</TT+>. The type <TT+CLASS="literal"+>TagAttrl</TT+> defines the attribute list of an element, it is a list of name-value pairs.+				</P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;type TagAttrl  = [TagAttr]+type TagAttr   = (AttrName, AttrValue)+				</PRE+></TD+></TR+></TABLE+><P+>&#13;				Several type synonyms exist to make the definitions more understandable:+				</P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;type TagName   = String+type AttrName  = String+type AttrValue = String+				</PRE+></TD+></TR+></TABLE+><P+>&#13;				XML documents consist of several different logical units like elements, text data, comments, DTD definitions or entity references. Each kind can be represented by an own type in Haskell so that processing an <TT+CLASS="literal"+>XmlTree</TT+> can be implemented very efficient by the use of pattern matching. The algebraic data type <TT+CLASS="literal"+>XNode</TT+> defines the basic nodes and leafs for all kinds of XML's logical units.+				</P+><P+>&#13;				Together with the algebraic type <TT+CLASS="literal"+>DTDElem</TT+>, which defines constructors for the DTD declarations, this data model allows a uniform processing of the whole XML document by filter functions, described in <A+HREF="x854.html"+>Section 2.3</A+>.+				</P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;+data XNode =+      XText String+    | XCharRef Int+    | XEntityRef String+    | XCmt String+    | XCdata String+    | XPi TagName TagAttrl+    | XTag TagName TagAttrl+    | XDTD DTDElem TagAttrl+    | XError Int String+    deriving (Eq, Ord, Show, Read)+				</PRE+></TD+></TR+></TABLE+><P+></P+><DIV+CLASS="variablelist"+><P+><B+>Description of the constructors:</B+></P+><DL+><DT+><TT+CLASS="function"+>XText String</TT+></DT+><DD+><P+>&#13;							Ordinary text data (leaf)+							</P+><P+>&#13;							Note that an <TT+CLASS="literal"+>XText</TT+> node does not necessarily represent a maximal contiguous sequence of characters. The parser may split text data up into multiple <TT+CLASS="literal"+>XText</TT+> nodes. The parser produces <TT+CLASS="literal"+>XText</TT+> nodes from white space occurring before or after tags, too.+							</P+><P+>&#13;							There exist special filter functions in the module <TT+CLASS="classname"+>EditFilters</TT+> for summing up sequences of <TT+CLASS="literal"+>XText</TT+> nodes into one node and removing <TT+CLASS="literal"+>XText</TT+> nodes from the tree, which contain white space only.+							</P+></DD+><DT+><TT+CLASS="function"+>XCharRef Int</TT+></DT+><DD+><P+>&#13;							Character reference (leaf)+							</P+><P+>&#13;							XML syntax: &#38;#nnn; (<SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>nnn</I+></SPAN+> is a hexadecimal or decimal representation of the characters code point in ISO/IEC 10646)+							</P+></DD+><DT+><TT+CLASS="function"+>XEntityRef String</TT+></DT+><DD+><P+>&#13;							Entity reference (leaf)+							</P+><P+>&#13;							XML syntax: &#38;...;+							</P+></DD+><DT+><TT+CLASS="function"+>XCmt String</TT+></DT+><DD+><P+>&#13;							Comment (leaf)+							</P+></DD+><DT+><TT+CLASS="function"+>XCdata String</TT+></DT+><DD+><P+>&#13;							CDATA section (leaf)+							</P+></DD+><DT+><TT+CLASS="function"+>XPi TagName TagAttrl</TT+></DT+><DD+><P+>&#13;							Processing Instruction (leaf)+							</P+><P+>&#13;							<TT+CLASS="literal"+>TagName</TT+> stores the name of the processing instruction.	If name is <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>xml</I+></SPAN+>, it has the attributes "version", "encoding" and "standalone". Otherwise there is only the attribute "value" which stores a list of the processing instruction attributes.+							</P+></DD+><DT+><TT+CLASS="function"+>XTag TagName TagAttrl</TT+></DT+><DD+><P+>&#13;							Element (node or leaf)+							</P+><P+>&#13;							Inner node if the element has content, respectively children. Leaf if the element is empty. <TT+CLASS="literal"+>TagName</TT+> stores the name of the element. The attribute list <TT+CLASS="literal"+>TagAttrl</TT+> contains all attributes of the element.+							</P+></DD+><DT+><TT+CLASS="function"+>XDTD DTDElem TagAttrl</TT+></DT+><DD+><P+>&#13;							 DTD element (node or leaf)+							</P+><P+>&#13;							 The algebraic data type <TT+CLASS="literal"+>DTDElem</TT+> is used to specify the concrete kind of the element, e.g. element declaration, attribute declaration or entity declaration. The attribute list <TT+CLASS="literal"+>TagAttrl</TT+> contains almost all information from the DTD declarations (see <A+HREF="x558.html#dtdelem"+>Section 2.2.2.2</A+>).+							</P+></DD+><DT+><TT+CLASS="function"+>XError Int String</TT+></DT+><DD+><P+>&#13;							Error (node or leaf)+							</P+><P+>&#13;							Not an XML component. Internal extension for representing errors with error level and error message. The error level can be of type: <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>warning</I+></SPAN+>, <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>error</I+></SPAN+> or <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>fatal error</I+></SPAN+>. The error node can have a child list with the nodes where the error occurred.+							</P+></DD+></DL+></DIV+></DIV+><DIV+CLASS="section"+><H3+CLASS="section"+><A+NAME="dtdelem"+></A+>2.2.2.2. Data type DTDElem</H3+><P+>&#13;				Because a DTD is quite complex, there exists an extra algebraic data type <TT+CLASS="literal"+>DTDElem</TT+> for representing DTD elements in the <TT+CLASS="literal"+>XmlTree</TT+>. For each DTD declaration there exists an own type. The nodes store almost all information from DTD declarations in their attribute list. The library <TT+CLASS="classname"+>XmlKeywords</TT+> provides constants for the names and values of these attributes. Variable contents like the definition of the content model or the names in the value-list of enumerated attribute types are modeled using the node's child list in combination with helper nodes.+				</P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;data DTDElem =+      DOCTYPE+    | ELEMENT+    | CONTENT+    | ATTLIST+    | ENTITY+    | NOTATION+    | NAME+    | PENTITY+    | PEREF+    | CONDSECT+    deriving (Eq, Ord, Show, Read)+				</PRE+></TD+></TR+></TABLE+><P+></P+><DIV+CLASS="variablelist"+><P+><B+>Description of the constructors:</B+></P+><DL+><DT+><TT+CLASS="function"+>DOCTYPE</TT+></DT+><DD+><P+>&#13;							The root node of a DTD, has <TT+CLASS="literal"+>XDTD</TT+> nodes as children.+							</P+><P+>&#13;								<P+></P+><P+><B+>Attributes:</B+></P+><UL+><LI+><P+>name - Name of the root element</P+></LI+><LI+><P+>SYSTEM - Reference to external subset (optional)</P+></LI+><LI+><P+>PUBLIC - Reference to external subset (optional)</P+></LI+></UL+>+							</P+></DD+><DT+><TT+CLASS="function"+>ELEMENT</TT+></DT+><DD+><P+>&#13;							Element declaration. If the element is of type <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>children</I+></SPAN+> or <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>mixed</I+></SPAN+>, it has a list of <TT+CLASS="literal"+>XDTD CONTENT</TT+> nodes as children. These children describe the content model of the element.+							</P+><P+>&#13;								<P+></P+><P+><B+>Attributes:</B+></P+><UL+><LI+><P+>name - Element name</P+></LI+><LI+><P+>type - EMPTY | ANY | #PCDATA | children | mixed</P+></LI+></UL+>+							</P+></DD+><DT+><TT+CLASS="function"+>CONTENT</TT+></DT+><DD+><P+>&#13;							Not an XML component. Specifies the content model of an element if the element is of type <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>children</I+></SPAN+> or <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>mixed</I+></SPAN+>. An <TT+CLASS="literal"+>XDTD CONTENT</TT+> node has a list of children, which can be of type <TT+CLASS="literal"+>XDTD CONTENT</TT+> if there is some grouping in the content model, or of type <TT+CLASS="literal"+>XDTD NAME</TT+> to specify the name of a child element.+							</P+><P+>&#13;								<P+></P+><P+><B+>Attributes:</B+></P+><UL+><LI+><P+>kind - seq | choice</P+></LI+><LI+><P+>modifier -  "" | ? | * | +</P+></LI+></UL+>+							</P+></DD+><DT+><TT+CLASS="function"+>ATTLIST</TT+></DT+><DD+><P+>&#13;							Attribute declaration. If the attribute declaration is of type <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>NOTATION</I+></SPAN+> or <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>ENUMERATION</I+></SPAN+>, this node has a list of children of type <TT+CLASS="literal"+>XDTD NAME</TT+> to specify the enumerated values.+							</P+><P+>&#13;								<P+></P+><P+><B+>Attributes:</B+></P+><UL+><LI+><P+>name - Element name</P+></LI+><LI+><P+>value - Attribute name</P+></LI+><LI+><P+>kind - #REQUIRED | #IMPLIED | #DEFAULT | #FIXED</P+></LI+><LI+><P+>type - CDATA | ID | IDREF | IDREFS | ENTITY | ENTITIES | NMTOKEN | NMTOKENS | NOTATION | ENUMERATION</P+></LI+><LI+><P+>default - Default value (optional)</P+></LI+></UL+>+							</P+></DD+><DT+><TT+CLASS="function"+>ENTITY</TT+></DT+><DD+><P+>&#13;							General or unparsed entity declaration. If the entity is a general entity, it has a child list with nodes of type <TT+CLASS="literal"+>XDTD XCharRef</TT+> and <TT+CLASS="literal"+>XDTD XText</TT+> that specify the replacement text.+							</P+><P+>&#13;								<P+></P+><P+><B+>Attributes:</B+></P+><UL+><LI+><P+>name - Entity name</P+></LI+><LI+><P+>SYSTEM - Reference to external file (optional and only for external or unparsed entities)</P+></LI+><LI+><P+>NDATA - reference to a notation (optional and only for unparsed entities)</P+></LI+></UL+>+							</P+></DD+><DT+><TT+CLASS="function"+>NOTATION</TT+></DT+><DD+><P+>&#13;							Notation declaration.+							</P+><P+>&#13;								<P+></P+><P+><B+>Attributes:</B+></P+><UL+><LI+><P+>name - Notation name</P+></LI+><LI+><P+>SYSTEM - Reference to external application</P+></LI+></UL+>+							</P+></DD+><DT+><TT+CLASS="function"+>NAME</TT+></DT+><DD+><P+>&#13;							Not an XML component. Used by the attribute declaration <TT+CLASS="literal"+>XDTD ATTLIST</TT+> to specify the list of values for attributes of type <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>NOTATION</I+></SPAN+> and <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>ENUMERATION</I+></SPAN+>.+							</P+><P+>&#13;							 Used by the node <TT+CLASS="literal"+>XDTD CONTENT</TT+> to specify element names in content models.+							</P+><P+>&#13;								<P+></P+><P+><B+>Attributes:</B+></P+><UL+><LI+><P+>name - Value of the name</P+></LI+></UL+>+							</P+></DD+></DL+></DIV+><P+>&#13;				The following node types are not accessible by any application. They are for internal use of the XML parser and handled by it. However it is possible to turn of this processing of the parser, so they are shortly described.+				</P+><P+></P+><DIV+CLASS="variablelist"+><DL+><DT+><TT+CLASS="function"+>PENTITY</TT+></DT+><DD+><P+>&#13;							Parameter entity declaration.+							</P+><P+>&#13;								<P+></P+><P+><B+>Attributes:</B+></P+><UL+><LI+><P+>name - Name of parameter entity</P+></LI+><LI+><P+>value - Value of parameter entity</P+></LI+><LI+><P+>SYSTEM - Reference to external file (optional)</P+></LI+><LI+><P+>PUBLIC - Reference to external file (optional)</P+></LI+></UL+>+							</P+></DD+><DT+><TT+CLASS="function"+>PEREF</TT+></DT+><DD+><P+>&#13;							Parameter entity reference.+							</P+><P+>&#13;								<P+></P+><P+><B+>Attributes:</B+></P+><UL+><LI+><P+>PERef - Name of referenced parameter entity</P+></LI+></UL+>+							</P+></DD+><DT+><TT+CLASS="function"+>CONDSECT</TT+></DT+><DD+><P+>&#13;							Node for conditional sections. The child list contains the DTD declarations that are defined in the conditional section.+							</P+><P+>&#13;								<P+></P+><P+><B+>Attributes:</B+></P+><UL+><LI+><P+>type - INCLUDE, IGNORE or parameter entity reference (%...;)</P+></LI+></UL+>+							</P+></DD+></DL+></DIV+></DIV+></DIV+><DIV+CLASS="section"+><H2+CLASS="section"+><A+NAME="example_xmltree"+></A+>2.2.3. Example</H2+><P+>&#13;			The following example demonstrates how an XML document is transformed into the generic tree structure <TT+CLASS="literal"+>XmlTree</TT+>.+			</P+><DIV+CLASS="example"+><A+NAME="AEN836"+></A+><P+><B+>Example 2-1. Input document</B+></P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;&#60;?xml version="1.0" encoding="UTF-8" standalone="yes" ?&#62;++&#60;!DOCTYPE a [+&#60;!ATTLIST a  att1  CDATA  #IMPLIED&#62;+&#60;!ELEMENT a  (b, c?)&#62;+&#60;!ELEMENT b  EMPTY&#62;+&#60;!ELEMENT c  (#PCDATA)&#62;+]&#62;++&#60;a att1="test"&#62;+    &#60;b/&#62;+    &#60;c&#62;hello world&#60;/c&#62;+&#60;/a&#62;+				</PRE+></TD+></TR+></TABLE+></DIV+><P+>&#13;			The following graph shows the <TT+CLASS="literal"+>XmlTree</TT+> representation of the document after parsing. The predefined general entities <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>amp, lt, gt, apos</I+></SPAN+> and <SPAN+CLASS="emphasis"+><I+CLASS="emphasis"+>quot</I+></SPAN+> are automatically added to the DTD by the XML parser. A dummy node with the name "/" forms the root node of the tree so that the DTD, the document subset, processing instructions and comments can be modeled by one tree.+			</P+><P+>&#13;			White space before or after tags is represented by <TT+CLASS="literal"+>XText</TT+> nodes. There exist filter functions in the module <TT+CLASS="classname"+>EditFilters</TT+> for removing <TT+CLASS="literal"+>XText</TT+> nodes containing white space only from the tree if these nodes are not necessary for further processing.+			</P+><DIV+CLASS="example"+><A+NAME="AEN847"+></A+><P+><B+>Example 2-2. Input document as XmlTree</B+></P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;---XTag "/" [("standalone","yes"),("version","1.0"),("source","example.xml"),+   |         ("encoding","UTF-8")]+   |+   +---XPi "xml" [("version","1.0"),("encoding","UTF-8"),("standalone","yes")]+   |+   +---XText "\n\n"+   |+   +---XDTD DOCTYPE [("name","a")]+   |   |+   |   +---XDTD ENTITY [("name","lt")]+   |   |   |+   |   |   +---XCharRef 38+   |   |   |+   |   |   +---XText "#60;"+   |   |+   |   +---XDTD ENTITY [("name","gt")]+   |   |   |+   |   |   +---XCharRef 62+   .   .+   .   .   (Definitions of the other predefined entities amp, apos and quot)+   .   .+   |   +---XDTD ATTLIST [("name","a"),("value","att1"),("default","42"),+   |   |                 ("kind","#DEFAULT"),("type","CDATA")]+   |   |+   |   +---XDTD ELEMENT [("name","a"),("type","children")]+   |   |   |+   |   |   +---XDTD CONTENT [("modifier",""),("kind","seq")]+   |   |       |+   |   |       +---XDTD NAME [("name","b")]+   |   |       |+   |   |       +---XDTD CONTENT [("modifier","?"),("kind","seq")]+   |   |           |+   |   |           +---XDTD NAME [("name","c")]+   |   |+   |   +---XDTD ELEMENT [("name","b"),("type","EMPTY")]+   |   |+   |   +---XDTD ELEMENT [("name","c"),("type","#PCDATA")]+   |+   +---XText "\n\n"+   |+   +---XTag "a" [("att1","test")]+   |   |+   |   +---XText "\n    "+   |   |+   |   +---XTag "b" []+   |   |+   |   +---XText "\n    "+   |   |+   |   +---XTag "c" []+   |   |   |+   |   |   +---XText "hello world"+   |   |+   |   +---XText "\n"+   |+   +---XText "\n"+				</PRE+></TD+></TR+></TABLE+></DIV+><P+>&#13;			The following listing shows the internal representation of the document subset. The root node with the name "a" has a list of attributes and a list of children.+			</P+><DIV+CLASS="example"+><A+NAME="AEN851"+></A+><P+><B+>Example 2-3. Internal representation of the document subset</B+></P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;NTree (XTag "a" [("att1","test")]) [+    NTree (XText "\n    ") [],+    NTree (XTag "b" []) [],+    NTree (XText "\n    ") [],+    NTree (XTag "c" []) [+        NTree (XText "hello world") []+    ],NTree (XText "\n") []+]+				</PRE+></TD+></TR+></TABLE+></DIV+></DIV+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="c468.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="x854.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>Package hdom</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="c468.html"+ACCESSKEY="U"+>Up</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>Filter functions</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hvalidator/thesis/x854.html view
@@ -0,0 +1,990 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<HTML+><HEAD+><TITLE+>Filter functions</TITLE+><META+NAME="GENERATOR"+CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK+REL="HOME"+TITLE="Design and Implementation of a validating XML parser in Haskell"+HREF="index.html"><LINK+REL="UP"+TITLE="Package hdom"+HREF="c468.html"><LINK+REL="PREVIOUS"+TITLE="Data structures"+HREF="x558.html"><LINK+REL="NEXT"+TITLE="Filter combinators"+HREF="x1178.html"></HEAD+><BODY+CLASS="section"+BGCOLOR="#FFFFFF"+TEXT="#000000"+LINK="#0000FF"+VLINK="#840084"+ALINK="#0000FF"+><DIV+CLASS="NAVHEADER"+><TABLE+SUMMARY="Header navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TH+COLSPAN="3"+ALIGN="center"+>Design and Implementation of a validating XML parser in Haskell: Master's thesis; +			University of Applied Sciences Wedel+		</TH+></TR+><TR+><TD+WIDTH="10%"+ALIGN="left"+VALIGN="bottom"+><A+HREF="x558.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="80%"+ALIGN="center"+VALIGN="bottom"+>Chapter 2. Package hdom</TD+><TD+WIDTH="10%"+ALIGN="right"+VALIGN="bottom"+><A+HREF="x1178.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+></TABLE+><HR+ALIGN="LEFT"+WIDTH="100%"></DIV+><DIV+CLASS="section"+><H1+CLASS="section"+><A+NAME="filter_functions"+></A+>2.3. Filter functions</H1+><DIV+CLASS="section"+><H2+CLASS="section"+><A+NAME="filter_introduction"+></A+>2.3.1. Introduction</H2+><P+>&#13;			Filters are the basic functions for processing the <TT+CLASS="literal"+>XmlTree</TT+> representation of XML documents. A filter takes a node or a list of nodes and returns some sequence of nodes. The result list might be empty, might contain a single item, or it could contain several items.+			</P+><P+>&#13;			The idea of filters was adopted from HaXml [<SPAN+CLASS="citation"+><A+HREF="b2463.html#bib_haxml"+><SPAN+CLASS="abbrev"+>WWW21</SPAN+></A+></SPAN+>], but has been modified. In HaXml filters work only on the document subset part of XML documents. The Haskell XML Toolbox uses the generic tree data type <TT+CLASS="literal"+>NTree</TT+> for modeling XML documents. This generic data model makes it possible to generalize HaXml's filter idea so that filters can process the whole XML document, including the DTD subset or document subset. This generalization allows implementing a very uniform design of XML processing applications by using filters. In fact the whole XML Parser of the Haskell XML Toolbox works internally with filters. The differences between HaXml's approach and the approach of the Haskell XML Toolbox are described in depth in <A+HREF="x2201.html"+>Section 5.2</A+>.+			</P+><P+>&#13;			<TT+CLASS="literal"+>TFilter</TT+> and <TT+CLASS="literal"+>TSFilter</TT+> are filters for the general n-ary tree defined by the data type <TT+CLASS="literal"+>NTree</TT+>. The function <TT+CLASS="literal"+>TFilter</TT+> takes a node and returns a list of nodes. <TT+CLASS="literal"+>TSFilter</TT+> takes a list of nodes and returns a list, too.+			</P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;type TFilter  node	= NTree  node -&#62; NTrees node+type TSFilter node	= NTrees node -&#62; NTrees node+			</PRE+></TD+></TR+></TABLE+><P+>&#13;			<TT+CLASS="literal"+>XmlFilter</TT+> and <TT+CLASS="literal"+>XmlSFilter</TT+> base on these types. They only work on <TT+CLASS="literal"+>XNode</TT+> data types.+			</P+><TABLE+BORDER="0"+BGCOLOR="#E0E0E0"+WIDTH="100%"+><TR+><TD+><PRE+CLASS="programlisting"+>&#13;type XmlFilter  = TFilter  XNode+type XmlSFilter = TSFilter XNode+			</PRE+></TD+></TR+></TABLE+><P+>&#13;			The filters can be used to select parts of a document, to construct new document parts or to change document parts. They can even be used for checking validity constraints as described in <A+HREF="c1850.html"+>Chapter 4</A+>. In this case a filter returns an empty list if the document is valid or a list with errors.+			</P+><P+>&#13;			Filters can sometimes be thought of as predicates. In this case they are used for deciding whether or not to keep its input. The functional approach differs from predicate logic. If the predicate is false, an empty list is returned. If the predicate is true, a list with the passed element is returned.+			</P+><P+>&#13;			All filters share the same basic type so that combining them with the help of combinators, described in  <A+HREF="x1178.html"+>Section 2.4</A+>, is possible. With this approach defining complex filters on the basis of easier ones is possible.+			</P+><P+>&#13;			The following list describes the basic filter functions for processing XML documents represented as an <TT+CLASS="literal"+>XmlTree</TT+>. Some functions are higher-order functions and return a filter function as a result. The arguments of these functions are used to construct parameterized filters. This is useful for example for constructing filters that should be used to return nodes with a certain property.+			</P+></DIV+><DIV+CLASS="section"+><H2+CLASS="section"+><A+NAME="filters_ntree"+></A+>2.3.2. Filters from module NTree</H2+><P+></P+><DIV+CLASS="variablelist"+><P+><B+>Simple filters</B+></P+><DL+><DT+><TT+CLASS="function"+>none :: TFilter node</TT+></DT+><DD+><P+>&#13;						Takes any node, returns always an empty list. Algebraically zero.+						</P+></DD+><DT+><TT+CLASS="function"+>this :: TFilter node</TT+></DT+><DD+><P+>&#13;						Takes any node, returns always a list of the passed node. Algebraically unit.+						</P+></DD+></DL+></DIV+><P+></P+><DIV+CLASS="variablelist"+><P+><B+>Selection filters</B+></P+><DL+><DT+><TT+CLASS="function"+>isOfNode :: (node -&#62; Bool) -&#62; TFilter node</TT+></DT+><DD+><P+>&#13;						Takes a predicate functions and returns a filter. The filter returns a list with passed node if the predicate function  is true for the node, otherwise it returns an empty list.+						</P+></DD+><DT+><TT+CLASS="function"+>isNode :: Eq node =&#62; node -&#62; TFilter node</TT+></DT+><DD+><P+>&#13;						The same as <TT+CLASS="function"+>isOfNode</TT+>. Instead of a predicate function a reference node is taken.+						</P+></DD+></DL+></DIV+><P+></P+><DIV+CLASS="variablelist"+><P+><B+>Filters for modifying nodes</B+></P+><DL+><DT+><TT+CLASS="function"+>mkNTree :: NTree node -&#62; TFilter node</TT+></DT+><DD+><P+>&#13;						Takes a node and returns a filter. The filter returns always a list with this node and ignores the passed one.+						</P+></DD+><DT+><TT+CLASS="function"+>replaceNode :: node -&#62; TFilter node</TT+></DT+><DD+><P+>&#13;						Takes a node and returns a filter. The filter replaces a passed node with the initialized one. The children of the passed node are added to the new node.+						</P+></DD+><DT+><TT+CLASS="function"+>replaceChildren :: NTrees node -&#62; TFilter node</TT+></DT+><DD+><P+>&#13;						Like <TT+CLASS="function"+>replaceNode</TT+> except that in this case the children are replaced by an initialized list. The passed node itself is not modified.+						</P+></DD+><DT+><TT+CLASS="function"+>modifyNode :: (node -&#62; Maybe node) -&#62; TFilter node</TT+></DT+><DD+><P+>&#13;						Takes a function for modifying nodes and returns a filter.	The function <TT+CLASS="function"+>(node -&#62; Maybe node)</TT+> is applied to the passed node, the children are not modified.+						</P+></DD+><DT+><TT+CLASS="function"+>modifyNode0 :: (node -&#62; node) -&#62; TFilter node</TT+></DT+><DD+><P+>&#13;						Like <TT+CLASS="function"+>modifyNode0</TT+> except that the type of the modification function <TT+CLASS="function"+>(node -&#62; node)</TT+> is different.+						</P+></DD+><DT+><TT+CLASS="function"+>modifyChildren :: TSFilter node -&#62; TFilter node</TT+></DT+><DD+><P+>&#13;						Takes a filter that processes lists of nodes and returns a new filter. The new filter applies the filter <TT+CLASS="function"+>TSFilter node</TT+> to the child list of a passed node. The node itself is not modified.+						</P+></DD+></DL+></DIV+></DIV+><DIV+CLASS="section"+><H2+CLASS="section"+><A+NAME="filters_xmltreeaccess"+></A+>2.3.3. Filters from module XmlTreeAccess</H2+><P+></P+><DIV+CLASS="variablelist"+><P+><B+>Predicate filters</B+></P+><DL+><DT+><TT+CLASS="function"+>isTag :: TagName -&#62; XmlFilter</TT+></DT+><DD+><P+>&#13;						Takes a <TT+CLASS="literal"+>TagName</TT+> and returns a filter. The filter returns a list with the passed node if its name equals <TT+CLASS="literal"+>TagName</TT+>, otherwise an empty list is returned.+						</P+></DD+><DT+><TT+CLASS="function"+>isOfTag :: (TagName -&#62; Bool) -&#62; XmlFilter</TT+></DT+><DD+><P+>&#13;						Takes a predicate function <TT+CLASS="function"+>(TagName -&#62; Bool)</TT+> and returns a filter. The filter applies the predicate function to the name of a passed node. If the  predicate function is true, the filter returns a list with the node. Otherwise an empty list is returned.+						</P+></DD+><DT+><TT+CLASS="function"+>attrHasValue :: AttrName -&#62; (AttrValue -&#62; Bool) -&#62; XmlFilter</TT+></DT+><DD+><P+>&#13;						Constructs a predicate filter for attributes which value meets a predicate function. The constructed filter returns a list with the passed node if the node has an attribute with name <TT+CLASS="literal"+>AttrName</TT+> and its value matches the predicate function <TT+CLASS="function"+>(AttrValue -&#62; Bool)</TT+>. Otherwise an empty list is returned.+						</P+></DD+></DL+></DIV+><P+>&#13;			Lots of further predicate functions are provided by the module <TT+CLASS="classname"+>XmlTreePredicates</TT+>: <TT+CLASS="function"+>isXCdata</TT+>, <TT+CLASS="function"+>isXCharRef</TT+>, <TT+CLASS="function"+>isXCmt</TT+>, <TT+CLASS="function"+>isXDTD</TT+>, <TT+CLASS="function"+>isXEntityRef</TT+>, <TT+CLASS="function"+>isXError</TT+>, <TT+CLASS="function"+>isXNoError</TT+>, <TT+CLASS="function"+>isXPi</TT+>, <TT+CLASS="function"+>isXTag</TT+>, <TT+CLASS="function"+>isXText</TT+>, etc. These filters are used for identifying special types of nodes.+			</P+><P+></P+><P+></P+><DIV+CLASS="variablelist"+><P+><B+>Construction filters</B+></P+><DL+><DT+><TT+CLASS="function"+>mkXTag :: TagName -&#62; TagAttrl -&#62; XmlTrees -&#62; XmlFilter</TT+></DT+><DD+><P+>&#13;						The created filter constructs an <TT+CLASS="literal"+>XTag</TT+> node with the name <TT+CLASS="literal"+>TagName</TT+>, an attribute list <TT+CLASS="literal"+>TagAttrl</TT+> and a list of children. The passed node is ignored by the filter.+						</P+></DD+><DT+><TT+CLASS="function"+>mkXText :: String -&#62; XmlFilter</TT+></DT+><DD+><P+>&#13;						The created filter constructs an <TT+CLASS="literal"+>XText</TT+> node with text data. The passed node is ignored by the filter. There exists a shortcut function <TT+CLASS="function"+>txt</TT+> that does the same.+						</P+></DD+><DT+><TT+CLASS="function"+>mkXCharRef :: Int -&#62; XmlFilter</TT+></DT+><DD+><P+>&#13;						The created filter constructs an <TT+CLASS="literal"+>XCharRef</TT+> node with a reference number to a character. The passed node is ignored by the filter.+						</P+></DD+><DT+><TT+CLASS="function"+>mkXEntityRef :: String -&#62; XmlFilter</TT+></DT+><DD+><P+>&#13;						The created filter constructs an <TT+CLASS="literal"+>XEntityRef</TT+> node with an entity reference. The passed node is ignored by the filter.+						</P+></DD+><DT+><TT+CLASS="function"+>mkXCmt :: String -&#62; XmlFilter</TT+></DT+><DD+><P+>&#13;						The created filter constructs an <TT+CLASS="literal"+>XCmt</TT+> node with text data. The passed node is ignored by the filter. There exists a shortcut function <TT+CLASS="function"+>cmt</TT+> that does the same.+						</P+></DD+><DT+><TT+CLASS="function"+>mkXDTD :: DTDElem -&#62; TagAttrl -&#62; XmlTrees -&#62; XmlFilter</TT+></DT+><DD+><P+>&#13;						The created filter constructs an <TT+CLASS="literal"+>XDTD</TT+> node. The type of the node is specified by the algebraic data type <TT+CLASS="literal"+>DTDElem</TT+>. The node has attributes and a list of children. The passed node is ignored by the filter.+						</P+></DD+><DT+><TT+CLASS="function"+>mkXPi	:: String  -&#62; TagAttrl -&#62; XmlFilter</TT+></DT+><DD+><P+>&#13;						The created filter constructs an <TT+CLASS="literal"+>XPi</TT+> node with a name and attributes. The passed node is ignored by the filter.+						</P+></DD+><DT+><TT+CLASS="function"+>mkXCdata :: String -&#62; XmlFilter</TT+></DT+><DD+><P+>&#13;						The created filter constructs an <TT+CLASS="literal"+>XCdata</TT+> node with text data. The passed node is ignored by the filter.+						</P+></DD+><DT+><TT+CLASS="function"+>mkXError :: Int -&#62; String -&#62; XmlFilter</TT+></DT+><DD+><P+>&#13;						The created filter constructs an <TT+CLASS="literal"+>XError</TT+> node with an error level and an error message. The passed node is stored in the child list of this error node, so that the location where the error occurred can be preserved. The shortcut functions <TT+CLASS="function"+>warn</TT+>, <TT+CLASS="function"+>err</TT+> and <TT+CLASS="function"+>fatal</TT+> of type <TT+CLASS="function"+>String -&#62; XmlFilter</TT+> can be used to create specific error nodes.+						</P+></DD+><DT+><TT+CLASS="function"+>mkXElem :: TagName -&#62; TagAttrl -&#62; [XmlFilter] -&#62; XmlFilter</TT+></DT+><DD+><P+>&#13;						The created filter constructs an <TT+CLASS="literal"+>XTag</TT+> node with the name <TT+CLASS="literal"+>TagName</TT+> and the attribute list <TT+CLASS="literal"+>TagAttrl</TT+>. Its child list is constructed by applying the filter list <TT+CLASS="literal"+>[XmlFilter]</TT+> to the passed node. There exists a shortcut function <TT+CLASS="function"+>tag</TT+> that does the same.+						</P+></DD+><DT+><TT+CLASS="function"+>mkXSElem :: TagName -&#62; [XmlFilter] -&#62; XmlFilter</TT+></DT+><DD+><P+>&#13;						The created filter constructs a simple <TT+CLASS="literal"+>XTag</TT+> node. It works like <TT+CLASS="function"+>mkXElem</TT+> except that no attribute list is created. There exists a shortcut function <TT+CLASS="function"+>stag</TT+> that does the same.+						</P+></DD+><DT+><TT+CLASS="function"+>mkXEElem :: TagName -&#62; XmlFilter</TT+></DT+><DD+><P+>&#13;						The created filter constructs an empty <TT+CLASS="literal"+>XTag</TT+> node. It works like <TT+CLASS="function"+>mkXSElem</TT+> except that no child list is created. There exists a shortcut function <TT+CLASS="function"+>etag</TT+> that does the same.+						</P+></DD+></DL+></DIV+><P+></P+><DIV+CLASS="variablelist"+><P+><B+>Selection filters</B+></P+><DL+><DT+><TT+CLASS="function"+>getXTagName :: XmlFilter</TT+></DT+><DD+><P+>&#13;						If the passed node is of type <TT+CLASS="literal"+>XTag</TT+>, a list with an <TT+CLASS="literal"+>XText</TT+> node is returned. This node contains the name of the element. Otherwise an empty list is returned.+						</P+></DD+><DT+><TT+CLASS="function"+>getXTagAttr :: AttrName -&#62; XmlFilter</TT+></DT+><DD+><P+>&#13;						If the passed node is of type <TT+CLASS="literal"+>XTag</TT+> and there exists an attribute with the name <TT+CLASS="literal"+>AttrName</TT+>, a list with an <TT+CLASS="literal"+>XText</TT+> node is returned. This node contains  the value of the attribute. Otherwise an empty list is returned.+						</P+></DD+><DT+><TT+CLASS="function"+>getXDTDAttr :: AttrName -&#62; XmlFilter</TT+></DT+><DD+><P+>&#13;						The same as <TT+CLASS="function"+>getXTagAttr</TT+> except that it works on <TT+CLASS="literal"+>XDTD</TT+> nodes.+						</P+></DD+><DT+><TT+CLASS="function"+>getXText :: XmlFilter</TT+></DT+><DD+><P+>&#13;						If the passed node is of type <TT+CLASS="literal"+>XText</TT+>, a list with an <TT+CLASS="literal"+>XText</TT+> node is returned. This node contains text data. Otherwise an empty list is returned.+						</P+></DD+><DT+><TT+CLASS="function"+>getXCmt :: XmlFilter</TT+></DT+><DD+><P+>&#13;						If the passed node is of type <TT+CLASS="literal"+>XCmt</TT+>, a list with an <TT+CLASS="literal"+>XText</TT+> node is returned. This node contains the text data of the comment. Otherwise an empty list is returned.+						</P+></DD+><DT+><TT+CLASS="function"+>getXPiName :: XmlFilter</TT+></DT+><DD+><P+>&#13;						If the passed node is of type <TT+CLASS="literal"+>XPi</TT+>, a list with an <TT+CLASS="literal"+>XText</TT+> node is returned. This node contains the name of the processing instruction. Otherwise an empty list is returned.+						</P+></DD+><DT+><TT+CLASS="function"+>getXCdata :: XmlFilter</TT+></DT+><DD+><P+>&#13;						If the passed node is of type <TT+CLASS="literal"+>XCdata</TT+>, a list with an <TT+CLASS="literal"+>XText</TT+> node is returned. This node contains the text data of the element. Otherwise an empty list is returned.+						</P+></DD+><DT+><TT+CLASS="function"+>getXError :: XmlFilter</TT+></DT+><DD+><P+>&#13;						If the passed node is of type <TT+CLASS="literal"+>XError</TT+>, a list with an <TT+CLASS="literal"+>XText</TT+> node is returned. This node contains the error message. Otherwise an empty list is returned.+						</P+></DD+></DL+></DIV+><P+></P+><DIV+CLASS="variablelist"+><P+><B+>Substitution filters</B+></P+><DL+><DT+><TT+CLASS="function"+>replaceTagName :: TagName -&#62; XmlFilter</TT+></DT+><DD+><P+>&#13;						Constructed filter replaces the name of an <TT+CLASS="literal"+>XTag</TT+> or <TT+CLASS="literal"+>XPi</TT+> node by the <TT+CLASS="literal"+>TagName</TT+> and returns a list with the modified node.+						</P+></DD+><DT+><TT+CLASS="function"+>replaceAttrl :: TagAttrl -&#62; XmlFilter</TT+></DT+><DD+><P+>&#13;						 Constructed filter replaces the attribute list of an <TT+CLASS="literal"+>XTag</TT+>, <TT+CLASS="literal"+>XDTD</TT+> or <TT+CLASS="literal"+>XPi</TT+> node by the <TT+CLASS="literal"+>TagAttrl</TT+> and returns a list with the modified node.+						</P+></DD+><DT+><TT+CLASS="function"+>modifyTagName :: (TagName -&#62; TagName) -&#62; XmlFilter</TT+></DT+><DD+><P+>&#13;						 Constructed filter modifies the name of an <TT+CLASS="literal"+>&#13;						 XTag</TT+> or <TT+CLASS="literal"+>XPi</TT+> node by applying the function <TT+CLASS="function"+>(TagName -&#62; TagName)</TT+> to the name. The filter returns a list with the modified node.+						</P+></DD+><DT+><TT+CLASS="function"+>modifyAttrl	:: (TagAttrl -&#62; TagAttrl) -&#62; XmlFilter</TT+></DT+><DD+><P+>&#13;						Constructed filter modifies the attribute list of an <TT+CLASS="literal"+>XTag</TT+>, <TT+CLASS="literal"+>XDTD</TT+> or <TT+CLASS="literal"+>XPi</TT+> node by applying the function <TT+CLASS="function"+>(TagAttrl -&#62; TagAttrl)</TT+> to the attribute list. The filter returns a list with the modified node.+						</P+></DD+><DT+><TT+CLASS="function"+>modifyAttr :: AttrName -&#62; AttrValue -&#62; XmlFilter</TT+></DT+><DD+><P+>&#13;						Constructed filter changes the attribute value of the attribute which name equals <TT+CLASS="literal"+>AttrName</TT+> to <TT+CLASS="literal"+>AttrValue</TT+> and returns a list with the modified node.+						</P+></DD+></DL+></DIV+></DIV+></DIV+><DIV+CLASS="NAVFOOTER"+><HR+ALIGN="LEFT"+WIDTH="100%"><TABLE+SUMMARY="Footer navigation table"+WIDTH="100%"+BORDER="0"+CELLPADDING="0"+CELLSPACING="0"+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+><A+HREF="x558.html"+ACCESSKEY="P"+>Prev</A+></TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="index.html"+ACCESSKEY="H"+>Home</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+><A+HREF="x1178.html"+ACCESSKEY="N"+>Next</A+></TD+></TR+><TR+><TD+WIDTH="33%"+ALIGN="left"+VALIGN="top"+>Data structures</TD+><TD+WIDTH="34%"+ALIGN="center"+VALIGN="top"+><A+HREF="c468.html"+ACCESSKEY="U"+>Up</A+></TD+><TD+WIDTH="33%"+ALIGN="right"+VALIGN="top"+>Filter combinators</TD+></TR+></TABLE+></DIV+></BODY+></HTML+>
+ doc/hxpath/diplomarbeit.pdf view

binary file changed (absent → 362785 bytes)

+ doc/index.html view
@@ -0,0 +1,458 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<html>+  <head>+    <title>Haskell XML Toolbox 7.1</title>+    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">+  </head>++  <body style="background-color: #ffffff;">+    <h1>Haskell XML Toolbox 7.1</h1>++    <h3>Contents</h3>+    <ul>+      <li><a href="#intro">Introduction</a></li>+      <li><a href="#descr">Description</a></li>+      <li><a href="#docu">Documentation</a></li>+      <li><a href="#req">Requirements</a></li>+      <li><a href="#down">Download</a></li>+      <li><a href="#install">Installation</a></li>+      <li><a href="#change">Change history</a></li>+      <li><a href="#limit">Known problems and limitations</a></li>+      <li><a href="#port">Portability</a></li>+      <li><a href="#rel">Related Work</a></li>+      <li><a href="#feed">Feedback</a></li>+    </ul>++    <hr>++    <a name="intro"></a>+    <h3>Introduction</h3>+    <p>+      The <i>Haskell XML Toolbox</i> is a collection of tools for+      processing XML with+      <a href="http://www.haskell.org">Haskell</a>.+      It is itself purely written in Haskell.+      The <i>Haskell XML Toolbox</i> is a project of the+      <a href="http://www.fh-wedel.de">University of Applied Sciences Wedel</a>,+      initiated by+      <a href="http://www.fh-wedel.de/~si/">Uwe Schmidt</a>.+	 </p>++	 <p>+	 The core component of the <i>Haskell XML Toolbox</i>+	 is a validating XML-Parser that supports almost fully the+	 <a href="http://www.w3.org/TR/REC-xml">Extensible Markup Language (XML) 1.0 (Second Edition)</a>.+    </p>++    <a name="descr"></a>+    <h3>Description</h3>+    <p>+      The <i>Haskell XML Toolbox</i> bases on the ideas of+      <a href="http://www.cs.york.ac.uk/fp/HaXml/">HaXml</a> and+      <a href="http://www.flightlab.com/~joe/hxml/">HXML</a>,+      but introduces a more general approach for processing XML with+      Haskell.+      The <i>Haskell XML Toolbox</i> uses a generic data model for+      representing XML documents,+      including the DTD subset and the document subset, in Haskell.+      This data model makes it possible to use filter functions+      as a uniform design of XML processing applications.+      The whole XML parser including the validator parts+      was implemented using this design.+      Libraries with filters and combinators are provided for processing the generic data model.+    </p>++    <p>+      An new more flexible and typesaver API based on arrows instead+      of filters is included since version 5.2.+      There is a <em>cookbook</em> for using this arrow interface+      to build (nontrivial) applications. Manuel Ohlendorf+      has developed examples for processing RDF and has documented the+      development in his master thesis: <em>A Cookbook for the Haskell+	XML Toolbox with Examples for Processing RDF Documents</em>+      (the thesis as <a href="cookbook/doc/thesis.pdf">PDF</a>)+    </p>++    <p>Features:</p>+    <ul>+      <li>Unicode and UTF-8, US-ASCII and ISO-Laitin-1 support</li>+      <li>http: and file: protocol support</li>+      <li>http access via proxy</li>+      <li>wellformed document parsing, validation</li>+      <li>namespace support: namespace propagation and checking</li>+      <li>XPath support for selection of document parts</li>+      <li>liberal HTML parser for interpreting any text containing &lt;+	... &gt; as HTML/XML</li>+      <li><a href="http://www.relaxng.org/">Relax NG</a> schema+	validator</li>+      <li>integrated <a href="http://www.w3.org/TR/xslt">XSLT</a> transformer</li>+    </ul>++    <a name="docu"></a>+    <h3>Documentation</h3>++    <p>+      A (somewhat) gentle introduction to HXT is avalable in the+      <a href="http://www.haskell.org/haskellwiki/HXT">Haskell Wiki</a>.+    </p>++    <p>+      The XSLT transformer has been developed by Tim Walkenhorst in+      this master thesis: <em><a href="xslt/thesis.pdf">Implementing an XSLT+	  processor for the Haskell XML Toolbox</a></em>. It's a+      rather complete implementation, but it's of course not a+      substitute for Xalan or other advanced XSLT systems. The XSLT+      module consists of less than 2000 lines of code. Compared with+      the more than 300,000 lines of Java for Xalan, this Haskell code+      can be viewed as one of the first formal specifications for XSLT.+    </p>++    <p>+      Manuel Ohlendorfs master thesis, describing the arrow interface+      of the toolbox: <em>A Cookbook for the Haskell+	XML Toolbox with Examples for Processing RDF Documents</em>+      (the thesis as <a href="cookbook/doc/thesis.pdf">PDF</a>).+      The source code of the example application is included in the+      <tt>doc/cookbook</tt> directory of the distribution.+    </p>++    <p>+      The master's thesis+      <i>"Design and Implementation of a validating XML parser in+	Haskell"</i>+      by Martin Schmidt describes the design and motivation of the+      <i>Haskell XML Toolbox</i>+      (the thesis as <a href="thesis/index.html">HTML</a>+      or <a href="thesis.pdf">PDF</a>) and the development of the DTD+      validator module.+      The documentation in the thesis is a bit out of date, the modules+      and module names and some function names have been changed. For details the online+      haddock documentation should be used.+    </p>++    <p>+      The description of the development of the <a href="http://www.w3.org/TR/xpath">XPath</a> modules+      is described (in german) in <em>Konzeption und Implementierung+	eines XPath-Moduls für die Haskell XML Toolbox</em>+      (<a href="./hxpath/diplomarbeit.pdf">PDF-document</a>).+    </p>++    <p>+      The description of the internals of the <a href="http://www.relaxng.org/">Relax NG</a> validator+      modules is described (in german) in <em>Design und Entwicklung+	eines <a href="http://www.relaxng.org/">Relax NG</a> Schema Validators auf Basis der Haskell XML+	Toolbox</em> (<a href="./relaxng/thesis.pdf">PDF-document</a>).+    </p>++    <p>+      The <em><a href="./hdoc_filter/index.html">Filter API Documentation</a></em> generated+      with <a href="http://www.haskell.org/haddock/">Haddock</a>.+      For the new arrow interface there is a more user friendly <em><a href="./hdoc_arrow/index.html">Arrow API Documentation</a></em>+      including only the basic types and the arrow descriptions.+    </p>++    <a name="req"></a>+    <h3>Requirements</h3>+    <ul>+      <li>GHC >= 6.4.1 or GHC-6.6</li>+      <li>GNU make (to build a compiled version) or Cabal</li>+    </ul>++    <a name="down"></a>+    <h3>Downloads</h3>+    <p>+      <a href="HXT-7.1.tar.gz">Haskell XML Toolbox 7.1</a>,+      released 2007-02-02:+    </p>+    <ul>+      <li>This version works (at least) with ghc.6.4.2. and ghc 6.6.+      </li>+      <li>Includes sources for building a ghc package+	<code>hxt</code> with Cabal or make.+	This package contains a Haskell DOM, an XML parser, a+	DTD validator,  namespace processing functions, a Relax+	NG validator, an XPath expression evaluator and an XSLT transformer.+      </li>+      <li>HTTP access can be done with the +	<a href="http://www.haskell.org/http/">Haskell HTTP module</a>+	or with an external program <code>curl</code>+	The HTTP module must be installed before installing the+	toolbox.+	In the past the installation procedure for HTTP was a bit clumsy because of further+	dependencies on <a href="http://www.haskell.org/crypto/">The Haskell Cryptographic Library</a>+	and <a href="http://www.n-heptane.com/nhlab/">NewBinary package</a>. The latest <a href="http://www.haskell.org/http/">HTTP module</a>+	from 2006-07-07 has removed these dependencies and consists only of one HTTP module (not HTTP and Browser).+	So there has only one package HTTP to be installed before installing HXT.+      </li>+      <li>Includes various examples, e.g. in example dir+	<tt>examples/arrows/hparser/</tt>+	a validating parser, which can be used as a starting point for+	a HXT command line application.+      </li>+      <li>Provides a HUnit test <code>HUnitTest</code> for testing+	and demonstration of the available set of filters.+      </li>+      <li>Includes an <a href="http://www.haskell.org/arrows/">arrow interface</a> with type classes and+	overloading for a more flexible use of the filter technique.+      </li>+    </ul>+    <p>+      A darcs repository is available under <a href="http://darcs.fh-wedel.de/hxt">http://darcs.fh-wedel.de/hxt</a>.+    </p>+    <a name="install"></a>+    <h3>Installation</h3>+      +    <p>+      Before installing this version, install the <a href="http://www.haskell.org/">Haskell HTTP module</a>.+      For a quick install with Cabal execute the following commands in+      <tt>.../HXT-7.1</tt>+    </p>+    <pre>+    make setup+    ./setup configure --ghc+    ./setup build+    ./setup install		# with root privileges+    </pre>+    <p>+      A quick test of the example programs:+    </p>+    <pre>+    cd examples+    make all+    make test+    </pre>+    <p>+      Installation without Cabal with GNU make:+    </p>+    <pre>+    make all+    make install               # with root privileges+    </pre>++    <a name="change"></a>+    <h3>Change history</h3>+    <ul>+      <li>In <a href="HXT-7.1.tar.gz">Version 7.1</a>+	<ul>+	  <li>Version control changed from CVS to darcs.+	    darcs repository is available under+	    <tt><a href="http://darcs.fh-wedel.de/hxt/">http://darcs.fh-wedel.de/hxt/</a></tt>.+	  </li>+	  <li><tt>deepSeq</tt> and <tt>strict</tt> added for <tt>XmlTree</tt>+	    and an arrow <tt>strictA</tt> for forcing the evaluation of a whole+	    XML tree. This sometimes saves space when applied after document input,+	    DTD processing and validation.+	  </li>+	  <li>Typeable instances added for all DOM data types.</li>+	  <li>HTTP access via curl extended to handle automatic redirects</li>+	</ul>+      </li>+      <li>In <a href="HXT-7.0.tar.gz">Version 7.0</a>+	<ul>+	  <li>New integrated XSLT transformer module. The example+	    parser (<tt>examples/arrows/hparser</tt>) is extended to act as an XSLT transformer.+	  </li>+	  <li>Errors concerning HTML parsing and implict closing of+	    elements have been fixed.+	  </li>+	  <li>Some minor changes of and additions to the arrow API.+	  </li>+	  <li>New functions <tt>readString</tt> and+	    <tt>readFromString</tt> for reading documents from Haskell+	    strings the same way as reading external documents with <tt>readDocument</tt>.+	  </li>+	</ul>+      </li>+      <li>In <a href="HXT-6.1.tar.gz">Version 6.1</a>+	<ul>+	  <li>HXT 6.1. contains only changes in the cabal installation process for+	    working with the <a href="http://www.haskell.org/http/">Haskell HTTP module</a> in tar archive http-20060707.tgz.+	    This module no longer depends on <a href="http://www.haskell.org/crypto/">The Haskell Cryptographic Library</a>,+	    and <a href="http://www.n-heptane.com/nhlab/">NewBinary package</a>.+	  </li>+	</ul>+      </li>+      <li>In <a href="HXT-6.0.tar.gz">Version 6.0</a>+	<ul>+	  <li>The arrow interface has changed slightly, especially the handling of user defined states in the state and IO arrows has been simplified.+	    This is the main reason for a 6.0 version.+	  </li>+	  <li>The XPath arrows have been extended.+	    There are arrows not only for selecting nodes via an XPath expression, but also+	    for processing and modifying all nodes selected+	    by an XPath expressions (see module Text.XML.HXT.Arrow.XmlNodeSet).+	  </li>+	  <li>Separation of the API documentation into two documents, one for the+	    old <a href="./hdoc_filter/index.html">Filter API</a>+	    and a separate one for the <a href="./hdoc_arrow/index.html">Arrow API</a>.+	    The <a href="./hdoc/index.htm">complete API documentation</a> is still available.+	  </li>+	  <li>DTD processing for the arrow part is done completely by arrow based routines.+	  </li>+	  <li>Cabal config file and dependencies change to work with ghc 6.4.2.+	</ul>+      </li>+      <li>In <a href="HXT-5.5.tar.gz">Version 5.5</a>+	<ul>+	  <li>Changes in file path and default base URI handling.+	    This release compiles and runs (at least) under Windows XP,+	    Cygwin (DLL 1.5.19-4 release)+	    and ghc 6.4.1.+	  </li>+	</ul>+      </li>+      <li>In <a href="HXT-5.4.tar.gz">Version 5.4</a>+	<ul>+	  <li>Bug fix in parameter entity substitution for external+	    parameter entities.+	  </li>+	</ul>+      </li>+      <li>In <a href="HXT-5.3.tar.gz">Version 5.3</a>+	<ul>+	  <li>+	    Documentation and usage examples for the new arrow interface+	    of the toolbox: <em>A Cookbook for the Haskell+	      XML Toolbox with Examples for Processing RDF Documents</em>+	    (<a href="cookbook/doc/thesis.pdf">PDF-document</a>).+	  </li>+	  <li>Integration of <a href="http://www.relaxng.org/">Relax NG</a> schema validator into the+	    toolbox.+	    A usage example is included in the+	    <tt>examples/arrows/hparser/HXmlParser.hs</tt> source.</li>+	  <li>Some data structure changes made for runtime and space+	    optimization.</li>+	  <li>Parameter entity substitution reworked because of bugs in+	    nested and recursive parameter entity substitution.</li>+	</ul>+      </li>+      <li>In <a href="HXT-5.2.tar.gz">Version 5.2</a>+	<ul>+	  <li>Bug fix with entity substitution of nested+	    external parameter entities in DTDs.</li>+	  <li>Some minor changes in the arrow interface.</li>+	</ul>+      </li>+      <li>In <a href="HXT-5.01.tar.gz">Version 5.01</a>+	<ul>+	  <li>Sources ported to work with ghc-6.4 and ghc-6.4 is required.+	    Please use toolbox versions &lt;= 5.00 for older ghc's.</li>+	  <li>Native HTTP-modules removed from the distribution.+	    Install the latest version of the <a href="http://www.dtek.chalmers.se/~d00bring/haskell-xml-rpc/http.html">Haskell HTTP module</a>+	    before installing Version 5.01</li>+	  <li>Interface for the HTTP access via curl done with+	    routines form System.Process, so the deprecated module POSIX+	    is no longer needed.</li>+	  <li>Build and install can be done with Cabal. See README file for installation.</li>+	</ul>+      </li>+      <li>In <a href="HXT-5.00.tar.gz">Version 5.00</a>+	<ul>+	  <li>All compiled modules are packaged into+            a single ghc package <code>hxt</code>.</li>+          <li>A new interface for arrows is added.+            Modules in this interface are found in+	    <code>Control.Arrow</code>+            and <code>Text.XML.HXT.Arrow</code> (see <a+	      href="./hdoc/index.html">Haddock documentation</a>)</li>+	  <li>Examples for the usage of the arrow interface are found+	    in the examples/arrows subdirectory.</li>+	</ul>+      </li>+    </ul>++    +    <a name="limit"></a>+    <h3>Known problems and limitations</h3>+    <p>+      The parser has been tested with the XML Validation Suite form the+      W3C. The following problems have been encountered:+    </p>+    <ul>+      <li>Line numbers in XML parser do not always point to the+	correct position of the syntax error.</li>+      <li>Line numbers are not yet reported for validation constraint+	errors.+      </li>+      <li>The standalone document check is not yet implemented.</li>+      <li>The XSLT module does not support the complete XSLT standard.</li>+    </ul>++    <a name="port"></a>+    <h3>Portability</h3>+    <p>+      Portability to Windows based systems has not been tested very+      intensively, but did work on an XP system with the Cygwin tools installed.+      Development was done under Linux with GHC 6.4 with the -Wall+      flag. No warnings were issued, when compiling the toolbox sources.+    </p>++    <p>Haskell Modules and Libraries used in the toolbox</p>+    <ul>+      <li>Various <a href="http://www.haskell.org/ghc/">GHC</a>+	libraries including the+	<a href="http://www.cs.uu.nl/~daan/parsec.html">Parsec</a>+	parser combinator library.+      </li>+      <li>The+	<a href="http://www.haskell.org/http/">HTTP and Browser Modules</a>+      </li>+    </ul>++    <a name="rel"></a>+    <h3>Related work</h3>++    <ul>+      <li>Malcolm Wallace and Colin Runciman wrote+	<a href="http://www.cs.york.ac.uk/fp/HaXml/">HaXml</a>,+	a collection of utilities for using Haskell and XML together.+	The <i>Haskell XML Toolbox</i> is based on their idea+	of using filter combinators for processing XML with Haskell.+      </li>+      <li>Joe English wrote+	<a href="http://www.flightlab.com/~joe/hxml/">HXML</a>+	- a non-validating XML parser in Haskell.+	His+	<a href="http://www.flightlab.com/~joe/sgml/validate.html">idea</a>+	of validating XML by using derivatives of regular expressions+	was+	implemented in the validation functions of this software.+	Also his ideas and sources for navigateble trees are used+	in the hxpath modules.+      </li>+    </ul>++    <a name="feed"></a>+    <h3>Feedback</h3>++    <p>+      We are interested in hearing your feedback+      on our <i>Haskell XML Toolbox</i>, suggestions+      for improvements, comments and criticisms.<br>+    </p>+    <p>+      Mail address is+      <a+	 href="mailto:hxmltoolbox@fh-wedel.de?subject=Haskell%20XML%20Toolbox%20Feedback">hxmltoolbox@fh-wedel.de</a>+    </p>++    <hr>++    <table width="100%">+	<tr>+	  <td>+	    The <i>Haskell XML Toolbox</i>+	    is distributed under the+	    <a href="http://www.opensource.org/licenses/mit-license.php"><b>MIT License</b></a>.+	  </td>+	  <td align="right">+	    <a href="http://validator.w3.org/check/referer">+	      <img border="0" src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" height="31" width="88">+	    </a>+	  </td>+	</tr>+	<tr><td><i>Last modified: 2007-02-02</i></td><td>&nbsp;</td></tr>+</table>++  </body>+</html>
+ doc/relaxng/thesis.pdf view

binary file changed (absent → 1264838 bytes)

+ doc/thesis.pdf view

binary file changed (absent → 224575 bytes)

+ doc/xslt/thesis.pdf view

binary file changed (absent → 589129 bytes)

+ examples/Makefile view
@@ -0,0 +1,52 @@+# $Id: Makefile,v 1.15 2006/11/12 14:52:59 hxml Exp $+#+# Example Applications+#++HXT_HOME	= ..+VERSION		= 7.1+LASTVERSION	= 7.0++EXAMPLES	= mini hparser hxpath hfilter hunit hsvg dtd2haskell arrows+MORE_SAMPLES	= w3ctest blutgraetsche photoalbum+DIST		= $(HXT_HOME)/dist+DIST_DIR	= $(DIST)/examples++all		:+		if [ -f $(HXT_HOME)/lib/hxt/package.conf ] ; \+		then $(MAKE) alllocal ; \+		else $(MAKE) alldist ; \+		fi ++alllocal		:+		for i in $(EXAMPLES) ; \+			do $(MAKE) -C $$i PKGFLAGS="-ignore-package hxt-$(LASTVERSION) -package-conf `pwd`/$(HXT_HOME)/lib/hxt/package.conf -package hxt" all ; \+			done+alldist		:+		for i in $(EXAMPLES) ; \+			do $(MAKE) -C $$i all ; \+			done++test		:+		for i in $(EXAMPLES) ; do $(MAKE) -C $$i $@ ; done++dist		:+		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)+		for i in $(EXAMPLES) ; do $(MAKE) -C $$i dist DIST=../$(DIST_DIR) ; done+		[ -d $(DIST_DIR)/xhtml ] || mkdir -p $(DIST_DIR)/xhtml+		cp xhtml/xhtml*.dtd xhtml/xhtml*.ent xhtml/xhtml*.xml $(DIST_DIR)/xhtml+		cp Makefile $(DIST_DIR)++clean		:+		for i in $(EXAMPLES) ; do $(MAKE) -C $$i $@ ; done++RunTestCases	:+		$(MAKE) -C w3ctest $@++# under construction++hxslt/runXslt	: hxslt/runXslt.hs+		$(GHC) --make -o $@ $<++.PHONY		: all clean test dist RunTestCases+
+ examples/arrows/AGentleIntroductionToHXT/Makefile view
@@ -0,0 +1,59 @@+# $Id: Makefile,v 1.2 2006/11/17 17:16:24 hxml Exp $+#+# hello world application of Haskell XML Toolbox++HXT_HOME	= ../../..+PKGFLAGS	= +GHCFLAGS	= -W -O2+GHC		= ghc $(GHCFLAGS) $(PKGFLAGS)++DIST		= $(HXT_HOME)/dist/examples/arrows+DIST_DIR	= $(DIST)/AGentleIntroductionToHXT++src		= SimpleExamples.hs+prog		= SimpleExamples++tests		= \+		selectAllText \+		selectAllTextAndAltValues \+		selectAllTextAndRealAltValues \+		addRefIcon \+		helloWorld \+		helloWorld2 \+		imageTable \+		imageTable0 \+		imageTable1 \+		imageTable2 \+		imageTable3 \+		toAbsHRefs \+		toAbsRefs \+		toAbsRefs1++all		: $(prog)++force		:+		$(MAKE) distclean all++test		:+		for op in $(tests) ; \+		do \+			$(prog) $$op "http://www.haskell.org/" "-" ; \+		done++dist		:+		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)+		cp $(src) Makefile $(DIST_DIR)++clean		:+		rm -f *.o *.hi++distclean	:+		$(MAKE) clean+		rm -f mini hello++.PHONY		: all test dist clean distclean force++$(prog)		: $(src)+		$(GHC) --make -o $@ $<++
+ examples/arrows/AGentleIntroductionToHXT/SimpleExamples.hs view
@@ -0,0 +1,504 @@+{- |+   $Id: SimpleExamples.hs,v 1.3 2006/11/17 17:16:24 hxml Exp $+  +  The examples from the HXT tutorial at haskell.org "http://www.haskell.org/haskellwiki/HXT"+-}++module Main+where++import Text.XML.HXT.Arrow		-- import HXT stuff++import Data.List			-- auxiliary functions+import Data.Maybe++-- import Data.Tree.Class (Tree)++import System.IO+import System.Environment+import System.Console.GetOpt()+import System.Exit+++-- | call this program with 3 arguments,+-- the function name, see list of examples,+-- the input URL or file+-- and the output file, - for stdout+--+-- example: SimpleExamples selectAllText http://www.haskell.org/ -++main :: IO ()+main+    = do+      argv <- getArgs+      (al, fct, src, dst) <- cmdlineOpts argv+      [rc]  <- runX (application al fct src dst)+      if rc >= c_err+	 then exitWith (ExitFailure (-1))+	 else exitWith ExitSuccess++application	:: Attributes -> String -> String -> String -> IOSArrow b Int+application al fct src dst+    = readDocument al src+      >>>+      processChildren (processRootElement fct `when` isElem)+      >>>+      writeDocument ( (a_indent, v_1)+		      : (a_output_encoding, isoLatin1)+		      : al+		    ) dst+      >>>+      getErrStatus++-- | the dummy for the boring stuff of option evaluation,+-- usually done with 'System.Console.GetOpt'++cmdlineOpts 	:: [String] -> IO (Attributes, String, String, String)+cmdlineOpts argv+    = return ([(a_validate, v_0),(a_parse_html, v_1)], argv!!0, argv!!1, argv!!2)+++-- | the processing examples++examples	:: [ (String, IOSArrow XmlTree XmlTree) ]+examples+    = [ ( "selectAllText",	selectAllText	)+      , ( "selectAllTextAndAltValues",	selectAllTextAndAltValues	)+      , ( "selectAllTextAndRealAltValues",	selectAllTextAndRealAltValues	)+      , ( "addRefIcon",		addRefIcon	)+      , ( "helloWorld",		helloWorld	)+      , ( "helloWorld2",	helloWorld2	)+      , ( "imageTable",		imageTable	)+      , ( "imageTable0",	imageTable0	)+      , ( "imageTable1",	imageTable1	)+      , ( "imageTable2",	imageTable2	)+      , ( "imageTable3",	imageTable3	)+      , ( "toAbsHRefs",		toAbsHRefs	)+      , ( "toAbsRefs",		toAbsRefs	)+      , ( "toAbsRefs1",		toAbsRefs1	)+      ]++processRootElement	:: String -> IOSArrow XmlTree XmlTree+processRootElement fct+    = fromMaybe this . lookup fct $ examples++-- | selection arrows++selectAllText	:: ArrowXml a => a XmlTree XmlTree+selectAllText+    = selem "the-plain-text" [ deep isText ]		-- create a root element, neccessary for wellformed XML output++selectAllTextAndAltValues	:: ArrowXml a => a XmlTree XmlTree+selectAllTextAndAltValues+    = selem "the-plain-text"+      [ deep+	( isText+	  <+>+	  ( isElem >>> hasName "img"+	    >>>+	    getAttrValue "alt"+	    >>>+	    mkText+	  )+	)+      ]++selectAllTextAndRealAltValues	:: ArrowXml a => a XmlTree XmlTree+selectAllTextAndRealAltValues+    = selem "the-plain-text"+      [ deep+	( isText+	  <+>+	  ( isElem >>> hasName "img"+	    >>>+	    getAttrValue "alt"+	    >>>+	    isA significant+	    >>>+	    arr addBrackets+	    >>>+	    mkText+	  )+	)+      ]+    where+    significant :: String -> Bool+    significant = not . all (`elem` " \n\r\t")++    addBrackets :: String -> String+    addBrackets s+	=  " [[ " ++ s ++ " ]] "++-- | transformation arrows++addRefIcon	:: ArrowXml a => a XmlTree XmlTree+addRefIcon+    = processTopDown+      ( addImg+	`when`+	isExternalRef++      )+    where+    isExternalRef+	= isElem+	  >>>+	  hasName "a"+          >>>+	  hasAttr "href"+	  >>>+	  getAttrValue "href"+	  >>>+	  isA isExtRef+	where+	isExtRef+	    = isPrefixOf "http:"+    addImg+	= replaceChildren+	  ( getChildren+	    <+>+	    imgElement+	  )++    imgElement+	= mkelem "img"+	  [ sattr "src" "/icons/ref.png"+	  , sattr "alt" "external ref"+	  ] []++-- | construction examples++helloWorld	:: ArrowXml a => a XmlTree XmlTree+helloWorld+    = mkelem "html" []+      [ mkelem "head" []+	[ mkelem "title" []+	  [ txt "Hello World" ]+	]+      , mkelem "body"+	[ sattr "class" "haskell" ]+	[ mkelem "h1" []+	  [ txt "Hello World" ]+	]+      ]++helloWorld2	:: ArrowXml a => a XmlTree XmlTree+helloWorld2+    = selem "html"+      [ selem "head"+	[ selem "title"+	  [ txt "Hello World" ]+	]+      , mkelem "body"+	[ sattr "class" "haskell" ]+	[ selem "h1"+	  [ txt "Hello World" ]+	]+      ]++imageTable	:: ArrowXml a => a XmlTree XmlTree+imageTable+    = selem "html"+      [ selem "head"+	[ selem "title"+	  [ txt "Images in Page" ]+	]+      , selem "body"+	[ selem "h1"+	  [ txt "Images in Page" ]+	, selem "table"+	  [ collectImages+	    >>>+	    genTableRows+	  ]+	]+      ]+    where+    genTableRows+	= selem "tr"+	  [ selem "td"+	    [ getAttrValue "src" >>> mkText ]+	  ]++imageTable0	:: ArrowXml a => a XmlTree XmlTree+imageTable0+    = selem "html"+      [ pageHeader+      , selem "body"+	[ selem "h1"+	  [ txt "Images in Page" ]+	, selem "table"+	  [ collectImages+	    >>>+	    genTableRows+	  ]+	]+      ]+    where+    pageHeader+	= constA "<head><title>Images in Page</title></head>"+	  >>>+	  xread+    genTableRows+	= selem "tr"+	  [ selem "td"+	    [ getAttrValue "src" >>> mkText ]+	  ]++imageTable1	:: ArrowXml a => a XmlTree XmlTree+imageTable1+    = selem "html"+      [ selem "head"+	[ selem "title"+	  [ txt "Images in Page" ]+	]+      , selem "body"+	[ selem "h1"+	  [ txt "Images in Page" ]+	, selem "table"+	  [ collectImages+	    >>>+	    genTableRows+	  ]+	]+      ]++imageTable2	:: IOStateArrow s XmlTree XmlTree+imageTable2+    = selem "html"+      [ selem "head"+	[ selem "title"+	  [ txt "Images in Page" ]+	]+      , selem "body"+	[ selem "h1"+	  [ txt "Images in Page" ]+	, selem "table"+	  [ collectImages+	    >>>+	    mkAbsImageRef+	    >>>+	    genTableRows+	  ]+	]+      ]++imageTable3	:: IOStateArrow s XmlTree XmlTree+imageTable3+    = insertTreeTemplate+        pageTemplate				-- the page template+        [ hasText (=="ImageList") :-> images]	-- fill hole "ImageList" with image descriptions+    where+    images+	= collectImages+	  >>>+	  mkAbsImageRef+	  >>>+	  genTableRows++    pageTemplate+	= constA "<html><head><title>Images in Page</title></head><body><h1>Images in Page</h1><table>ImageList</table></body></html>"+	  >>>+	  xread++collectImages	:: ArrowXml a => a XmlTree XmlTree+collectImages+    = deep ( isElem >>> hasName "img" )++genTableRows	:: ArrowXml a => a XmlTree XmlTree+genTableRows+    = selem "tr"+      [ selem "td"			-- (1)+	[ this                      -- (1.1)+	]+      , selem "td"                  -- (2)+	[ getAttrValue "src"+	  >>>+	  mkText+	  >>>+	  mkelem "a"                -- (2.1)+	  [ attr "href" this ]+	  [ this ]+	]+      , selem "td"                  -- (3)+	[ ( getAttrValue "width"+	    &&&                     -- (3.1)+	    getAttrValue "height"+	  )+	  >>>+	  arr2 geometry             -- (3.2)+	  >>>+	  mkText+	]+      , selem "td"                  -- (4)+	[ getAttrValue "alt"+	  >>>+	  mkText+	]+      ]+    where+    geometry :: String -> String -> String+    geometry "" ""+	= ""+    geometry w h+	= w ++ "x" ++ h++mkAbsImageRef :: IOStateArrow s XmlTree XmlTree+mkAbsImageRef+    = processAttrl (mkAbsRef `when` hasName "src")+      where+      mkAbsRef+	  = replaceChildren+	    ( xshow getChildren+	      >>>+	      ( mkAbsURI `orElse` this )+	      >>>+	      mkText+	    )++toAbsHRefs	:: IOStateArrow s XmlTree XmlTree+toAbsHRefs+    = ( mkAbsHRefs $< computeBaseRef )+      >>>+      removeBaseElement++removeBaseElement	:: ArrowXml a => a XmlTree XmlTree+removeBaseElement+    = processChildren+      ( processChildren ( none+			  `when`+			  ( isElem >>> hasName "base" )+			)+       `when`+       ( isElem >>> hasName "head" )+      )++mkAbsHRefs	:: ArrowXml a => String -> a XmlTree XmlTree+mkAbsHRefs base+    = processTopDown editHRef+    where+    editHRef+	= processAttrl ( changeAttrValue (absHRef base)+			 `when`+			 hasName "href"+		       )+	  `when`+	  ( isElem >>> hasName "a" )+	where++	absHRef	:: String -> String -> String+	absHRef base url+	    = fromMaybe url . expandURIString url $ base++toAbsRefs	:: IOStateArrow s XmlTree XmlTree+toAbsRefs+    = ( mkAbsRefs $< computeBaseRef )+      >>>+      removeBaseElement++mkAbsRefs0	:: ArrowXml a => String -> a XmlTree XmlTree+mkAbsRefs0 base+    = processTopDown ( editRef "a" "href"+		       >>>+		       editRef "img" "src"+		       >>>+		       editRef "link" "href"+		       >>>+		       editRef "script" "src"+		     )+    where+    editRef en an+	= processAttrl ( changeAttrValue (absHRef base)+			 `when`+			 hasName an+		       )+	  `when`+	  ( isElem >>> hasName en )+	where++	absHRef	:: String -> String -> String+	absHRef base url+	    = fromMaybe url . expandURIString url $ base++mkAbsRefs	:: ArrowXml a => String -> a XmlTree XmlTree+mkAbsRefs base+    = processTopDown editRefs+    where+    editRefs+	= seqA . map (uncurry editRef)+	  $+	  [ ("a", "href")+	  , ("img", "src")+	  , ("link", "href")+	  , ("script", "src")	    -- and more+	  ]++    editRef en an+	= processAttrl ( changeAttrValue (absHRef base)+			 `when`+			 hasName an+		       )+	  `when`+	  ( isElem >>> hasName en )+	where++	absHRef	:: String -> String -> String+	absHRef base url+	    = fromMaybe url . expandURIString url $ base++computeBaseRef	:: IOStateArrow s XmlTree String+computeBaseRef+    = ( ( ( isElem >>> hasName "html"+	    >>>+	    getChildren+	    >>>+	    isElem >>> hasName "head"+	    >>>+	    getChildren+	    >>>+	    isElem >>> hasName "base"+	    >>>+	    getAttrValue "href"+	  )+	  &&&+	  getBaseURI+	)+	>>> expandURI+      )+      `orElse` getBaseURI+++getDescendends :: ArrowXml a => [String] -> a XmlTree XmlTree+getDescendends+    = foldl1 (\ x y -> x >>> getChildren >>> y)+      .+      map (\ n -> isElem >>> hasName n)++computeBaseRef1	:: IOStateArrow s XmlTree String+computeBaseRef1+    = ( ( ( getDescendends ["html","head","base"]+	    >>>+	    getAttrValue "href"+	  )+	  &&&+	  getBaseURI+	)+	>>> expandURI+      )+      `orElse` getBaseURI++computeBaseRef2	:: IOStateArrow s XmlTree String+computeBaseRef2+    = ( ( xshow (getXPathTrees "/html/head/base@href")+	  &&&+	  getBaseURI+	)+	>>> expandURI+      )+      `orElse` getBaseURI++toAbsRefs1	:: IOStateArrow s XmlTree XmlTree+toAbsRefs1+    = ( mkAbsRefs $< computeBaseRef1 )+      >>>+      removeBaseElement
+ examples/arrows/HelloWorld/HelloWorld.hs view
@@ -0,0 +1,22 @@+module Main+where++import Text.XML.HXT.Arrow+import System.Exit++main	:: IO()+main+    = do+      [rc] <- runX ( readDocument [ (a_trace, "1")+				  ] "hello.xml"+		     >>>+		     writeDocument [ (a_output_encoding, isoLatin1)+				   ] "-"+		     >>>+		     getErrStatus+		   )+      exitWith ( if rc >= c_err+		 then ExitFailure 1+		 else ExitSuccess+	       )+      
+ examples/arrows/HelloWorld/Makefile view
@@ -0,0 +1,40 @@+# $Id: Makefile,v 1.3 2005/04/14 12:52:50 hxml Exp $+#+# hello world application of Haskell XML Toolbox++HXT_HOME	= ../../..+PKGFLAGS	= +GHCFLAGS	= -Wall -O2+GHC		= ghc $(GHCFLAGS) $(PKGFLAGS)++DIST		= $(HXT_HOME)/dist/examples/arrows+DIST_DIR	= $(DIST)/HelloWorld++all		: mini hello++force		:+		$(MAKE) distclean all++test		:+		./mini+		./hello++dist		:+		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)+		cp Mini.hs HelloWorld.hs hello.xml Makefile $(DIST_DIR)++clean		:+		rm -f *.o *.hi++distclean	:+		$(MAKE) clean+		rm -f mini hello++.PHONY		: all test dist clean distclean force++hello		: HelloWorld.hs+		$(GHC) --make -o $@ $<++mini		: Mini.hs+		$(GHC) --make -o $@ $<+
+ examples/arrows/HelloWorld/Mini.hs view
@@ -0,0 +1,15 @@+module Main+where++import Text.XML.HXT.Arrow++main	:: IO()+main+    = do+      runX ( readDocument [ ] "hello.xml"+	     >>>+	     writeDocument [ ] "bye.xml"+	   )+      return ()++      
+ examples/arrows/HelloWorld/hello.xml view
@@ -0,0 +1,4 @@+<?xml version="1.0"?>+<hello>+  Hello World!+</hello>
+ examples/arrows/Makefile view
@@ -0,0 +1,32 @@+# $Id: Makefile,v 1.9 2006/11/12 14:52:59 hxml Exp $+#+# Example Applications+#++EXAMPLES	= \+		HelloWorld hparser hunit hxpath dtd2hxt absurls \+		hrelaxng \+		RelaxTestSuite \+		AGentleIntroductionToHXT++HXT_HOME	= ../..+PKGFLAGS	=+DIST		= $(HXT_HOME)/dist/examples+DIST_DIR	= $(DIST)/arrows++all		:+		for i in $(EXAMPLES) ; do $(MAKE) -C $$i PKGFLAGS="$(PKGFLAGS)" $@ ; done++test		:+		for i in $(EXAMPLES) ; do $(MAKE) -C $$i $@ ; done++dist		:+		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)+		for i in $(EXAMPLES) ; do $(MAKE) -C $$i dist DIST=../$(DIST_DIR) ; done+		cp Makefile $(DIST_DIR)++clean		:+		for i in $(EXAMPLES) ; do $(MAKE) -C $$i $@ ; done++.PHONY		: all clean test dist+
+ examples/arrows/RelaxTestSuite/Makefile view
@@ -0,0 +1,45 @@+# $Id: Makefile,v 1.2 2005/09/30 14:41:44 hxml Exp $++HXT_HOME	= ../../..+PKGFLAGS	= +GHCFLAGS	= -Wall -O2+GHC		= ghc $(GHCFLAGS) $(PKGFLAGS)++DIST		= $(HXT_HOME)/dist/examples/arrows+DIST_DIR	= $(DIST)/RelaxTestSuite++prog		= RunTestCases+modules		= RunTestCases.hs ReadDir.hs TestCases.hs++all		: $(prog)++prof		:+		ghc --make -o $(prog) -Wall -prof -auto-all -O -fglasgow-exts -ignore-package hxt -ignore-package HTTP -i../../../src $(prog).hs++local		:+		ghc --make -o $(prog) $(GHCFLAGS) -fglasgow-exts -ignore-package hxt -i../../../src $(prog).hs++$(prog)		: $(modules)+		$(GHC) --make -o $@ $@.hs++force		:+		$(GHC) --make -o $(prog) $(prog).hs++testcases	= testCases+testarchive	= RelaxTestCases.tgz++test		: $(prog) $(testcases)+		$(prog) $(shell pwd)/$(testcases)++$(testcases)	: $(testarchive)+		tar xvzf $(testarchive)+		touch $(testcases)++dist		:+		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)+		cp Makefile $(modules) $(testarchive) $(DIST_DIR)++clean		:+		rm -f $(prog) *.o *.hi++# eof ------------------------------------------------------------
+ examples/arrows/RelaxTestSuite/ReadDir.hs view
@@ -0,0 +1,78 @@+{- |+   Read a complete directory hierarchy and return it as a tree.+   Copied and modified from Peter Simons (<http://cryp.to/>).++   $Id: ReadDir.hs,v 1.1 2005/09/02 17:09:38 hxml Exp $+   +-}++module ReadDir+    ( Entry(..)+    , readDir+    )++where++import System.Directory+  ( getDirectoryContents+  , doesDirectoryExist+  )+import Data.List+  ( find+  , isSuffixOf+  )+import Maybe+  ( fromMaybe )+++data Entry = Dir [Entry] -- ^ Directory with a list of subdirectories and files+           | DirContent FilePath [FilePath] -- ^ Relax NG schema and list of XML documents+     deriving Show+++-- ------------------------------------------------------------++-- |+-- Read the complete directory hierarchy starting at the FilePath given by the first +-- parameter and return a tree representing it. Directories contain their+-- sub-entries in alphabetic order.+--+-- Each 'DirContent' represents a Relax NG schema and all XML Documents+-- in the directory.+--+-- The function may throw exceptions when IO fails.++readDir :: FilePath -> FilePath -> IO Entry+readDir pre p+  = do +    dir     <- getDirectoryContents $ pre ++ "/" ++ p+    entries <- getEntries $ clean [".", "..", "CVS"] dir+    return $ Dir entries+  where+  getEntries :: [FilePath] -> IO [Entry]+  getEntries xs+    = do+      dirs     <- mapM toEntryDir xs+      files    <- mapM toEntryFiles xs+      xmlfiles <- return $ [ f | f <- files, ".xml" `isSuffixOf` f]+      rngfile  <- return $ fromMaybe "" $ find (".rng" `isSuffixOf`) files+      return $ if rngfile /= ""+              then (DirContent rngfile xmlfiles):dirs+              else dirs+  +  toEntryDir :: FilePath -> IO Entry+  toEntryDir x = do+              isDir <- doesDirectoryExist $ path ++ "/" ++ x+              if isDir then readDir path x else return $ Dir []+              where path = pre ++ "/" ++ p              +  +  toEntryFiles :: FilePath -> IO FilePath+  toEntryFiles x = do+                  isDir <- doesDirectoryExist path+                  return $ if isDir then "" else path +              where path = pre ++ p ++ "/" ++ x              +  +  clean :: [String] -> [FilePath] -> [FilePath]+  clean ver xs = [ x | x <- xs, not $ elem x ver]++-- ------------------------------------------------------------
+ examples/arrows/RelaxTestSuite/RelaxTestCases.tgz view

binary file changed (absent → 25970 bytes)

+ examples/arrows/RelaxTestSuite/RunTestCases.hs view
@@ -0,0 +1,25 @@+-- |+-- Simple example program to run the Relax NG testsuite.+-- The program argument must be the absolute!!! path to the directory+-- containing the testcases.+--+-- $Id: RunTestCases.hs,v 1.1 2005/09/02 17:09:38 hxml Exp $++module Main+where++import TestCases++import System.Environment++-- ------------------------------------------------------------++main :: IO ()+main = do+       argv <- getArgs+       res  <- runTest $ if length argv > 0 +                         then head argv+                         else "./testCases"+       putStrLn $ show res++-- ------------------------------------------------------------
+ examples/arrows/RelaxTestSuite/TestCases.hs view
@@ -0,0 +1,87 @@+-- |+-- run the Relax NG Testsuite created be James Clark (<http://www.relaxng.org/#test-suites>)+-- +-- $Id: TestCases.hs,v 1.2 2005/09/30 14:41:44 hxml Exp $++module TestCases+  ( runTest )+where++import Text.XML.HXT.RelaxNG.Validator+import Text.XML.HXT.RelaxNG.Schema+import Text.XML.HXT.Arrow +import Text.XML.HXT.Parser	( formatXmlTree )   ++import Test.HUnit+import Data.List +  ( isSuffixOf )++import ReadDir++-- ------------------------------------------------------------++{- | run the Relax NG Testsuite++   * 1.parameter  :  Directory containing the testcases+   +   - return  : HUnit statistics+   +example test program:++> main :: IO ()+> main = do+>        res <- runTest "./testCases"+>        putStrLn $ show res++-}  ++runTest :: FilePath ->  IO Counts+runTest filePath+    = do+      dir     <- readDir filePath ""+      runTestTT $ TestList $ generateTestCases [] [dir] relaxSchemaTree+++generateTestCases :: Attributes -> [Entry] -> XmlTree -> [Test]++generateTestCases _  [] _+    = []++generateTestCases _  [ DirContent "" _ ] _+    = []++generateTestCases al [ DirContent rngFile [] ] spezi+    = [generateTestCase al rngFile "" spezi]++generateTestCases al [ DirContent rngFile xmlFiles ] spezi+    = map (\x -> generateTestCase al rngFile x spezi) xmlFiles++generateTestCases al [ Dir xs ] spezi+    = generateTestCases al xs spezi++generateTestCases al (x:xs) spezi+    = generateTestCases al [x] spezi ++ generateTestCases al xs spezi++ +generateTestCase :: Attributes -> FilePath -> FilePath -> XmlTree -> Test+generateTestCase al rngFile xmlFile spezi+  = TestLabel formatLabel $ +    TestCase $  +    do+    res <- runX $ constA spezi +                  >>> +                  validateWithSpezification al xmlFile rngFile+    assertBool (formatOutput res) +               ( if ("i.rng" `isSuffixOf` rngFile) +                 then not (null res)					-- the result of an incorrect schema must not be an empty list of errors+		 else ("i.xml" `isSuffixOf` xmlFile) == not (null res)+									-- correct schema, but incorrect document:+									-- the result of in incorrect xml document+									-- must not be an empty list of errors+               )+    where+    formatLabel  = "Schema=" ++ rngFile ++ +                   (if xmlFile /= "" then ", instanz=" ++ xmlFile else "")+    formatOutput = concat . map formatXmlTree++-- ------------------------------------------------------------
+ examples/arrows/absurls/AbsURIs.hs view
@@ -0,0 +1,132 @@+-- ------------------------------------------------------------++{- |+   Module     : AbsURIs+   Copyright  : Copyright (C) 2005 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt+   Maintainer : uwe@fh-wedel.de+   Stability  : experimental+   Portability: portable+   Version    : $Id: AbsURIs.hs,v 1.1 2005/05/12 16:41:38 hxml Exp $++AbsURIs - Conversion references into absolute URIs in HTML pages++The commandline interface+-}++-- ------------------------------------------------------------++module Main+where++import Text.XML.HXT.Arrow		-- import all stuff for parsing, validating, and transforming XML++import System.IO			-- import the IO and commandline option stuff+import System.Environment+import System.Console.GetOpt+import System.Exit++import Data.Maybe++import ProcessDocument++-- ------------------------------------------------------------++-- |+-- the main program of the Haskell XML Validating Parser++main :: IO ()+main+    = do+      argv <- getArgs					-- get the commandline arguments+      (al, src) <- cmdlineOpts argv			-- and evaluate them, return a key-value list+      [rc]  <- runX (parser al src)			-- run the parser arrow+      exitProg (rc >= c_err)				-- set return code and terminate++-- ------------------------------------------------------------++exitProg	:: Bool -> IO a+exitProg True	= exitWith (ExitFailure (-1))+exitProg False	= exitWith ExitSuccess++-- ------------------------------------------------------------++-- |+-- the /real/ main program+--+-- get wellformed document, validates document, propagates and check namespaces+-- and controls output++parser	:: Attributes -> String -> IOSArrow b Int+parser al src+    = readDocument ([(a_parse_html, v_1)] ++ al) src+      >>>+      traceMsg 1 "start processing"+      >>>+      processDocument+      >>>+      traceMsg 1 "processing finished"+      >>>+      traceSource+      >>>+      traceTree+      >>>+      writeDocument al "-" `whenNot` hasAttr "no-output"+      >>>+      getErrStatus++-- ------------------------------------------------------------+--+-- the options definition part+-- see doc for System.Console.GetOpt++progName	:: String+progName	= "AbsURIs"+    +options 	:: [OptDescr (String, String)]+options+    = generalOptions+      +++      selectOptions [a_trace, a_proxy, a_use_curl, a_issue_warnings, a_do_not_issue_warnings, a_do_not_use_curl, a_options_curl, a_encoding] inputOptions+      +++      outputOptions+      +++      showOptions++usage		:: [String] -> IO a+usage errl+    | null errl+	= do+	  hPutStrLn stdout use+	  exitProg False+    | otherwise+	= do+	  hPutStrLn stderr (concat errl ++ "\n" ++ use)+	  exitProg True+    where+    header = progName ++ " - Convert all references in an HTML document into absolute URIs\n\n" +++             "Usage: " ++ progName ++ " [OPTION...] [URI or FILE]"+    use    = usageInfo header options++cmdlineOpts 	:: [String] -> IO (Attributes, String)+cmdlineOpts argv+    = case (getOpt Permute options argv) of+      (ol,n,[])+	  -> do+	     sa <- src n+	     help (lookup a_help ol) sa+	     return (ol, sa)+      (_,_,errs)+	  -> usage errs+    where+    src []	= return []+    src [uri]	= return uri+    src _	= usage ["only one input uri or file allowed\n"]++    help (Just _) _	= usage []+    help Nothing []	= usage ["no input uri or file given\n"]+    help Nothing _	= return ()++-- ------------------------------------------------------------
+ examples/arrows/absurls/Makefile view
@@ -0,0 +1,39 @@+# $Id: Makefile,v 1.1 2005/05/12 16:41:38 hxml Exp $++HXT_HOME	= ../../..+PKGFLAGS	= +GHCFLAGS	= -Wall -O2+GHC		= ghc $(GHCFLAGS) $(PKGFLAGS)++DIST		= $(HXT_HOME)/dist/examples/arrows+DIST_DIR	= $(DIST)/absurls++prog	= AbsURIs++all	: $(prog)++AbsURIs	: AbsURIs.hs ProcessDocument.hs+	$(GHC) --make -o $@ $<++force		:+	$(GHC) --make -o $(prog) $(prog).hs++test		: $(prog)+		@echo "===> run a few simple test cases"+		$(MAKE) test0++EX		= ./lousy.html++test0		:+		@echo "===> the source of a lousy html document" ; echo ; sleep 2+		cat $(EX)+		@sleep 2 ; echo ; echo "===> all refs (href, src attributes) are transformed into absolute URIs with respect to the base element" ; echo ; sleep 2+		$(prog) --trace=0 --encoding=ISO-8859-1 --output-encoding=ISO-8859-1 --indent --do-not-issue-warnings $(EX)+		@echo++dist		:+		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)+		cp $(EX) Makefile $(prog).hs ProcessDocument.hs $(DIST_DIR)++clean		:+		rm -f $(prog) *.o *.hi
+ examples/arrows/absurls/ProcessDocument.hs view
@@ -0,0 +1,92 @@+-- ------------------------------------------------------------++{- |+   Module     : ProcessDocument+   Copyright  : Copyright (C) 2005 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt+   Maintainer : uwe@fh-wedel.de+   Stability  : experimental+   Portability: portable+   Version    : $Id: ProcessDocument.hs,v 1.2 2005/05/15 17:01:04 hxml Exp $++AbsURIs - Conversion references into absolute URIs in HTML pages++The REAL processing functions+-}++-- ------------------------------------------------------------++module ProcessDocument+    ( processDocument )+where++import Text.XML.HXT.Arrow		-- import all stuff for parsing, validating, and transforming XML++import Data.Maybe++-- ------------------------------------------------------------+++-- simple example of a processing arrow++processDocument	:: IOSArrow XmlTree XmlTree+processDocument+    = processChildren (mkAbs `when` isElem)+      where+      mkAbs = mkAbsURIs $< compBase++compBase	:: IOSArrow XmlTree String+compBase+    = single searchBaseElem	-- search <base href="..."> in <head> element (only for wrong input: make the arrow deterministic)+      `orElse`+      getBaseURI		-- use document base+    where+    searchBaseElem+	= hasName "html"+	  >>> getChildren+          >>> hasName "head"+          >>> getChildren+	  >>> hasName "base"+	  >>> getAttrValue "href"+	  >>> mkAbsURI++mkAbsURIs	:: String -> IOSArrow XmlTree XmlTree+mkAbsURIs base+    = processTopDown editURIs		-- edit all refs in documnt+      where++      -- build the edit filter from the list of element-attribute names++      editURIs+	  = seqA . map (uncurry mkAbs) $ hrefAttrs++      -- HTML elements and attributes, that contain references (possibly not yet complete)++      hrefAttrs+	  = [ ("a",		"href"	)+	    , ("img",		"src"	)+	    , ("frame",		"src"	)+	    , ("iframe",	"src"	)+	    , ("link",		"href"	)+	    , ("script",	"src"	)+	    ]++      -- change the reference in attribute attrName of element elemName++      mkAbs elemName attrName+	  = processAttrl ( changeAttrValue (mkAbsURIString base)+			   `when`+			   hasName attrName+			 )+	    `when`+	    hasName elemName++-- | compute an absolute URI, if not possible leave URI unchanged++mkAbsURIString	:: String -> String -> String+mkAbsURIString base uri+    = fromMaybe uri . expandURIString uri $ base++-- ------------------------------------------------------------
+ examples/arrows/absurls/lousy.html view
@@ -0,0 +1,27 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<html>+  <head>+    <title>A HTML Documents with some Errors</title>+    <base href="http://localhost/">+  </head>++  <body>+    <h1>HTML+    <h2>html+	<p>some text and a &xxx;+	  <p><a href="more.html">more</a> <a href="text.html">text</a>+	    </p+    <img alt='&lt; &yyy; &gt;' src="abc.gif">+    <table border>+    <tr><td>1<td>2<td>3+    </table>+++    <hr>+    <address><a href="mailto:uwe@muehle.welt.all">Uwe+		Schmidt</a></address>+<!-- Created: Tue Apr 29 16:07:57 CEST 2003 -->+<!-- hhmts start -->+Last modified: Mon May 12 13:11:29 CEST 2003+<!-- hhmts end -->+</html>
+ examples/arrows/dtd2hxt/DTDtoHXT.hs view
@@ -0,0 +1,351 @@+-- |+-- DTDtoHXT - A program for generating access functions for the Haskell XML Toolbox+-- from a DTD (Arrow Version)+--+-- Author : Uwe Schmidt+--+-- Version : $Id: DTDtoHXT.hs,v 1.3 2005/04/14 12:52:50 hxml Exp $+--+-- this program may be used as example main program for the+-- Haskell XML Toolbox++module Main+where++import Text.XML.HXT.Arrow		-- import all stuff for parsing, validating, and transforming XML++import System.IO			-- import the IO and commandline option stuff+import System.Environment+import System.Console.GetOpt+import System.Exit++import Data.Maybe+import Data.Char+import Data.List++-- ------------------------------------------------------------++-- |+-- the main program++main :: IO ()+main+    = do+      argv <- getArgs					-- get the commandline arguments+      (al, src) <- cmdlineOpts argv				-- and evaluate them, return a key-value list+      [rc] <- runX (dtd2hxt al src)+      exitProg (rc >= c_err)++-- ------------------------------------------------------------++exitProg	:: Bool -> IO a+exitProg True	= exitWith (ExitFailure (-1))+exitProg False	= exitWith ExitSuccess++-- ------------------------------------------------------------+--+-- options++uppercaseInitials, namespaceAware, prefixUnderline	:: String++uppercaseInitials	= "uppercase-initials"+namespaceAware		= "namespace-aware"+prefixUnderline		= "prefix-underline"++-- name prefixes++tagPrefix, attPrefix, nsPrefix, isPrefix, mkPrefix, hasPrefix, getPrefix+ , mkAttPrefix, mkSAttPrefix+ , nsDefault	:: String++tagPrefix	= "tag"+attPrefix	= "attr"+nsPrefix	= "ns"+isPrefix	= "is"+mkPrefix	= "e"+hasPrefix	= "has"+getPrefix	= "get"+mkAttPrefix	= "a"+mkSAttPrefix	= "sa"+nsDefault	= "default"++-- ------------------------------------------------------------++-- |+-- the /real/ main program+--+-- get wellformed document, validates document, but not canonicalize+-- (this would remove the DTD),+-- and controls output++dtd2hxt	:: Attributes -> String -> IOSArrow b Int+dtd2hxt al src+    = readDocument ((a_canonicalize, v_0) : al) src+      >>>+      traceMsg 1 "start processing DTD"+      >>>+      processChildren (isDTD `guards` genHXT)+      >>>+      traceMsg 1 "processing finished"+      >>>+      traceSource+      >>>+      traceTree+      >>>+      writeDocument ((a_output_xml, v_0) : al) (fromMaybe "" (lookup a_output_file al))+      >>>+      getErrStatus+    where+    genHXT+	= catA $ map (>>> mkText) $+	  [ getModuleName				-- the module header+	    >>>+	    arr genModHead++	  , constA $ comm "namespace declarations"++	  , getNSAttr					-- namespace constants+	    >>>						-- declared as "xmlns" or "xmlns:<ns>" attribute with #FIXED values+	    arr2 genNSCode++	  , constA $ comm "element arrows"++	  , getElems >>. sort				-- element processing+	    >>>+	    arr genElemCode++          , getAttrs >>. ( sort . nub )			-- attribute processing+            >>>+	    arr genAttrCode++          , getModuleName				-- module footer+            >>> arr genModFoot+	  ]++    -- auxiliary arrows --------------------------------------------------++    getModuleName	:: (ArrowXml a, ArrowDTD a) => a XmlTree String+    getModuleName+	= isDTDDoctype+	  >>>+	  getDTDAttrValue a_name+	  >>>+	  arr moduleName++    -- filter namespace attributes ----------------------------------------++    getNSAttr	::  (ArrowXml a, ArrowDTD a) => a XmlTree (String, String)+    getNSAttr+	= deep isDTDAttlist+	  >>>+	  ( ( getDTDAttrValue a_value >>> isA (\ s -> s == "xmlns" || "xmlns:" `isPrefixOf` s)+	    )+	    `guards`+	    ( ( getDTDAttrValue a_kind >>> isA (== k_fixed)+	      )+	      `guards`+	      ( ( getDTDAttrValue a_value >>> arr (drop 6) )				-- remove "xmlns:" prefix+		&&&+		getDTDAttrValue a_default+	      )+	    )+	  )++    getElems	::  (ArrowXml a, ArrowDTD a) => a XmlTree String+    getElems+	= deep isDTDElement+	  >>>+	  getDTDAttrValue a_name++    getAttrs	::  (ArrowXml a, ArrowDTD a) => a XmlTree String+    getAttrs+	= deep isDTDAttlist+	  >>>+	  getDTDAttrValue a_value++    -- code generation ------------------------------------------------------------++    genModHead	:: String -> String+    genModHead rootElem+	= code [ sepl+	       , "--"+	       , "-- don't edit this module"+	       , "-- generated with " ++ progName+	       , "-- simple access function for Haskell XML Toolbox"+	       , "-- generated from DTD of document: " ++ show src+	       , ""+	       , "module " ++ rootElem ++ " ( module " ++ rootElem ++ " )"+	       , "where"+	       , ""+	       , "import           Text.XML.HXT.Arrow (XmlTree, ArrowXml, (>>>))"+	       , "import qualified Text.XML.HXT.Arrow as X (attr, eelem, getAttrValue, hasAttr, hasName, isElem, sattr)"+	       ]++    genNSCode	:: String -> String -> String+    genNSCode prefix ns+	= code [ ns' ++ "\t:: String"+	       , ns' ++ "\t=  " ++ show ns+	       ]+	where+	ns' = nsPrefix ++ nn (if null prefix then nsDefault else prefix)++    genElemCode	:: String -> String+    genElemCode	n+	= code [ comm ("arrows for element " ++ show n)+	       , tagN ++ "\t:: String"+	       , tagN ++ "\t=  " ++ show n+	       , ""+	       , isN  ++ "\t:: ArrowXml a => a XmlTree XmlTree"+	       , isN  ++ "\t=  X.isElem >>> X.hasName " ++ tagN+	       , ""+	       , mkN  ++ "\t:: ArrowXml a => a n XmlTree"+	       , mkN  ++ "\t=  X.eelem " ++ tagN+	       ]+	where+	tagN	= tagPrefix ++ nn n+	isN	= isPrefix  ++ nn n+	mkN	= mkPrefix  ++ nn n++    genAttrCode	:: String -> String+    genAttrCode	n+	= code [ comm ("arrows for attribute " ++ show n)+	       , attN ++ "\t:: String"+	       , attN ++ "\t=  " ++ show n+	       , ""+	       , hasN ++ "\t:: ArrowXml a => a XmlTree XmlTree"+	       , hasN ++ "\t=  X.hasAttr " ++ attN+	       , ""+	       , getN ++ "\t:: ArrowXml a => a XmlTree String"+	       , getN ++ "\t=  X.getAttrValue " ++ attN+	       , ""+	       , mkN  ++ "\t:: ArrowXml a => a n XmlTree -> a n XmlTree"+	       , mkN  ++ "\t=  X.attr " ++ attN+	       , ""+	       , mksN ++ "\t:: ArrowXml a => String -> a n XmlTree"+	       , mksN ++ "\t=  X.sattr " ++ attN+	       ]+	where+	attN	= attPrefix ++ nn n+	hasN	= hasPrefix  ++ nn n+	getN	= getPrefix  ++ nn n ++ nn "value"+	mkN	= mkAttPrefix ++ nn n+	mksN	= mkSAttPrefix ++ nn n++    genModFoot	:: String -> String+    genModFoot rootElem+	= comm ( "end of module " ++ rootElem)++    -- string manipulation --------------------------------------------------++    code	:: [String] -> String+    code	= concatMap (++ "\n")++    comm	:: String -> String+    comm cm	=  code [ "", sepl, "--", "-- " ++ cm, ""]++    sepl	:: String+    sepl	= "-- ----------------------------------------"++    moduleName	:: String -> String+    moduleName rootElem+	= modname . fromMaybe rootElem . lookup a_output_file $ al++    modname+	= (\ x -> toUpper (head x) : tail x)+	  . reverse+	  . (\ n -> if '.' `elem` n				-- remove extension+		    then drop 1 . dropWhile (/= '.') $ n+		    else n+	    )+	  . takeWhile (/= '/')					-- remove dir path+	  . reverse++    nn		:: String -> String+    nn+	= trInitial . concatMap nc				-- normalize names++    nc		:: Char -> String+    nc c+	| c `elem` ['a'..'z'] ++ ['A'..'Z'] ++ ['0'..'9'] ++ "_"	= [c]+	| c == ':' || c == '-'					= "_" +	| otherwise							= ("_" ++) . show . fromEnum $ c++    trInitial	:: String -> String+    trInitial str+	| null str	= str+	| underLn	= '_' : str+	| upperCs	= toUpper (head str) : tail str+	| otherwise	= str++    upperCs, underLn {-, nsAware -}	:: Bool+    upperCs	= isJust . lookup uppercaseInitials	$ al+    underLn	= isJust . lookup prefixUnderline	$ al+    {- nsAware 	= isJust . lookup namespaceAware	$ al -}++-- ------------------------------------------------------------+--+-- the boring option definition and evaluation part+--+-- see doc for System.Console.GetOpt++progName	:: String+progName	= "DTDtoHXT"+    +options 	:: [OptDescr (String, String)]+options+    = selectOptions [ a_help+		    ] generalOptions+      +++      selectOptions [ a_trace+		    , a_proxy+		    , a_use_curl+		    , a_options_curl+		    , a_encoding+		    , a_validate+		    , a_check_namespaces+		    ] inputOptions+      +++      selectOptions [ a_output_file+		    ] outputOptions+      +++      [ Option "u"	[prefixUnderline]	(NoArg	(prefixUnderline,   v_1))	"separate tag and attribute names with a '_'"+      , Option "U"	[uppercaseInitials]	(NoArg	(uppercaseInitials, v_1))	"transform the first char of tag and attribute names to uppercase"+      -- , Option "N"	[namespaceAware]	(NoArg	(namespaceAware,    v_1))	"filter are namespace aware, if namespace attributes occur in the DTD"+      ]+      +++      showOptions++usage		:: [String] -> IO a+usage errl+    | null errl+	= do+	  hPutStrLn stdout use+	  exitProg False+    | otherwise+	= do+	  hPutStrLn stderr (concat errl ++ "\n" ++ use)+	  exitProg True+    where+    header = "DTDtoHXml - Generation of access function for the Haskell XML Toolbox from a DTD\n" +++             "Usage: " ++ progName ++ " [OPTION...] [URI or FILE]"+    use    = usageInfo header options++cmdlineOpts 	:: [String] -> IO (Attributes, String)+cmdlineOpts argv+    = case (getOpt Permute options argv) of+      (ol,n,[]  )+	  -> do+	     sa <- src n+	     help (lookup a_help ol)+	     return (ol, sa)+      (_,_,errs)+	  -> usage errs+    where+    src [uri]	= return uri+    src []	= usage ["input file/uri missing"]+    src _	= usage ["only one input url or file allowed\n"]++    help Nothing	= return ()+    help (Just _)	= usage []++-- ------------------------------------------------------------
+ examples/arrows/dtd2hxt/Makefile view
@@ -0,0 +1,51 @@+# $Id: Makefile,v 1.4 2005/05/15 17:01:04 hxml Exp $++HXT_HOME	= ../../..+PKGFLAGS	= +GHCFLAGS	= -Wall -O2+GHC		= ghc $(GHCFLAGS) $(PKGFLAGS)++prog		= DTDtoHXT++all		: $(prog)++$(prog)		: $(prog).hs+		$(GHC) --make -o $@ $<++force		:+		$(GHC) --make -o $(prog) $(prog).hs++test		:+		@echo "===> run a few generation examples"+		$(MAKE) XHTML.o XHTML2.o+		@echo "===> the generated modules"+		ls -l XHTML*.hs XHTML*.o++EX1		= ../../xhtml/xhtml.xml+EX2		= ../../photoalbum/photos.xml++XHTML.o		: $(prog) $(EX1)+		@echo "===> generate a module for XHTML access function from the XHTML DTD with naming convention is<Elem>, get<Attr>, ..."+		$(prog) --output-file XHTML.hs --uppercase-initials $(EX1)+		$(GHC) -c XHTML.hs++XHTML2.o	: $(prog) $(EX1)+		@echo "===> generate a module for XHTML access function from the XHTML DTD with naming convention is_<elem>, get_<attr>, ..."+		$(prog) --output-file XHTML2.hs --prefix-underline $(EX1)+		$(GHC) -c XHTML2.hs++Photo.hs	: $(prog) $(EX2)+		$(prog) --output-file $@ --uppercase-initials $(EX2)+++DIST		= $(HXT_HOME)/dist/examples/arrows+DIST_DIR	= $(DIST)/dtd2hxt+DIST_FILES	= $(prog).hs Makefile++dist		:+		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)+		cp $(DIST_FILES) $(DIST_DIR)++clean		:+		rm -f $(prog) XHTML*.hs *.o *.hi+
+ examples/arrows/hparser/HXmlParser.hs view
@@ -0,0 +1,171 @@+-- ------------------------------------------------------------++{- |+   Module     : HXmlParser+   Copyright  : Copyright (C) 2005 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt+   Maintainer : uwe@fh-wedel.de+   Stability  : experimental+   Portability: portable+   Version    : $Id: HXmlParser.hs,v 1.7 2006/11/09 20:27:41 hxml Exp $++HXmlParser - Validating XML Parser of the Haskell XML Toolbox++XML well-formed checker and validator.++this program may be used as example main program for the+arrow API of the Haskell XML Toolbox++commandline parameter evaluation and+and return code is the most complicated part+of this example application++-}++-- ------------------------------------------------------------++module Main+where++import Text.XML.HXT.Arrow		-- import all stuff for parsing, validating, and transforming XML++import System.IO			-- import the IO and commandline option stuff+import System.Environment+import System.Console.GetOpt+import System.Exit++import Data.Maybe++-- ------------------------------------------------------------++-- |+-- the main program of the Haskell XML Validating Parser++main :: IO ()+main+    = do+      argv <- getArgs					-- get the commandline arguments+      (al, src) <- cmdlineOpts argv			-- and evaluate them, return a key-value list+      [rc]  <- runX (parser al src)			-- run the parser arrow+      exitProg (rc >= c_err)				-- set return code and terminate++-- ------------------------------------------------------------++exitProg	:: Bool -> IO a+exitProg True	= exitWith (ExitFailure (-1))+exitProg False	= exitWith ExitSuccess++-- ------------------------------------------------------------++-- |+-- the /real/ main program+--+-- get wellformed document, validates document, propagates and check namespaces+-- and controls output++parser	:: Attributes -> String -> IOSArrow b Int+parser al src+    = readDocument al src+      >>>+      ( ( traceMsg 1 "start processing document"+	  >>>+	  processDocument al+	  >>>+	  traceMsg 1 "document processing finished"+	)+	`when`+	documentStatusOk+      )+      >>>+      traceSource+      >>>+      traceTree+      >>>+      writeDocument al (fromMaybe "-" . lookup a_output_file $ al) `whenNot` hasAttr "no-output"+      >>>+      getErrStatus++-- simple example of a processing arrow++processDocument	:: Attributes -> IOSArrow XmlTree XmlTree+processDocument al+    | applyXSLT+	= traceMsg 1 ("applying XSLT stylesheet " ++ show xsltUri)+	  >>>+	  xsltApplyStylesheetFromURI xsltUri+    | extractText+	= traceMsg 1 "selecting plain text"+	  >>>+	  processChildren (deep isText)+    | otherwise+	= this+    where+    applyXSLT	= hasEntry "xslt"	  $ al+    extractText	= optionIsSet "show-text" $ al+    xsltUri     = lookup1 "xslt"          $ al++-- ------------------------------------------------------------+--+-- the options definition part+-- see doc for System.Console.GetOpt++progName	:: String+progName	= "HXmlParser"+    +options 	:: [OptDescr (String, String)]+options+    = generalOptions+      +++      inputOptions+      +++      relaxOptions+      +++      outputOptions+      +++      [ Option "T"	["xslt"]		(ReqArg (att "xslt") "STYLESHEET")	"STYLESHEET is the uri of the XSLT stylesheet to be applied"+      , Option "q"	["no-output"]		(NoArg  ("no-output", "1"))		"no output of resulting document"+      , Option "x"	["show-text"]		(NoArg	("show-text", "1"))		"output only the raw text, remove all markup"+      ]+      +++      showOptions+    where+    att n v = (n, v)++usage		:: [String] -> IO a+usage errl+    | null errl+	= do+	  hPutStrLn stdout use+	  exitProg False+    | otherwise+	= do+	  hPutStrLn stderr (concat errl ++ "\n" ++ use)+	  exitProg True+    where+    header = "HXmlParser - Validating XML Parser of the Haskell XML Toolbox with Arrow Interface\n" +++             "XML well-formed checker, DTD validator, Relax NG validator and XSLT transformer.\n\n" +++             "Usage: " ++ progName ++ " [OPTION...] [URI or FILE]"+    use    = usageInfo header options++cmdlineOpts 	:: [String] -> IO (Attributes, String)+cmdlineOpts argv+    = case (getOpt Permute options argv) of+      (ol,n,[])+	  -> do+	     sa <- src n+	     help (lookup a_help ol) sa+	     return (ol, sa)+      (_,_,errs)+	  -> usage errs+    where+    src []	= return []+    src [uri]	= return uri+    src _	= usage ["only one input uri or file allowed\n"]++    help (Just _) _	= usage []+    help Nothing []	= usage ["no input uri or file given\n"]+    help Nothing _	= return ()++-- ------------------------------------------------------------
+ examples/arrows/hparser/Makefile view
@@ -0,0 +1,144 @@+# $Id: Makefile,v 1.9 2006/11/11 15:36:03 hxml Exp $++HXT_HOME	= ../../..+PKGFLAGS	= +GHCFLAGS	= -Wall -O2+GHC		= ghc $(GHCFLAGS) $(PKGFLAGS)++DIST		= $(HXT_HOME)/dist/examples/arrows+DIST_DIR	= $(DIST)/hparser++prog		= ./HXmlParser++all		: $(prog)++prof		:+		ghc --make -o $(prog) -Wall -prof -auto-all -O -fglasgow-exts -ignore-package hxt -ignore-package HTTP -i../../../src $(prog).hs++local		:+		ghc --make -o $(prog) -Wall -O -fglasgow-exts -ignore-package hxt -i../../../src $(prog).hs++$(prog)		: HXmlParser.hs+		$(GHC) --make -o $@ $<++force		:+		$(GHC) --make -o $(prog) $(prog).hs++test		: $(prog)+		@echo "===> run a few simple test cases with the validating parser"+		@echo "===> first see all command line options"+		$(prog) --help+		@echo+		$(MAKE) test0 test1 test2 test3 test4 test5 xslttest++EX1		= ./example1.xml+EXi		= ./invalid.xml+EX2		= ../../xhtml/xhtml.xml+EX3		= ./namespace0.xml+EX3a		= ./namespace1.xml+EX4		= ./lousy.html++EX		= $(wildcard example*.xml) $(wildcard lousy*.html) $(wildcard *valid*.xml *valid*.rng) $(wildcard namespace*.xml)++test0		:+		@echo "===> a 1. simple valid document"+		$(prog) $(EX1)+		@echo+		@echo "===> the dom tree of the same document (without any redundant whitespace)"+		$(prog) --show-tree --remove-whitespace $(EX1)+		@echo+		@echo "===> the next test case contains validation erors, it must fail"+		$(prog) --verbose $(EXi) || true+		@echo+		@echo "===> same source, but only wellformed check"+		$(prog) --do-not-validate $(EXi) || true+		@echo+		@echo "===> only validation, no output of an XHTML source"+		$(prog) --verbose --no-output $(EX2)+		@echo++test1		:+		@echo "===> the source of a very simple valid document" ; echo ; sleep 2+		cat $(EX1)+		@sleep 2 ; echo ; echo "===> parser will emit UTF-8" ; echo ; sleep 2+		$(prog) --output-encoding=UTF-8 $(EX1)+		@echo+		@sleep 2 ; echo ; echo "===> once again with ISO-8859-1 (latin1) output" ; echo ; sleep 2+		$(prog) --output-encoding=ISO-8859-1 $(EX1)+		@echo+		@sleep 2 ; echo ; echo "===> once again with US-ASCII output" ; echo ; sleep 2+		$(prog) --output-encoding=US-ASCII $(EX1)+		@echo+		@sleep 2 ; echo ; echo "===> once again with hdom tree output" ; echo ; sleep 2+		$(prog) --show-tree --output-encoding=ISO-8859-1 $(EX1)+		@echo+		@sleep 2 ; echo ; echo "===> once again, but without any markup" ; echo ; sleep 2+		$(prog) --show-text --output-encoding=ISO-8859-1 $(EX1)+		@echo++test2		:+		@echo "===> the source of a xhtml document" ; echo ; sleep 2+		cat $(EX2)+		@echo "that document has" `cat $(EX2) | wc -l` "lines"+		@sleep 2 ; echo ; echo "===> parser will validate this document and try to indent the output" ; echo ; sleep 2+		$(prog) --indent $(EX2)+		@sleep 2 ; echo ; echo "===> once again, but remove all markup" ; echo ; sleep 2+		$(prog) --show-text --remove-whitespace $(EX2)+		@sleep 2 ; echo ; echo "===> once again with hdom tree output" ; echo ; sleep 2+		$(prog) --show-tree --remove-whitespace $(EX2)++test3		:+		@echo "===> namespace processing examples" ; echo ; sleep 2+		@echo "===> namespace propagation test" ; echo ; sleep 2+		$(prog) --verbose --check-namespaces  --indent --output-encoding=ISO-8859-1 $(EX3)+		@echo+		@echo ; sleep 2 ; echo "===> namespace propagation test: tree output with attached namespaces" ; echo ; sleep 2+		$(prog) --verbose --check-namespaces  --remove-whitespace --show-tree --output-encoding=ISO-8859-1 $(EX3)+		@echo+		@echo ; sleep 2 ; echo "===> namespace validation test: this test produces namespace errors" ; echo ; sleep 2+		$(prog) --verbose --do-not-validate --check-namespaces --indent --output-encoding=ISO-8859-1 $(EX3a) || true+		@echo+++test4		:+		@echo "===> HTML parsing examples" ; echo ; sleep 2+		@echo "===> the source of a lousy html document" ; echo ; sleep 2+		cat $(EX4)+		@sleep 2 ; echo ; echo "===> parser accepts this document and tries to build a document tree" ; echo ; sleep 2+		$(prog) --indent --preserve-comment --parse-html $(EX4)+		@echo++test5		:+		@echo "===> Validate a valid xml file with respect to a valid Relax NG schema" ; echo ; sleep 1+		@echo "the XML document ./valid1.xml"+		@cat ./valid1.xml+		@echo "the Relax NG schema ./valid1.rng"+		@cat  ./valid1.rng+		@echo+		./$(prog) --relax-schema ./valid1.rng ./valid1.xml+		@echo+		@echo "===> Validate an  invalid xml file with respect to a valid Relax NG schema" ; echo ; sleep 1+		@echo "the invalid XML document ./invalid1.xml"+		@cat ./valid1.xml+		./$(prog) --relax-schema ./valid1.rng ./invalid1.xml || true+		@echo+		@echo "===> Incorrect Relax NG schema" ; echo ; sleep 1+		./$(prog) --relax-schema ./invalid2.rng ./valid1.xml || true+		@echo+		@echo "===> Incorrect Relax NG schema with two errors" ; echo ; sleep 1+		./$(prog) --relax-schema ./invalid3.rng ./valid1.xml || true+		@echo+++xslttest	:+		$(MAKE) -C xslt test++dist		:+		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)+		cp $(EX) Makefile $(prog).hs $(DIST_DIR)+		for i in xslt ; do $(MAKE) -C $$i dist DIST=../$(DIST_DIR) ; done+++clean		:+		rm -f $(prog) *.o *.hi+
+ examples/arrows/hparser/example1.xml view
@@ -0,0 +1,22 @@+<?xml version="1.0" encoding="ISO-8859-1" ?>++<!DOCTYPE a [+<!ATTLIST a  att1  NMTOKENS  #IMPLIED+             att2  ID        #REQUIRED>+<!ATTLIST b  btt2  ID        #REQUIRED+             btt3  IDREF     #REQUIRED>+<!ELEMENT a  (b, cü?)>+<!ELEMENT b  EMPTY>+<!ELEMENT cü (#PCDATA)>+]>++<?pi a processing instruction?>++<a att1=" test+          äöüß+          test "+   att2="root"+>+    <b btt2="b1" btt3="root"/>+    <cü>hello world äöüß test</cü>+</a>
+ examples/arrows/hparser/invalid.xml view
@@ -0,0 +1,13 @@+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>++<!DOCTYPE a [+<!ATTLIST a  att1  CDATA  #IMPLIED>+<!ELEMENT a  (z, c?)>+<!ELEMENT b  EMPTY>+<!ELEMENT c  (#PCDATA)>+]>++<a att2="test">+    <y/>+    <c>hello world</c>+</a>
+ examples/arrows/hparser/invalid1.xml view
@@ -0,0 +1,1 @@+<bar/>
+ examples/arrows/hparser/invalid2.rng view
@@ -0,0 +1,13 @@+<grammar xmlns:html="http://www.w3.org/TR/REC-html40" +         xmlns="http://relaxng.org/ns/structure/1.0" >+  <start>+    <element name="foo">+      <zeroOrMore>+        <group>+          <attribute name="bar"/>+          <attribute name="baz"/>+        </group>+      </zeroOrMore>+    </element>+  </start>+</grammar>
+ examples/arrows/hparser/invalid3.rng view
@@ -0,0 +1,19 @@+<grammar xmlns:html="http://www.w3.org/TR/REC-html40" +         xmlns="http://relaxng.org/ns/structure/1.0" >+  <start>+    <element name="foo">+      <zeroOrMore>+        <group>+          <attribute name="bar"/>+          <attribute name="baz"/>+        </group>+      </zeroOrMore>+    </element>+    <element name="bar">+      <group>+        <data type="token"/>+        <data type="token"/>+      </group>+    </element>+  </start>+</grammar>
+ examples/arrows/hparser/lousy.html view
@@ -0,0 +1,26 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<html>+  <head>+    <title>A HTML Documents with some Errors</title>+  </head>++  <body>+    <h1>HTML+    <h2>html+	<p>some text and a &xxx;+	  <p>more text+	    </p+    <img alt='&lt; &yyy; &gt;' src="abc.gif">+    <table border>+    <tr><td>1<td>2<td>3+    </table>+++    <hr>+    <address><a href="mailto:uwe@muehle.welt.all">Uwe+		Schmidt</a></address>+<!-- Created: Tue Apr 29 16:07:57 CEST 2003 -->+<!-- hhmts start -->+Last modified: Mon May 12 13:11:29 CEST 2003+<!-- hhmts end -->+</html>
+ examples/arrows/hparser/namespace0.xml view
@@ -0,0 +1,31 @@+<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>++<!DOCTYPE a [+<!ATTLIST a  x:att1  NMTOKENS  #IMPLIED>+<!ATTLIST a  x:att2  NMTOKENS  #IMPLIED>+<!ATTLIST a  y:att3  CDATA  #FIXED "a fixed value">+<!ATTLIST a  att4  CDATA  "&lt; default &gt;">+<!ATTLIST a  att5  CDATA #IMPLIED>+<!ATTLIST a  xmlns   CDATA #IMPLIED>+<!ATTLIST a  xmlns:x CDATA #IMPLIED>+<!ATTLIST a  xmlns:y CDATA #IMPLIED>+<!ELEMENT a  (x:b, cü?)>+<!ELEMENT x:b  EMPTY>+<!ELEMENT cü  (#PCDATA)>+]>++<!-- some namespace declarations for testing namespace propagation -->+<a xmlns="default namespace"+   xmlns:x="namespace for x"+   xmlns:y="namespace for y"+   x:att2="xxx+           yyy"+   y:att3="a fixed value"+   x:att1=" test+            äöüß+            test "+   att5="&lt; &gt;"+>+    <x:b/>+    <cü>hello world äöüß test</cü>+</a>
+ examples/arrows/hparser/namespace1.xml view
@@ -0,0 +1,60 @@+<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>++<!-- $Id: namespace1.xml,v 1.1 2005/01/12 21:05:58 hxml Exp $ -->++<!DOCTYPE a [+<!ATTLIST a xmlns   CDATA #IMPLIED>+<!ATTLIST a xmlns:d CDATA #IMPLIED>+<!ATTLIST a xmlns:x CDATA #IMPLIED>+<!ATTLIST a xmlns:y CDATA #IMPLIED>+<!ATTLIST a xmlns:z CDATA #IMPLIED>+<!ELEMENT a ANY>++<!-- error: a DTD part contains a not wellformed qualified Name: "a:b:c" -->+<!ELEMENT a:b:c ANY>++<!-- error: an ATTLIST declaration contains as attribute name a not wellformed qualified Name: "x:y:z" -->+<!ATTLIST a:b:c x:y:z CDATA #IMPLIED>++<!-- error: an entity or notation declaration contains a not wellformed NCName: "xyz:abc" -->+<!ENTITY xyz:abc "123">+<!ENTITY % xxx:yyy "zzz">++]>++<!-- everythin is legal here -->+<a+   xmlns  ="default namespace"+   xmlns:d="default namespace"+   xmlns:x="namespace for x"+   xmlns:y="namespace common for y and z"+   xmlns:z="namespace common for y and z"++     att1="abc"+   x:att1="xxx yyy"+   y:att1="abc">++  <!-- legal -->+  <d:b attr2="xxx" d:attr2="yyy" xml:lang="de"/>++  <!-- 4 x error: tag name "..." is not a wellformed qualified name -->+  <d:tag:name/><:tag/><:/><:::/>++  <!-- error: namespace for prefix in tag name "a:a" is undefined -->+  <a:a/>++  <!-- error: multiple occurences of universal names for attributes of tag "d:b" : "{namespace common for y and z}att2" -->+  <d:b y:att2="y" z:att2="z"/>++  <!-- 4 x error: attribute name "..." is not a wellformed qualified name -->+  <d:b d:attr:name="" :attr="" :="" :::=""/>++  <!-- error: namespace value of namespace declaration for "xmlns:x" has no value -->+  <d:b xmlns:x=""/>++  <!-- error: illegal namespace declaration with reserved prefix "..." starting with "xml" -->+  <d:b xmlns:xml="something else"/><d:b xmlns:xml123="something else"/>++  <!-- error: a PI contains a not wellformed NCName: "pi:pi" -->+  <?pi:pi ?>+</a>
+ examples/arrows/hparser/valid1.rng view
@@ -0,0 +1,7 @@+<grammar xmlns="http://relaxng.org/ns/structure/1.0">+  <start>+    <element name="foo">+      <empty/>+    </element>+  </start>+</grammar>
+ examples/arrows/hparser/valid1.xml view
@@ -0,0 +1,1 @@+<foo/>
+ examples/arrows/hparser/xslt/Makefile view
@@ -0,0 +1,65 @@+# $Id: Makefile,v 1.1 2006/11/11 15:36:03 hxml Exp $++HXT_HOME	= ../../../..+PKGFLAGS	= +GHCFLAGS	= -Wall -O2+GHC		= ghc $(GHCFLAGS) $(PKGFLAGS)++DIST		= $(HXT_HOME)/dist/examples/arrows/hparser+DIST_DIR	= $(DIST)/xslt++prog		= ../HXmlParser+xslt		= $(prog) --do-not-validate++all		:+		$(MAKE) -C .. all++test		:+		@echo "===> run a few simple xslt test cases with $(prog)"+		$(MAKE) test1+++++testcases	= \+		'strip_example.xsl     strip_example.xml' \+		'elems_and_attrs.xsl   example_document.xml' \+		'lre.xsl               example_document.xml' \+		'for_each_when_if.xsl  example_document.xml' \+		'prio.xsl              example_document.xml' \+		'default_rules.xsl     example_document.xml' \+		'vars_and_params.xsl   example_document.xml' \+		'lre_stylesheet.xsl    example_document.xml' \+		'imp_lre.xsl           example_document.xml' \+		'inc_lre.xsl           example_document.xml' \+		'comment_pi.xsl        example_document.xml' \+		'attset.xsl            example_document.xml' \+		'copy_copy_of.xsl      example_document.xml' \+		'sorting.xsl           example_document.xml' \+		'strip_space.xsl       exdoc2.xml' \+		'testEX.xsl            empty.xml' \+		'testNS.xsl            testNS.xml' \+		'default_prio.xsl      example_document2.xml'++test1		:+		for tc in $(testcases) ; \+		do \+			stylesheet=$$(echo $$tc | cut -d ' ' -f 1) ; \+			input=$$(echo $$tc | cut -d ' ' -f 2) ; \+			$(xslt) --xslt=$$stylesheet --output-file=$$stylesheet.out $$input ; \+			echo "Contents of $$stylesheet.out" ; \+			echo "============================" ; \+			cat $$stylesheet.out ; \+			echo ; \+		done++stylesheets	= $(wildcard *.xsl)+inputs		= $(wildcard *.xml)++dist		:+		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)+		cp $(EX) Makefile $(stylesheets) $(inputs) $(DIST_DIR)++clean		:+		rm -f *.xsl.out+
+ examples/arrows/hparser/xslt/alias.xsl view
@@ -0,0 +1,16 @@+<xsl:transform 
+ xml:space="preserve"
+ version="1.0" 
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:axsl="http://xsldude.org" >
+  
+  <xsl:namespace-alias stylesheet-prefix="axsl" result-prefix="xsl" />   
+
+  <xsl:template match="/">
+    <axsl:transform version="1.0">
+      <axsl:template match="/">
+        <axsl:message>This XSL stylesheet is created from literal result elements</axsl:message>
+      </axsl:template>
+    </axsl:transform> 
+  </xsl:template>
+</xsl:transform>
+ examples/arrows/hparser/xslt/alias2.xsl view
@@ -0,0 +1,11 @@+<xsl:transform version    = "1.0" 
+               xmlns:xsl  = "http://www.w3.org/1999/XSL/Transform"
+               xmlns:axsl = "http://xsldude.org" >  
+
+  <xsl:namespace-alias stylesheet-prefix="axsl" result-prefix="xsl" />
+
+  <xsl:template match="/" >
+    <lre-stylesheet axsl:version="1.0" />
+  </xsl:template>
+
+</xsl:transform>
+ examples/arrows/hparser/xslt/attset.xsl view
@@ -0,0 +1,14 @@+<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:import href="attset_imp.xsl" />
+
+<xsl:attribute-set name="as1">
+  <xsl:attribute name="att1">att1GLOB1</xsl:attribute>
+  <xsl:attribute name="att1_1">att1_1Glob1</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:attribute-set name="as1">
+  <xsl:attribute name="att1">att1GLOB2</xsl:attribute>
+</xsl:attribute-set>
+
+</xsl:transform>
+ examples/arrows/hparser/xslt/attset_imp.xsl view
@@ -0,0 +1,17 @@+<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:attribute-set name="as1">
+  <xsl:attribute name="att1">att1Loc1</xsl:attribute>
+  <xsl:attribute name="att1_1">att1_1Loc1</xsl:attribute>
+  <xsl:attribute name="att1_2">att1_2Loc1</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:attribute-set name="as2" use-attribute-sets = "as1">
+  <xsl:attribute name="att2">att2Loc1</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:template match="/">
+  <LRE xsl:use-attribute-sets="as2" kyr="bar" kar="bra" kur="rab"/>
+</xsl:template>
+
+</xsl:transform>
+ examples/arrows/hparser/xslt/comment_pi.xsl view
@@ -0,0 +1,10 @@+<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <!-- XALAN will insert an extra newline after the processing instruction. Therefore the output-files differ. -->
+  <xsl:template match="/">
+  <result> 
+    <xsl:comment>simple-comment</xsl:comment>
+    <xsl:comment>-c=a-b  -------------</xsl:comment>
+    <xsl:processing-instruction name="secret_instruction_{1+1}">pi-content?></xsl:processing-instruction>
+  </result> 
+  </xsl:template>
+</xsl:transform>
+ examples/arrows/hparser/xslt/copy_copy_of.xsl view
@@ -0,0 +1,38 @@+<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <xsl:variable name="V" select="."/>
+
+  <xsl:attribute-set name="as">
+    <xsl:attribute name="name"><xsl:value-of select="name()"/></xsl:attribute>
+
+  </xsl:attribute-set>
+
+  <xsl:template match="/">
+    <result>
+
+      === copy-of of /:
+      <xsl:copy-of select = "."/>
+
+      === copy-of of /: with variable V
+      <xsl:copy-of select = "$V"/>
+
+      === copy on /:
+      <xsl:copy/>
+      ...should've been empty
+
+      copy recursively:
+
+      <xsl:apply-templates mode="copy"/> 
+
+    </result>
+  </xsl:template>
+
+  <xsl:template match="@*|node()" mode="copy">
+    <xsl:copy use-attribute-sets="as">
+      <xsl:apply-templates select="node()|@*" mode="copy" />
+    </xsl:copy>
+  </xsl:template>
+
+
+</xsl:transform>
+
+ examples/arrows/hparser/xslt/default_prio.xsl view
@@ -0,0 +1,103 @@+<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <!-- Some work-arounds for errors of in the XPath module:
+       - you can select text() nodes below an attribute node, which is illegal (, no matter how HXT treats attributes internally)
+       - the body of a processing instruction is not selected with ".".
+       - FIXED: ns:* matches everything, regardless of namespaces or even prefixes. 
+       - FIXED: root is treated as an element (matches *)(FIXED) AND has the name() "/" instead of "" (FIXED), both illegal. 
+    -->     
+
+
+  <xsl:template match="/">
+    <result>
+      <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'0.5 /'" /></xsl:call-template>
+    </result>
+  </xsl:template>
+
+  <xsl:template match="/" priority="0.4">
+    <result>
+      <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'0.4 /'" /></xsl:call-template>
+    </result>
+  </xsl:template>
+
+  <xsl:template match="/document">
+    <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'0.5 a'" /></xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match="document">
+    <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'0.0'" /></xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match="document[self::*]">
+    <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'0.5 b'" /></xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match="*">
+    <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'-0.5'" /></xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match="@*">
+    <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'-0.5'" /></xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match="text()" priority="-0.4">
+    <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'-0.4'" /></xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match="text()">
+    <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'-0.5'" /></xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match="processing-instruction('Milk')">
+    <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'0.0'" /></xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match="processing-instruction()">
+    <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'-0.5'" /></xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match="comment()">
+    <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'-0.5'" /></xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match="comment()" priority="-0.6">
+    <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'-0.6'" /></xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match="/document/element_type2/nested_element">
+    <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'0.5 a'" /></xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match="element_type2/nested_element">
+    <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'0.5 b'" /></xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match="ns:*" xmlns:ns="http://ns.org">
+    <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'-0.25'" /></xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match="element_type3/@nr">
+    <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'0.5'" /></xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match="@nr">
+    <xsl:call-template name="printMatch"><xsl:with-param name="prio" select="'0.0'" /></xsl:call-template>
+  </xsl:template>  
+
+  <xsl:template name="printMatch">
+    <xsl:param name="prio" />
+    Match <xsl:choose> 
+      <xsl:when test="self::*">element <xsl:value-of select="name()"/></xsl:when>
+      <xsl:when test="self::text()">textnode length <xsl:value-of select="string-length(.)"/> "<xsl:value-of select="."/>"</xsl:when>
+      <xsl:when test="self::comment()">comment node: <xsl:value-of select="."/></xsl:when>
+      <xsl:when test="self::processing-instruction()">pi node: <xsl:value-of select="name()"/></xsl:when>
+      <xsl:when test="not(name())">root-node</xsl:when>
+      <xsl:otherwise>attribute <xsl:value-of select="name()"/></xsl:otherwise>
+    </xsl:choose> with priority <xsl:value-of select="$prio" /> name : |<xsl:value-of select="name()"/>|
+    <!-- <xsl:for-each select="@*|@*">attribute: <xsl:value-of select="name()"/> <xsl:text> </xsl:text></xsl:for-each> -->
+    <xsl:apply-templates select="@*|*|text()|comment()|processing-instruction()|node()" >  
+      <xsl:sort select="name()" />
+    </xsl:apply-templates>
+  </xsl:template>
+
+</xsl:transform>
+ examples/arrows/hparser/xslt/default_rules.xsl view
@@ -0,0 +1,31 @@+<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <xsl:template match="/">
+    <result>
+     <xsl:apply-templates/>
+    </result>
+  </xsl:template>
+
+  <xsl:template match="/" priority="0.5">
+    <resultXXX>
+     <xsl:apply-templates/>
+    </resultXXX>
+  </xsl:template>
+
+
+  <xsl:template match="nested_element">
+     <nested_element_matched>
+     Attributes matched with default rules:
+     <xsl:apply-templates select="@*"/>
+
+
+     Attributes matched with default rules in mode m:
+     <xsl:apply-templates select="@*" mode="m"/>
+
+     Match content with default rules
+     <xsl:apply-templates/>
+
+     </nested_element_matched>
+  </xsl:template>
+
+</xsl:transform>
+ examples/arrows/hparser/xslt/doc_level_prep.xsl view
@@ -0,0 +1,23 @@+<xsl:transform version="1.0" 
+  xml:space="preserve"
+  xmlns:unused="unused.org"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:extension="extension.org" 
+  extension-element-prefixes="extension"
+  xmlns:ns1="ns1.org">
+
+  <xsl:template match="*" xml:space="preserve"
+>
+    <xsl:element name="result">
+      <ns1:result/>
+      <xsl:call-template name="procedure" />
+    </xsl:element>
+  </xsl:template>
+
+  <xsl:template name="procedure" xmlns:ns2="ns2.org">
+    <ns2:result xsl:exclude-result-prefixes="ns1">
+      <inner/>
+    </ns2:result>
+  </xsl:template>
+
+</xsl:transform>
+ examples/arrows/hparser/xslt/doc_level_prep_exp.xsl view
@@ -0,0 +1,18 @@+<xsl:transform version="1.0" 
+  xml:strip-space="preserve"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:extension="extension.org" 
+  extension-element-prefixes="extension"
+  xmlns:ns1="ns1.org">
+
+  <xsl:template match="*">
+    <ns1:result/>
+  </xsl:template>
+
+  <xsl:template name="procedure"
+      exclude-result-prefixes="ns1"
+      xmlns:ns2="ns2.org">
+    <ns2:result/>
+  </xsl:template>
+
+</xsl:transform>
+ examples/arrows/hparser/xslt/elems_and_attrs.xsl view
@@ -0,0 +1,18 @@+<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="/">
+  <xsl:element name="result">
+     <xsl:attribute name="attr">value</xsl:attribute>
+     
+      <xsl:element name="nested_{-2+3}">
+          <xsl:attribute name="attr_nested">
+              <xsl:value-of select="concat('value ',-5+4*4)" />
+              <xsl:text>still within attr</xsl:text>
+          </xsl:attribute>
+          <xsl:text>textnode</xsl:text>
+      </xsl:element>
+    
+  </xsl:element>
+</xsl:template>
+
+</xsl:transform>
+ examples/arrows/hparser/xslt/empty.xml view
@@ -0,0 +1,1 @@+<empty/>
+ examples/arrows/hparser/xslt/example2.xml view
@@ -0,0 +1,1 @@+<e a1="" a2="" a3="" a4=""/>
+ examples/arrows/hparser/xslt/example_document.xml view
@@ -0,0 +1,16 @@+<document order="descending">  
+  some text
+  <element_type1 nr="1"/>
+  <element_type2>
+    <nested_element nested_element_attrib="nested_element_attrib_value">
+       some more text<X/>
+    </nested_element>
+  </element_type2>
+  <element_type1 nr="2" />
+  <element_type1 nr="3" />
+  <element_type1 nr="4" />
+  <element_type1 nr="-1" />
+  <element_type3 brot=""/>
+  <element_type3 kaese=""/>
+  <element_type3 milch=""/>
+</document>
+ examples/arrows/hparser/xslt/example_document2.xml view
@@ -0,0 +1,20 @@+<document order="">  
+  some text
+  <element_type1 nr=""/>
+  <element_type2>
+    <nested_element nested_element_attrib="">
+       some more text<X/>
+    </nested_element>
+  </element_type2>
+  <ns:element_typeNS xmlns:ns="http://ns.org" />
+  <element_type1 nr="" />
+  <element_type1 nr="" />
+  <element_type1 nr="" />
+  <element_type1 nr="" />
+  <element_type3 brot=""/>
+  <element_type3 kaese=""/>
+  <!-- Milk is good for you! -->
+  <?Milk /opt1 /opt2 /opt3 ?>
+  <?Bread with cheese, or maybe not? ?>
+  <element_type3 milch="" nr=""/>
+</document>
+ examples/arrows/hparser/xslt/example_document3.xml view
@@ -0,0 +1,10 @@+<document>
+  <a>
+     <b/>
+     <c/>
+  </a>
+  <d>
+     <b/>
+     <e/>
+  </d>
+</document>
+ examples/arrows/hparser/xslt/exdoc2.xml view
@@ -0,0 +1,33 @@+<document order="descending">  
+  some text
+  <element_type1 nr="1"/>
+  <element_type2>
+    <nested_element nested_element_attrib="nested_element_attrib_value">
+       some more text<X/><!-- DUDE DUDE-->
+    </nested_element>
+  </element_type2>
+  <element_type1 nr="2" />
+  <element_type1 nr="3" />
+  <element_type1 nr="4" />
+  <element_type1 nr="-1" />
+  <element_type3 brot=""/>
+  <element_type3 kaese=""/>
+  <spacy-elem>
+  
+     <X/>
+
+
+     <Y/>
+
+      .
+
+     <Z/>
+
+         <spacy-elem2>
+
+
+         </spacy-elem2>
+   
+   </spacy-elem>   
+  <element_type3 milch=""/>
+</document>
+ examples/arrows/hparser/xslt/for_each_when_if.xsl view
@@ -0,0 +1,47 @@+<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="/">
+  <result>
+  <xsl:for-each select="*/element_type1">
+      Nr:<xsl:value-of select="@nr"/>:
+
+      with if:
+
+      <xsl:if test="@nr>3"> Number is larger than 3
+      </xsl:if>
+
+      <xsl:if test="@nr>2"> Number is larger than 2
+      </xsl:if>
+
+      <xsl:if test="@nr>1"> Number is larger than 1
+      </xsl:if>
+
+      <xsl:if test="@nr>0"> Number is larger than 0
+      </xsl:if>
+
+      with choose:
+      
+      <xsl:choose>
+
+      <xsl:when test="@nr>3"> Number is larger than 3
+      </xsl:when>
+
+      <xsl:when test="@nr>2"> Number is larger than 2
+      </xsl:when>
+
+      <xsl:when test="@nr>1"> Number is larger than 1
+      </xsl:when>
+
+      <xsl:when test="@nr>0"> Number is larger than 0
+      </xsl:when>
+
+      <xsl:otherwise> Number is smaller than 1
+      </xsl:otherwise>
+
+      </xsl:choose>
+
+  </xsl:for-each>
+  </result>
+</xsl:template>
+
+</xsl:transform>
+ examples/arrows/hparser/xslt/imp_lre.xsl view
@@ -0,0 +1,3 @@+<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:import href="lre_stylesheet.xsl"/>
+</xsl:transform>
+ examples/arrows/hparser/xslt/inc_lre.xsl view
@@ -0,0 +1,3 @@+<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:include href="lre_stylesheet.xsl"/>
+</xsl:transform>
+ examples/arrows/hparser/xslt/invoice.xml view
@@ -0,0 +1,5 @@+<invoice>
+  <item name="Steam-hammer HXT 6.1" value="145.75" />
+  <item name="Electric screwdriver GHC 6.4" value="69.49" />
+  <item name="Medium sized screws 1000 pack" value="15.98" />
+</invoice>
+ examples/arrows/hparser/xslt/invoice.xsl view
@@ -0,0 +1,12 @@+<html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <body> 
+    <table>
+       <xsl:for-each select="*/item">
+         <tr>
+           <td><xsl:value-of select="@name"/></td>
+           <td><xsl:value-of select="@value"/></td>
+         </tr>
+       </xsl:for-each>
+    </table>
+  </body>
+</html>
+ examples/arrows/hparser/xslt/invoiceSort.xsl view
@@ -0,0 +1,14 @@+<html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <body> 
+    <table>
+       <xsl:for-each select="*/item">
+         <xsl:sort select="@value" data-type="number" order="descending"/>
+         <xsl:sort select="@name"/>
+         <tr>
+           <td><xsl:value-of select="@name"/></td>
+           <td><xsl:value-of select="@value"/></td>
+         </tr>
+       </xsl:for-each>
+    </table>
+  </body>
+</html>
+ examples/arrows/hparser/xslt/lre.xsl view
@@ -0,0 +1,11 @@+<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="/">
+  <result attr="value">
+      <nested_1 attr_nested="value is {{{1+1}}} ({1+1}) :-}} :-{{)">
+         textnode
+      </nested_1>
+  </result>
+</xsl:template>
+
+</xsl:transform>
+ examples/arrows/hparser/xslt/lre_stylesheet.xsl view
@@ -0,0 +1,5 @@+<literalResult xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:for-each select="document/*">
+    <element name="{name()}" />
+  </xsl:for-each>
+</literalResult>
+ examples/arrows/hparser/xslt/match_by_for_each.xsl view
@@ -0,0 +1,21 @@+<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <xsl:template match="document">
+    <xsl:for-each select="*/*">
+      <xsl:choose>
+        <xsl:when test="self::b[parent::a[not (parent::*)]]">
+          Match: a/b   
+        </xsl:when>
+        <xsl:when test="self::b">
+          Match: b
+        </xsl:when>
+        <xsl:when test="self::*">
+          Match: *
+        </xsl:when>
+        <xsl:otherwise>
+          Match: the rest
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:for-each>
+  </xsl:template>
+</xsl:transform>
+ examples/arrows/hparser/xslt/nspropXSLT.xsl view
@@ -0,0 +1,14 @@+<!-- Works only if we allow XPath to select xmlns:* attributes... -->
+<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <xsl:template match="*">
+    <xsl:param name="nsattrs" select="@xmlns:*"/>
+    <xsl:copy>
+      <xsl:copy-of select="@*|$nsattrs|@xmlns:*"/>
+      <xsl:apply-templates>
+        <xsl:with-param name="nsattrs" select="$nsattrs|@xmlns:*" />
+      </xsl:apply-templates>
+    </xsl:copy>
+  </xsl:template>
+
+</xsl:transform>
+ examples/arrows/hparser/xslt/nspropXSLTyyy.xsl view
@@ -0,0 +1,14 @@+<!-- Works only if we allow XPath to select xmlns:* attributes... -->
+<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <xsl:template match="*">
+    <xsl:param name="nsattrs" select="@xsl:*"/>
+    <xsl:copy>
+      <xsl:copy-of select="@*|$nsattrs|@xsl:*"/>
+      <xsl:apply-templates>
+        <xsl:with-param name="nsattrs" select="$nsattrs|@xsl:*" />
+      </xsl:apply-templates>
+    </xsl:copy>
+  </xsl:template>
+
+</xsl:transform>
+ examples/arrows/hparser/xslt/prio.xsl view
@@ -0,0 +1,18 @@+<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+
+  <xsl:import href="prio_imp1.xsl"/>
+  <xsl:import href="prio_imp2.xsl"/>
+
+  <xsl:template match="element_type3">
+     unreachable prio.xsl match_element_type3 occurance 2 (before include)
+  </xsl:template>
+
+  <xsl:include href="prio_inc.xsl"/>
+
+  <xsl:template match="nested_element">                   
+     prio.xsl match_nested_element occurance 2 (after include) =====6=
+  </xsl:template>
+
+
+</xsl:transform>
+ examples/arrows/hparser/xslt/prio_imp1.xsl view
@@ -0,0 +1,20 @@+<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:import href="prio_imp1_1.xsl"/>
+<xsl:import href="prio_imp1_2.xsl"/>
+
+<xsl:template match="document">
+  unreachable (prio_imp1.xsl) match_document
+</xsl:template>
+
+  <xsl:template match="element_type2">
+     prio_imp1.xsl match_element_type2                  =====4=
+     <xsl:apply-imports/>
+  </xsl:template>
+
+
+  <xsl:template match="text()">
+     <xsl:call-template name="handleText"/>
+  </xsl:template>
+
+
+</xsl:transform>
+ examples/arrows/hparser/xslt/prio_imp1_1.xsl view
@@ -0,0 +1,15 @@+<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="/">                      
+  <result>
+    prio_imp1_1.xsl match /           =====1= 
+    <xsl:apply-templates />
+  </result>
+</xsl:template>
+
+<xsl:template match="document">
+  unreachable (prio_imp1_1.xsl) match_document
+</xsl:template>
+
+
+</xsl:transform>
+ examples/arrows/hparser/xslt/prio_imp1_2.xsl view
@@ -0,0 +1,17 @@+<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="document">
+  unreachable (prio_imp1_2.xsl) match_document
+</xsl:template>
+
+  <xsl:template match="element_type2">  
+     prio_imp1_2.xsl match_element_type2                 =====5=
+     <xsl:apply-templates/>
+  </xsl:template>
+
+<xsl:template name="handleText">[TXT]
+</xsl:template>
+  
+
+
+</xsl:transform>
+ examples/arrows/hparser/xslt/prio_imp2.xsl view
@@ -0,0 +1,21 @@+<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="document" priority="2.0">
+  unreachable prio_imp2.xsl match_document Prio 2.0 occurance 1
+</xsl:template>
+<xsl:template match="document" priority="2.0">                
+  prio_imp2.xsl match_document Prio 2.0 occurance 2    =====2=
+  <xsl:apply-templates/>
+</xsl:template>
+<xsl:template match="document" priority="1.0">
+  unreachable prio_imp2.xsl match_document Prio 1.0 occurance 1
+</xsl:template>
+<xsl:template match="document" priority="1.0">
+  unreachable prio_imp2.xsl match_document Prio 1.0 occurance 2
+</xsl:template>
+
+
+
+
+
+</xsl:transform>
+ examples/arrows/hparser/xslt/prio_inc.xsl view
@@ -0,0 +1,15 @@+<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="element_type2">
+     prio_inc.xsl match_element_type2                  =====3=
+     <xsl:apply-imports/>
+  </xsl:template>
+
+  <xsl:template match="nested_element">              
+     prio_inc.xsl match_nested_element occurance 1
+  </xsl:template>
+
+  <xsl:template match="element_type3">
+     prio_inc.xsl match_element_type3 occurance 2 (after being included)    =====7=
+  </xsl:template>
+
+</xsl:transform>
+ examples/arrows/hparser/xslt/recAdd.xsl view
@@ -0,0 +1,10 @@+<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/|*">
+    <xsl:copy use-attribute-sets="as">
+      <xsl:apply-templates/>
+    </xsl:copy>
+  </xsl:template>
+  <xsl:attribute-set name="as">
+    <xsl:attribute name="processed">TRUE</xsl:attribute>
+  </xsl:attribute-set>
+</xsl:transform>
+ examples/arrows/hparser/xslt/sorting.xsl view
@@ -0,0 +1,33 @@+<?xml version="1.0" ?>
+<?karl version="1.0" ?>
+<!-- comment axg f -->
+<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <xsl:variable name="V" select="'ascending'"/>
+
+  <xsl:template match="/">
+    <result>
+      Using for-each:
+      <xsl:for-each select = "*/*">
+        <xsl:sort select="name()" order="{document/@order}"/>
+        <xsl:sort select="@nr" data-type="number"/>
+        :<xsl:copy-of select="." />
+      </xsl:for-each>
+      Using apply-template
+      <xsl:apply-templates select="*/*" mode="copy">
+        <xsl:sort select="@nr" data-type="number" order="descending"/>
+        <xsl:sort select="name()" order="{$V}"/>
+        <xsl:with-param name="p" select="concat('value_',document/@order)"/>
+      </xsl:apply-templates>
+    </result>
+  </xsl:template>
+
+  <xsl:template match="*" mode="copy">
+    <xsl:param name="p"/>
+    Param p: <xsl:value-of select="$p"/>
+    <xsl:copy-of select="."/>
+  </xsl:template>
+
+
+</xsl:transform>
+
+ examples/arrows/hparser/xslt/stripXSLT.xsl view
@@ -0,0 +1,24 @@+<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <xsl:template match="*">
+    <xsl:param name="strip" select="true()"/>
+    <xsl:copy>
+      <xsl:copy-of select="@*"/>
+      <xsl:apply-templates>
+        <xsl:with-param name="strip" 
+           select="    ( local-name()!='text' or 
+                         namespace-uri()!='http://www.w3.org/1999/XSL/Transform' )
+                   and not(@xml:space='preserve')
+                   and ($strip or @xml:space='default') "/>
+      </xsl:apply-templates>
+    </xsl:copy>
+  </xsl:template>
+
+  <xsl:template match="text()">
+    <xsl:param name="strip" select="true()"/>
+    <xsl:if test="not($strip) or string-length(normalize-space(.)) &gt; 0">
+      <xsl:value-of select="." />
+    </xsl:if>
+  </xsl:template>
+
+</xsl:transform>
+ examples/arrows/hparser/xslt/strip_example.xml view
@@ -0,0 +1,21 @@+<stuff:document xmlns:text="http://text.org" xmlns:stuff="http://stuff.org">
+<stuff:something>
+<text:chapter>
+
+<text:paragraph>
+
+
+<stuff:reference>                                          </stuff:reference>
+</text:paragraph>
+
+
+
+</text:chapter>
+</stuff:something>
+
+<text:quotation>
+
+
+
+</text:quotation>
+</stuff:document>
+ examples/arrows/hparser/xslt/strip_example.xsl view
@@ -0,0 +1,10 @@+<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:text="http://text.org">
+
+<xsl:strip-space elements="*" />
+<xsl:preserve-space elements="text:*" />
+
+<xsl:template match="/">
+  <xsl:copy-of select="/" />
+</xsl:template>
+
+</xsl:transform>
+ examples/arrows/hparser/xslt/strip_space.xsl view
@@ -0,0 +1,8 @@+<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:import href="strip_space_imp.xsl"/>
+
+<xsl:strip-space elements="element_type2" />
+<xsl:preserve-space elements="spacy-elem2" />
+
+</xsl:transform>
+ examples/arrows/hparser/xslt/strip_space_imp.xsl view
@@ -0,0 +1,28 @@+<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:strip-space elements="spacy-elem spacy-elem2" />
+
+<xsl:template match="/">
+  <Element xml:space="preserve" >
+      <Nested1>
+
+          
+      </Nested1>
+      <Nested2 xml:space="default">
+
+
+           <xsl:text>    </xsl:text>
+
+      </Nested2>
+      <!-- There is an error in _XALAN_ on the following line. "space" will be treated as "xml:space" which is wrong!
+  
+           <Nested3 space="default">      </Nested3> 
+      -->
+      <Nested4>       </Nested4>
+
+
+    <xsl:copy-of select="document" />
+  </Element>
+</xsl:template>
+
+</xsl:transform>
+ examples/arrows/hparser/xslt/strip_space_with_rules.xsl view
@@ -0,0 +1,48 @@+<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<!-- <xsl:strip-space elements="element_type2" /> -->
+
+
+<xsl:template match="element_type2" mode="strip-space">
+  <xsl:copy>
+    <xsl:copy-of select="@*" />
+    <xsl:apply-templates mode="strip-space">
+      <xsl:with-param name="strip" select="true()" />
+    </xsl:apply-templates>
+  </xsl:copy>
+</xsl:template>
+
+
+<xsl:template match="*|/" mode="strip-space" priority="-1000">
+  <xsl:copy>
+    <xsl:copy-of select="@*" />
+    <xsl:apply-templates mode="strip-space"/>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="text()" mode="strip-space">
+  <xsl:param name="strip" select="false()"/>
+  <xsl:choose>
+     <xsl:when test="$strip and normalize-space()=''">
+     </xsl:when>
+     <xsl:otherwise>
+        <xsl:copy/>
+     </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="processing-instruction()|comment()" mode="strip-space">
+  <xsl:copy />
+</xsl:template>
+
+
+<xsl:template match="/">
+===================1)
+  <xsl:copy-of select="document" />
+===================2)
+  <xsl:apply-templates mode="strip-space" />
+
+</xsl:template>
+
+
+</xsl:transform>
+ examples/arrows/hparser/xslt/testEX.xsl view
@@ -0,0 +1,21 @@+<xsl:transform 
+ version="1.0" 
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:a="a.uri"
+ xmlns:b="b.uri"
+ xmlns:c="c.uri"
+ xmlns:d="d.uri"
+ xmlns:e="e.uri"
+ xmlns:f="f.uri"
+ exclude-result-prefixes="a b"
+ extension-element-prefixes="c" xml:space="preserve" >
+
+  
+
+  <xsl:template match="*">
+    <result exclude-result-prefixes="d" ><!-- Tricky NOT xsl:... -->
+      <inner xsl:extension-element-prefixes="e" xsl:exclude-result-prefixes="f" xmlns:g="g.uri"/>      
+    </result>
+  </xsl:template>
+
+</xsl:transform>
+ examples/arrows/hparser/xslt/testNS.xml view
@@ -0,0 +1,11 @@+<lonely xmlns:cheese = "http://cheese.org">
+
+  <cheese:brie/>
+
+  <bread:toast cheese:cheddar="" xmlns:bread="http://bread.org"/>
+
+  <canape:baguette xmlns:canape="http://bread.org">
+    <cheese:camembert/>
+  </canape:baguette>
+
+</lonely>
+ examples/arrows/hparser/xslt/testNS.xsl view
@@ -0,0 +1,46 @@+<xsl:transform 
+ version="1.0" 
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:xslcheese = "http://cheese.org" 
+ xmlns:xslbread  = "http://bread.org">
+
+   <xsl:template match="xslbread:toast">
+      xsl:template match="xslbread:toast"
+      <xsl:apply-templates select="@*" />
+      <xsl:apply-templates select="*" />
+   </xsl:template>
+
+   <xsl:template match="xslcheeseX:camembert" xmlns:xslcheeseX="http://cheese.org">
+      xsl:template match="xslcheeseX:camembert" xmlns:xslcheeseX="http://cheese.org"
+      <xsl:apply-templates select="@*" />
+      <xsl:apply-templates select="*" />
+   </xsl:template>
+
+   <xsl:template match="@xslcheese:*">
+      xsl:template match="@xslcheese:*"
+   </xsl:template>
+
+
+
+   <xsl:template match="xslcheese:*">
+      xsl:template match="xslcheese:*"
+      <xsl:apply-templates select="@*" />
+      <xsl:apply-templates select="*" />
+   </xsl:template>
+
+   <xsl:template match="*" xml:space="preserve">
+   <result>
+      xsl:template match="*"
+      <xsl:apply-templates select="@*" />
+      <xsl:apply-templates select="*" />
+      <xsl:element name="no-ns-name" />
+      <xsl:element name="xslcheese:ns-name" xmlns:useless="useless.uri"/>
+      <xsl:element name="cheese:ns-name" xmlns:cheese="http://cheese.org" />
+      <xsl:element name="newns:ns-name" xmlns:newns="http://latest.org" />
+      <xsl:element name="computed:ns-name" namespace="http://computed_{1+1-1}.org" />
+
+
+   </result>
+   </xsl:template>
+
+</xsl:transform>
+ examples/arrows/hparser/xslt/vars_and_params.xsl view
@@ -0,0 +1,69 @@+<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:import href="vars_and_params_imp.xsl" />
+
+<xsl:variable name="A" select="concat('global var A refers to:',$C)" />
+<xsl:param    name="B" select="concat('global par B',*/*/@nr)" />
+<xsl:variable name="C" select="concat('global var C refers to:',$B)" />
+
+<xsl:template match="/">
+  <template_match_root>
+
+     Value of variable A:<xsl:value-of select="$A"/>:
+     Value of variable B:<xsl:value-of select="$B"/>:
+     Value of variable C:<xsl:value-of select="$C"/>:
+
+     Introducing local variable B...
+     <xsl:variable name="B" select="'local B'"/>
+     Value of variable A:<xsl:value-of select="$A"/>:
+     Value of variable B:<xsl:value-of select="$B"/>:
+     Value of variable C:<xsl:value-of select="$C"/>:
+
+     Setting variable C to default
+     <xsl:variable name="C"/>
+     Value of variable A:<xsl:value-of select="$A"/>:
+     Value of variable B:<xsl:value-of select="$B"/>:
+     Value of variable C:<xsl:value-of select="$C"/>:     
+
+     <xsl:apply-templates select="document">
+         <xsl:with-param name="P1"/>
+         <xsl:with-param name="P2" select="'passed argument 2'"/>
+         <xsl:with-param name="Punknown" select="'unreachable'"/>
+     </xsl:apply-templates>
+  </template_match_root>
+</xsl:template>
+
+    <xsl:template match="document">
+       <xsl:param name="P1" select="'default for P1'" />
+       <xsl:param name="P2" select="'you will never see me'"/>
+       <xsl:param name="P3" select="concat('current-name:',name())"/>
+       <xsl:param name="P4" select="concat('P4 depends on P2 :',$P2,': but not the other way around')"/>
+
+       <template_match_document>           
+
+           Value of variable A:<xsl:value-of select="$A"/>:
+           Value of variable B:<xsl:value-of select="$B"/>:
+           Value of variable C:<xsl:value-of select="$C"/>:
+
+           Value of parameter P1:<xsl:value-of select="$P1"/>:
+           Value of parameter P2:<xsl:value-of select="$P2"/>:
+           Value of parameter p3:<xsl:value-of select="$P3"/>:
+           Value of parameter p3:<xsl:value-of select="$P4"/>:
+
+           <xsl:apply-imports/>
+
+       </template_match_document>
+    </xsl:template>
+
+                  <xsl:template name="function">
+                      <xsl:param name="depth" select="0"/>
+                      <xsl:element name="function_{$depth}">
+                      <xsl:if test="$depth &gt; 0">
+                         <xsl:call-template name="function">
+                            <xsl:with-param name="depth" select="$depth - 1"/>
+                         </xsl:call-template>              
+                      </xsl:if>
+                      </xsl:element>
+                  </xsl:template>
+
+</xsl:transform>
+ examples/arrows/hparser/xslt/vars_and_params_imp.xsl view
@@ -0,0 +1,30 @@+<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<!-- Import-file for var_and_params_imp.xsl -->
+
+       <xsl:template match="document">
+           <xsl:param name="P1" select="'imported P1'" />
+           <xsl:param name="P2" select="'imported P2'" />
+           <xsl:param name="P3" select="'imported P3'" />
+           <xsl:param name="P4" select="'imported P4'" />
+
+           <template_match_document_imported>           
+ 
+               Value of variable A:<xsl:value-of select="$A"/>:
+               Value of variable B:<xsl:value-of select="$B"/>:
+               Value of variable C:<xsl:value-of select="$C"/>:
+
+               Value of parameter P1:<xsl:value-of select="$P1"/>:
+               Value of parameter P2:<xsl:value-of select="$P2"/>:
+               Value of parameter p3:<xsl:value-of select="$P3"/>:
+               Value of parameter p3:<xsl:value-of select="$P4"/>:
+
+               <xsl:call-template name="function">
+                  <xsl:with-param name="depth" select="5"/>
+               </xsl:call-template>
+
+           </template_match_document_imported>
+       </xsl:template>
+
+
+
+</xsl:transform>
+ examples/arrows/hrelaxng/HRelaxNG.hs view
@@ -0,0 +1,170 @@+-- |+-- HRelaxNG - Relax NG Validator of the Haskell XML Toolbox.+-- RELAX NG is a simpler schema language for XML.+--+-- Author : Torben Kuseler+--+-- Version : $Id: HRelaxNG.hs,v 1.2 2005/09/30 14:41:44 hxml Exp $+--+-- This program may be used as example main program for the+-- Relax NG Validator.+--++module Main+where++import System.IO+import System.Environment+import System.Console.GetOpt+import System.Exit++import Text.XML.HXT.Arrow +import Text.XML.HXT.RelaxNG++-- ------------------------------------------------------------+++main :: IO ()+main+  = do+    argv <- getArgs                       -- get the commandline arguments+    (al, xml, schema) <- cmdlineOpts argv -- and evaluate them, return a key-value list+    [rc]  <- runX (relax al xml schema)   -- run the Relax NG validator +    exitProg (rc >= c_err)                -- set return code and terminate++{-+relax :: Attributes -> String -> String -> IOSArrow b Int+relax al xml schema+    = readDocument al schema+      >>>+      createSimpleForm+      >>>+      ( getErrors		-- compute errors in schema+        `orElse`+        validateXMLDoc [] xml	-- compute errors in document+        `orElse`+        root [] [txt "valid"]	-- or document is valid+      )+      >>>+      writeDocument [(a_show_tree, "1")] "-"+      >>>+      getErrStatus+-}++relax :: Attributes -> String -> String -> IOSArrow b Int+relax al xml schema+    = readDocument ( [ (a_check_namespaces, v_1)+		     , (a_validate, v_0)+		     ] ++ al+		   ) xml+      >>>+      traceState+      >>>+      validateDocumentWithRelaxSchema al schema+      >>>+      traceState+      >>>+      writeDocument al "-"+      >>>+      getErrStatus+++exitProg        :: Bool -> IO a+exitProg True   = exitWith (ExitFailure (-1))+exitProg False  = exitWith ExitSuccess++++-- ------------------------------------------------------------+--+-- the options definition part+-- see doc for System.Console.GetOpt++progName    :: String+progName    = "HRelaxNGValidator"++options     :: [OptDescr (String, String)]+options+    = generalOptions+      +++      inputOptions+      +++      outputOptions+      +++      relaxOptions++usage :: [String] -> IO a+usage errl+    | null errl+        = do+          hPutStrLn stdout use+          exitProg False+    | otherwise+        = do+          hPutStrLn stderr (concat errl ++ "\n" ++ use)+          exitProg True+    where+    header = "HRelaxNGValidator - Relax NG schema validator of the " +++             "Haskell XML Toolbox with Arrow Interface\n\n" +++             "Usage: " ++ progName ++ " [OPTION...] (XML file URI/FILE) (Relax NG Schema URI/FILE)"+    use    = usageInfo header options++cmdlineOpts :: [String] -> IO (Attributes, String, String)+cmdlineOpts argv+    = case (getOpt Permute options argv) of+      (ol,n,[])+        -> do+           (xml, schema) <- src n+           help (lookup a_help ol)+           return (ol, xml, schema)+      (_,_,errs)+        -> usage errs+    where+    src [xml, schema] = return (xml, schema)+    src []  = usage ["XML file and Relax NG schema input file/url missing"]+    src [_] = usage ["Relax NG schema input file/url missing"]+    src _   = usage ["too many arguments"]++    help (Just _) = usage []+    help Nothing = return ()+++-- ------------------------------------------------------------+-- test environment+--+{-+xmlFile :: String+xmlFile = "testCases/213/1.v.xml"++schema :: [String]+schema = ["testCases/213/c.rng"]++testValidator :: Attributes -> String -> String -> IOSArrow b Int+testValidator al src xmlFile+    = readDocument al src+      >>> propagateNamespaces+      >>> simplificationStep1+      >>> simplificationStep2 [] []+      >>> simplificationStep3+      >>> simplificationStep4+      >>> simplificationStep5+      >>> simplificationStep6+      >>> simplificationStep7+      >>> simplificationStep8+      >>> cleanUp+      >>> resetStates+--       >>> perform (getErrors >>> writeDocument [(a_show_tree, "1")] "-")+--       >>> perform (fromLA xmlTreeToPatternString >>> arrIO (\s -> hPutStrLn stdout (s ++ "\n\n")))+--       >>> perform (fromLA xmlTreeToPatternFormatedString >>> arrIO (\s -> hPutStrLn stdout (s ++ "\n\n")))+--       >>> perform (fromLA xmlTreeToPatternStringTree >>> arrIO (hPutStrLn stdout))+      >>>+      ( getErrors+        `orElse`+        (validateXMLDoc [] xmlFile)+        `orElse`+        (root [] [(constA $ mkXTextTree "valid")])+      )+--       >>> writeDocument [(a_show_tree, "1")] "-"+--       >>> writeDocument [(a_show_haskell, "1")] "-"      +      >>> getErrStatus+-}
+ examples/arrows/hrelaxng/Makefile view
@@ -0,0 +1,65 @@+# $Id: Makefile,v 1.2 2005/09/30 14:41:44 hxml Exp $++HXT_HOME	= ../../..+PKGFLAGS	= +GHCFLAGS	= -Wall -O2+GHC		= ghc $(GHCFLAGS) $(PKGFLAGS)++DIST		= $(HXT_HOME)/dist/examples/arrows+DIST_DIR	= $(DIST)/hrelaxng++prog		= HRelaxNG++all		: $(prog)++prof		:+		ghc --make -o $(prog) -Wall -prof -auto-all -O -fglasgow-exts -ignore-package hxt -ignore-package HTTP -i../../../src $(prog).hs++local		:+		ghc --make -o $(prog) $(GHCFLAGS) -fglasgow-exts -ignore-package hxt -i../../../src $(prog).hs++$(prog)		: $(prog).hs+		$(GHC) --make -o $@ $<++force		:+		$(GHC) --make -o $(prog) $(prog).hs++test		: $(prog)+		@echo "===> Relax NG examples" ; echo ; sleep 1+		@$(MAKE) example1 example2 example3 example4 example5++example1	:+		@echo "===> Validate a valid Relax NG schema with respect to a valid xml file" ; echo ; sleep 1+		./$(prog) ./valid1.xml ./valid1.rng+		@echo++example2	:+		@echo "===> Validate a valid Relax NG schema with respect to a invalid xml file" ; echo ; sleep 1+		./$(prog) ./invalid1.xml ./valid1.rng || true+		@echo++example3	:+		@echo "===> Incorrect Relax NG schema" ; echo ; sleep 1+		./$(prog) ./valid1.xml ./invalid2.rng || true+		@echo++example4	:+		@echo "===> Same example with \"--output-pattern-transformations\" option " ; echo ; sleep 1+		./$(prog) --output-pattern-transformations  ./valid1.xml ./invalid2.rng || true+		@echo++example5	:+		@echo "===> Incorrect Relax NG schema with two errors" ; echo ; sleep 1+		./$(prog) ./valid1.xml ./invalid3.rng || true+		@echo++EX		= $(wildcard *valid*.xml *valid*.rng)++dist		:+		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)+		cp $(EX) Makefile $(prog).hs $(DIST_DIR)++clean		:+		rm -f $(prog) *.o *.hi++# eof ------------------------------------------------------------
+ examples/arrows/hrelaxng/invalid1.xml view
@@ -0,0 +1,1 @@+<bar/>
+ examples/arrows/hrelaxng/invalid2.rng view
@@ -0,0 +1,13 @@+<grammar xmlns:html="http://www.w3.org/TR/REC-html40" +         xmlns="http://relaxng.org/ns/structure/1.0" >+  <start>+    <element name="foo">+      <zeroOrMore>+        <group>+          <attribute name="bar"/>+          <attribute name="baz"/>+        </group>+      </zeroOrMore>+    </element>+  </start>+</grammar>
+ examples/arrows/hrelaxng/invalid3.rng view
@@ -0,0 +1,19 @@+<grammar xmlns:html="http://www.w3.org/TR/REC-html40" +         xmlns="http://relaxng.org/ns/structure/1.0" >+  <start>+    <element name="foo">+      <zeroOrMore>+        <group>+          <attribute name="bar"/>+          <attribute name="baz"/>+        </group>+      </zeroOrMore>+    </element>+    <element name="bar">+      <group>+        <data type="token"/>+        <data type="token"/>+      </group>+    </element>+  </start>+</grammar>
+ examples/arrows/hrelaxng/valid1.rng view
@@ -0,0 +1,7 @@+<grammar xmlns="http://relaxng.org/ns/structure/1.0">+  <start>+    <element name="foo">+      <empty/>+    </element>+  </start>+</grammar>
+ examples/arrows/hrelaxng/valid1.xml view
@@ -0,0 +1,1 @@+<foo/>
+ examples/arrows/hunit/HUnitExample.hs view
@@ -0,0 +1,716 @@+-- |+-- HUnit - Haskell XML Toolbox examples and tests for arrows+--+-- Author: Uwe Schmidt uwe@fh-wedel.de+--+-- Version : $Id: HUnitExample.hs,v 1.4 2006/09/06 06:35:28 hxml Exp $++module Main where++import System+import Test.HUnit+import Text.XML.HXT.Arrow+import Data.Char++{-+aMinimalDoc	:: XmlTree+aMinimalDoc	= mkRootTree [] (xtext "<?xml version='1.0'?><x/>")++aSimpleXHTMLDoc	:: XmlTree+aSimpleXHTMLDoc+    = mkRootTree+      ( xattr a_source "simple.xml" )+      ( xtext +	( concatMap (++ "\n")+	  [ "<?xml version='1.0'?>"+	  , "<html>"+	  , " <head><title>A Simple XHTML Document</title></head>"+	  , " <body>"+	  , " </body>"+	  , "</html>"+	  ]+	)+      )++mkMinimalDoc	:: String -> XmlTree+mkMinimalDoc cont+    = mkRootTree [] (xtext cont)++mkInputDoc	:: String -> XmlTree+mkInputDoc src+    = mkRootTree ( xattr a_source src) []++mkDoc	:: String -> XmlTree+mkDoc cont+    = mkRootTree+      ( xattr a_source "a test")+      ( xtext ("<?xml version='1.0' encoding='" ++ isoLatin1 ++ "'?>\n" ++ cont) )++-- |+-- compare trees++testEqualTrees	:: XmlTrees -> XmlTrees -> Test+testEqualTrees e1 e2+    = TestCase $+      assertEqual "" e1 e2++-- |+-- testDocFilter creates a test for the application of a pure+-- functional filter to a XML tree. The result is converted into+-- the external string representation and compared with the expected+-- result.+--+-- see also: 'testStateFilter' and 'testEditFilter'++testDocFilter	:: String -> XmlFilter -> XmlTree -> Test+testDocFilter expected xfilter doc+    = TestCase $+      assertEqual "" expected (xshow $ xfilter doc)++-- |+-- testStateFilter creates a test for monadic filters, doing IO and using+-- the internal state, consisting of program options and status information+-- The filter is applied to a XML tree, the result is converted to a string+-- and this result is compared with the expected result.+--+-- see also: 'testEditFilter' for pure functional filters++testStateFilter	:: String -> XmlStateFilter () -> XmlTree -> Test+testStateFilter expected xfilter input+    = TestCase $+      do+      res <- run' $ xfilter input+      assertEqual "" expected (xshow res)++-- |+-- The test bed for edit filter for external documents.+-- The input tree must specify the external document to be read.+-- This document is checked for wellformedness, canonicalized+-- (char refs substituted, ...) and processed with the edit filter.+-- The result is transformed into the string representation and compared+-- with the expected string.++testEditFilter	:: String -> XmlFilter -> XmlTree -> Test+testEditFilter expected xfilter input+    = TestCase $+      do+      res <- run'+	     $ ( getWellformedDoc					-- read the document+		 .>>+		 liftMf canonicalizeAllNodes				-- normalize the document and remove <?xml ... ?> decl+		 .>>+		 liftMf ( processChildren xfilter )			-- apply the editing filter only to the 'real' document+		 .>>				  			-- nodes, not to nodes surrounding the document tag+		 putXmlTree						-- just trace output+		 .>>+		 liftMf getChildren					-- just for comparing the document contents+	       )+	     input+      assertEqual "" expected (xshow res)+++-- |+-- tree versus filter construction tests+-- documents may be constructed by tree operations+-- or with the more flexible filter operations applied to an arbitray tree++treeConstructionTests :: Test+treeConstructionTests+    = TestLabel "tree and filter construction tests" $+      TestList $+      map (\ (t, f) -> testEqualTrees t (f undefined) )+      [ (xtext "xyz",				txt "xyz"			)+      , (xcmt "cmt",				cmt "cmt"			)+      , (xtag "img" [] [],			tag "img" [] []			)+      , (xtag "img" [] [],			etag "img"			)++      , (xtag "img" (xattr "b" "13") [],	tag "img" [sattr "b" "13"] []	)++      , (xtag "img" (xattr "b" "13") [],	atag "img" [sattr "b" "13"]	)++      , (xtag "t" (xattr "a" "42" ++ xattr "b" "id")+	          (xtext "abc"),+						tag "t" [sattr "a" "42", sattr "b" "id"]+	 						[txt "abc"]		)+      ]++-- |+-- construction tests are all applied to the empty document,+-- no information is used from that document,+-- but construction is lifted to the filter level.+-- this is more general than explicit construction.+-- in more complex examples some information may be extracted from+-- the source, some can be constant.+-- +-- see also: 'testDocFilter'++constructionTests	:: Test+constructionTests+    = TestLabel "document construction tests" $+      TestList $+      map (\ (res, f) -> testDocFilter res f undefined)		-- undefined or something else, e.g. emptyRoot+      [ ("<x/>"		, mkXTag  "x" none none	)+      , ("<x/>"		, tag "x"  [] []	)		-- syntactically more comfortable shortcut for mkXTag+      , ("<x/>"		, stag "x" []		)		-- shortcut for tags without attributes+      , ("<x/>"		, atag "x" []		)		-- shortcut for empty tags with attributes+      , ("<x/>"		, etag "x"		)		-- shortcut for empty tags without attributes++      , ("<x a=\"1\"/>"+			, mkXTag "x" (mkXAttr "a" (mkXText "1")) none	)+      , ("<x a=\"1\">42</x>"+			, mkXTag "x" (mkXAttr "a" (mkXText "1")) (mkXText "42")	)+      , ("<x a=\"1\">42</x>"+			, tag "x" [ attr "a" $ txt "1" ] [ txt "42" ]	)+      , ("<x a=\"1\">42</x>"+			, tag "x" [ sattr "a" "1" ] [ txt "42" ]	)++      , ("<x a=\"1\"/>"	, atag "x" [ sattr "a" "1" ]	)++      , ("<x a=\"1\" b=\"2\">42<y/>43</x>"+			, tag "x" [ sattr "a" "1"+				  , sattr "b" "2"+				  ] [ txt  "42"+				    , etag "y"+				    , txt  "43"+				    ]	)+      , ("<!-- a comment -->"+			, mkXCmt $ txt " a comment "	)+      , ("<!--a comment-->"+			, cmt "a comment"	)		-- short cut for uncomputed comment++      , ("<!-- an illegal XML comment containing 2 -- in comment text -->"+			, cmt " an illegal XML comment containing 2 -- in comment text "	)++      , ("&#42;"   	, mkXCharRef 42		)+      , ("&lt;"    	, mkXEntityRef "lt"	)+      , ("<![CDATA[<abc>]]>"+			, mkXCdata $ txt "<abc>")+      , ("<![CDATA[<abc>]]>"			-- short cut for uncomputed cdata content+			, cdata "<abc>")+      , ("<?abc xyz?>"	, mkXPi "abc" $ txt "xyz"	)+      , ("<?abc xyz?>"	, spi "abc" "xyz"	)	-- short cut for an uncomputed pi content+      ]++-- |+-- simple selection tests++simpleSelectionTests	:: Test+simpleSelectionTests+    = TestLabel "simple tree selection tests" $+      TestList $+      map (\ (res, f) -> testDocFilter (singleToDoubleQuote res) f simpleDoc)+      [ (src		, this	)+      , ("1"		, getValue "a"	)+      , (""		, getValue "b"	)+      , (body1		, getChildren	)++				-- text selection+      , ("xyz"		, getChildren .> isXText	)+      , ("xyz"		, getChildren .> isText "xyz"	)+      , (""		, getChildren .> isText "abc"	)+      , ("xyz"		, getChildren .> isOfText (>="x")	)+      , (""		, getChildren .> isOfText (<"x")	)+      , (""		, getChildren .> isWhiteSpace	)++				-- tag selection+      , ("<t a='42' b='id'>abc</t><img b='13'/><y x='0'/><z/>"+			, getChildren .> isXTag	)++				-- comment selection+      , ("<!--cmt-->"	, getChildren .> isXCmt	)++				-- text OR tag selection+      , ("<t a='42' b='id'>abc</t><img b='13'/>xyz<y x='0'/><z/>"+			, getChildren .> (isXTag +++ isXText)	)++				-- generalised OR+      , ("<t a='42' b='id'>abc</t><img b='13'/>xyz<y x='0'/><z/>"+			, getChildren .> cat [isXTag, isXText]	)++      , ("abc"		, getChildren .> getChildren	)++				-- atribute value selection+      , ("1"		, getValue "a"	)++      , ("<t a='42' b='id'>abc</t>"+			, getChildren .> isTag "t"	)++				-- attribute selection+      , ("<t a='42' b='id'>abc</t>"+			, getChildren .> hasAttr "a"	)++      , ("42"		, getChildren .> getValue "a"	)+      , ("42"		, getChildren .> hasValue "a" (all isDigit)	)+      , ("13"		, getChildren .> hasValue "b" (all isDigit)	)+      , (""		, getChildren .> isTag "t" .> hasValue "b" (all isDigit)	)+      , ("42"		, getChildren .> hasValue "a" (== "42")	)+      , (""		, getChildren .> hasValue "a" (== "43")	)+      , ("42"		, getChildren .> hasValue "a" (\ str -> ((read str)::Int) > 40)	)+      , ("42"		, getChildren .> hasValue "a" (not . null)	)+      , ("id13"		, getChildren .> hasValue "b" (const True)	)+      , ("13"		, getChildren .> isTag "img" .> hasValue "b" (const True)	)+      , (""		, getChildren .> hasValue "c" (const True)	)++      , (" a='42' b='id' b='13' x='0'"+			, getChildren .> getAttrl	)++      , (" a='42' b='id'"+			, getChildren .> isTag "t" .> getAttrl	)++      , ("42id"		, getChildren .> isTag "t" .> getAttrl .> getChildren	)++      , (" b='id' b='13'"+			, getChildren .> getAttrl .> isAttr "b"	)++      , (" b='13'"	, getChildren .> isTag "img" .> getAttrl .> isAttr "b"	)+      , ("13"		, getChildren .> isTag "img" .> getAttrl .> isAttr "b" .> getChildren	)+      , ("13"		, getChildren .> isTag "img" .> getValue "b"	)+      , ("timgyz"	, getChildren .> getName	)+      , ("t"		, getChildren .> isTag "t" .> getName	)+      , ("abbx"		, getChildren .> getAttrl  .> getName	)+      , ("bb"		, getChildren .> getAttrl  .> isAttr "b" .> getName	)+      , ("ab"		, getChildren .> isTag "t" .> getAttrl   .> getName	)+      , ("b"		, getChildren .> isTag "t" .> getAttrl   .> isAttr "b" .> getName	)++				-- deep search for text or tags+      , ("abcxyz"       , deep isXText	)+      , ("abc"	        , deep (isTag "t") .> deep isXText	)+      ]+    where+    src = "<r a='1'>" ++ body1 ++ "</r>"+    body1 = "<!--cmt-->"+	    ++ "<t a='42' b='id'>abc</t>"+	    ++ "<img b='13'/>"+	    ++ "xyz"+	    ++ "<y x='0'/>"+	    ++ "<z/>"++    sDocFilter+	= tag "r" [ sattr "a" "1" ]+	    [ cmt "cmt"+	    , tag "t" [ sattr "a" "42", sattr "b" "id" ]+		[ txt "abc"+		]+	    , atag "img" [ sattr "b" "13" ]+	    , txt "xyz"+	    , atag "y" [ sattr "x" "0" ]+	    , etag "z"+	    ]+    simpleDoc = head $ sDocFilter undefined++-- |+-- simple tests with namespaces++namespaceTests	:: Test+namespaceTests+    = TestLabel "namespace tests" $+      TestList $+      map (\ (res, f) -> testDocFilter (singleToDoubleQuote res) f simpleDoc)+      [ (src		, this	)+					-- select all "t" tags, even nested ones (multi) and extract the text from the body+      , ("sssaaa"	, multi (isTag "t"                    .> getChildren .> isXText)	)++					-- select all text within all tags of a specific namespace+      , ("sssaaazzzeee"	, multi (isXTag .> hasNamespace "dns" .> getChildren .> isXText)	)+      , ("bbb"		, multi (isXTag .> hasNamespace "n1"  .> getChildren .> isXText)	)+      , ("cccdddfffggg"	, multi (isXTag .> hasNamespace "n2"  .> getChildren .> isXText)	)++					-- select all text within all tags with a specific local name+      , ("sssaaabbbcccdddzzz"+			, multi (isXTag .> hasLocalPart "t"   .> getChildren .> isXText)	)+      , ("eee"		, multi (isXTag .> hasLocalPart "e"   .> getChildren .> isXText)	)++					-- select all text within all tags with a specific prefix+      , ("bbbddd"	, multi (isXTag .> hasPrefix "x"      .> getChildren .> isXText)	)+      , ("ccc"		, multi (isXTag .> hasPrefix "y"      .> getChildren .> isXText)	)+      , ("zzz"		, multi (isXTag .> hasPrefix "z"      .> getChildren .> isXText)	)+      , ("sssaaaeeefffggg"+			, multi (isXTag .> hasPrefix ""       .> getChildren .> isXText)	)++					-- select all attribute values of a specific namespace+					-- !!! the default namespace is not propagated to attribute names+      , ("z5"		, multi (isXTag .> getAttrl .> hasNamespace "dns"   .> getChildren)	)+      , ("2z4"		, multi (isXTag .> getAttrl .> hasNamespace "n1"    .> getChildren)	)+      , ("x3y3u4"	, multi (isXTag .> getAttrl .> hasNamespace "n2"    .> getChildren)	)+      , ("dnsn2"	, multi (isXTag .> getAttrl .> hasLocalPart "xmlns" .> getChildren)	)++					-- select namespaces from all namespace declarations+      , ("dnsn1n2dnsn2n2"+			, multi (isXTag .> getAttrl .> isNamespaceDecl .> getChildren)	)++					-- all default namespace declarations+      , ("dnsn2"	, multi (isXTag .> getAttrl .> hasLocalPart "xmlns" .> getChildren)	)++					-- all none default namespace declarations+      , ("n1n2dnsn2"	, multi (isXTag .> getAttrl .> hasPrefix "xmlns" .> getChildren)	)+      , ("n1n2"		, multi (isXTag .> getAttrl .> hasPrefix "xmlns" .> hasLocalPart "x" .> getChildren)	)+      , ("n2"		, multi (isXTag .> getAttrl .> hasPrefix "xmlns" .> hasLocalPart "y" .> getChildren)	)+      , ("dns"		, multi (isXTag .> getAttrl .> hasPrefix "xmlns" .> hasLocalPart "z" .> getChildren)	)+      ]+    where+						-- the text representation of the tree+						-- with ' instead of " for readablility of the string constants+    src = "<t xmlns='dns' xmlns:x='n1' xmlns:y='n2' xmlns:z='dns'>"+	  ++ "sss"+	  ++ "<t a='1' x:a='2'>aaa</t>"+	  ++ "<x:t a='x1' y:a='x3'>bbb</x:t>"+	  ++ "<y:t a='y1' y:a='y3'>ccc</y:t>"+	  ++ "<x:t xmlns:x='n2' x:a='u4'>ddd</x:t>"+	  ++ "<z:t x:a='z4' z:a='z5'>zzz</z:t>"+	  ++ "<e b='42'>eee</e>"+	  ++ "<f xmlns='n2'>fff<g>ggg</g></f>" +++	  "</t>"++						-- the filter for generating the test document+    sDocFilter+	= tag "t" [ sattr "xmlns"   "dns"	-- 4 namespace declarations+		  , sattr "xmlns:x" "n1"+		  , sattr "xmlns:y" "n2"+		  , sattr "xmlns:z" "dns"+		  ]+            [ txt "sss"+	    , tag "t" [ sattr "a"   "1"+		      , sattr "x:a" "2" ]+	        [ txt "aaa"+		]+	    , tag "x:t" [ sattr "a"   "x1"+			, sattr "y:a" "x3"+			]+	        [ txt "bbb"+		]+	    , tag "y:t" [ sattr "a"   "y1"+			, sattr "y:a" "y3"+			]+	        [ txt "ccc"+		]+	    , tag "x:t" [ sattr "xmlns:x" "n2"	-- redefinition of prefix x:+			, sattr "x:a" "u4"+			]+	        [ txt "ddd"+		]+	    , tag "z:t" [ sattr "x:a" "z4"+			, sattr "z:a" "z5"+			]+	        [ txt "zzz"+		]+	    , tag "e" [ sattr "b" "42" ]+                [ txt "eee"+		]+	    , tag "f" [ sattr "xmlns" "n2"	-- redefinition of default namespace+		      ]+                [ txt "fff"+		, tag "g" [ ]+		    [ txt "ggg" ]+		]+	    ]+						-- create document and propagate namespaces+    simpleDoc = head $ (sDocFilter .> propagateNamespaces) undefined++-- |+-- minimal tests for parsing data.+--+-- the tests are document trees with a root+-- node containing a single text node with the document source.+-- That tree is passed to the parser, which substitutes the text node with the parsed xml tree.+-- In general this may be a list of trees containing also the+-- surrounding parts like the xml declaraion, the document type definition+-- possibly comments and processing instructions.+--+-- see also: 'testStateFilter'++parseTests	:: Test+parseTests+    = TestLabel "minimal parser tests" $+      TestList +      [ testStateFilter "</><x/><//>"	parseXmlDoc				mini	-- the tree inclusive root node+      , testStateFilter "<x/>"	(parseXmlDoc .>> liftMf getChildren)		mini	-- only the content+      , testStateFilter "<x/>"	(parseXmlDoc .>> liftMf getChildren)		min2	-- same content+      , testStateFilter ""	(parseXmlDoc .>> liftMf getChildren)		minErr	-- syntax error: content empty+      , testStateFilter errr	(parseXmlDoc .>> liftMf (getValue a_status))	minErr	-- syntax error reported in a_status+      ]+    where+    errr	= show c_err+    mini	= mkMinimalDoc "<x/>"+    min2	= mkMinimalDoc "<x></x>"+    minErr	= mkMinimalDoc "<x>"+++-- |+-- simple external file containing one tag++mini1		:: XmlTree+mini1		= newDocument "mini1.xml"		-- test documents++-- |+-- simple external file containing one tag++mini2		:: XmlTree+mini2		= newDocument "mini2.xml"++-- |+-- simple not existing external file++notThere	:: XmlTree+notThere	= newDocument "notThere.xml"		-- does not exist++-- |+-- These test check the access to external files+-- and error reporting in case of input or parse errors+-- Some test issue tree like trace output of the documents read+-- to show the internal structure and nesting++inputTests	:: Test+inputTests+    = TestLabel "input tests" $+      TestList+      [ testStateFilter "mini1.xml"+	                        ( putXmlTree .>>+				  liftMf (getValue a_source)+				)					mini1+      , testStateFilter ok	( liftMf (getValue a_status)+				)					mini1+      , testStateFilter ""	( liftMf getChildren+				)					mini1+      , testStateFilter "<x/>"	( getXmlContents .>>+				  putXmlTree .>>+				  liftMf getChildren+				)					mini1+      , testStateFilter ok	( getXmlContents .>>+				  liftMf (getValue a_status)+				)					mini1+      , testStateFilter "4"	( getXmlContents .>>+				  liftMf getContentLength .>>+				  putXmlTree .>>+				  liftMf (getValue a_contentLength)+				)					mini1+      , testStateFilter ok	( getXmlContents .>>+				  liftMf (getValue a_status)+				)					mini2+      , testStateFilter ""	( getXmlContents .>>+				  putXmlTree .>>+				  liftMf getChildren+				)					notThere+      , testStateFilter fat	( getXmlContents .>>+				  liftMf (getValue a_status)+				)					notThere+      ]+    where+    ok	= show c_ok+    fat	= show c_fatal++-- |+-- A few tests for removing parts of a document tree.+-- As input tree the document in file mini2.xml is used.++removeTests	:: Test+removeTests+    = TestLabel "document transformation tests" $+      TestList+      [ testEditFilter allText	getAllText				mini2+      , testEditFilter allData  (removeAllWhiteSpace .> getAllText)	mini2+      , testEditFilter allImp	(removeIgnorableData .> getAllText)	mini2+      , testEditFilter allDat	(removeMeta .> getAllText)		mini2+      ]+    where+    getAllText			= deep isXText+    containsUnknownOrIgnore	= getChildren .> ( isText "unknown"+						   ++++						   isText "ignore"+						 )+    removeIgnorableData		= processTopDown ( none+						   `when`+						   ( isTag "data" .> containsUnknownOrIgnore )+						 )+    removeMeta			= processTopDown ( none+						   `when`+						   ( isTag "data" .> hasValue "class" ( == "meta" ) )+						 )+    allText	= " ignore unknown important important "+    allData	= "ignoreunknownimportantimportant"+    allImp	= "   important important "+    allDat	= " ignore  important  "+++ys :: XmlTree+ys = head $+     tag "s:Envelope"+     [ sattr "xmlns:s" "http://schemas.xmlsoap.org/soap/envelope/",+       sattr "xmlns:xenc" "http://www.w3.org/2001/04/xmlenc#",+       sattr "xmlns:eg" "http://example.org/paymentv2",+       sattr "xmlns:wsse" "http://schemas.xmlsoap.org/ws/2002/12/secext"+     ]+     [ stag "s:Header"+       [ stag "wsse:Security"+         [ tag "wsse:BinarySecurityToken"+           [ sattr "ValueType" "wsse:Kerberosv5ST",+             sattr "EncodingType" "wsse:Base64Binary"+           ]+           [ txt "QMwcAG ..."+           ]+	 ]+       ],+       stag "s:Body"+       [ stag "eg:OrderCurrency"+         [ stag "eg:Name"+           [ txt "John Smith" ],+	   tag "eg:Amount"+           [ sattr "Currency" "'USD'" ]+	   [ txt "1000" ],+	   tag "eg:CreditCard"+           [ sattr "Limit" "'5000'",+	     sattr "Currency" "'GBP'"+	   ]+	   [ stag "xenc:EncryptedData"+             [ atag "xenc:EncryptionMethod"+               [ sattr "Algorithm" "http://www.w3.org/2001/04/xmlenc#tripledes-cbc" ]+             ],+	     stag "xenc:CipherData"+             [ stag "xenc:CipherValue"+               [ txt "r5KipsDV ..." ]+             ]+	   ]+         ]+       ]+     ]+     .> propagateNamespaces+     .> indentDoc+     $ undefined+-}++-- |+-- ausiliary function to make haskell string constants with quotes more readable++singleToDoubleQuote	:: String -> String+singleToDoubleQuote+    = map (\ c -> if c == '\'' then '"' else c)++++testLA	:: String -> String -> LA XmlTree XmlTree -> Test+testLA doc expected f+    = TestCase $ assertEqual "LA XmlTree XmlTree:" [expected] res+      where+      res = runLA (xread >>> xshow f) doc++testLAString	:: String -> String -> LA XmlTree String -> Test+testLAString doc expected f+    = TestCase $ assertEqual "LA XmlTree String:" [expected] res+      where+      res = runLA (xread >>> f) doc++mkTestSeqLA	:: String -> [(String, LA XmlTree XmlTree)] -> [Test]+mkTestSeqLA doc+    = map (\ (res, f) -> testLA doc (singleToDoubleQuote res) f)++simpleTests	:: Test+simpleTests+    = TestLabel "simple LA tests" $+      TestList $+      mkTestSeqLA doc tests+    where+    doc = "<x a='b'>0<y c='d'>1</y>2<z/></x>"+    tests = [ (doc			, this	)+	    , ("0<y c='d'>1</y>2<z/>"	, getChildren	)+	    , ("<y c='d'>1</y><z/>"	, getChildren >>> isElem	)+	    , ("02"			, getChildren >>> isText	)+	    , ("<z/>"			, getChildren >>> hasName "z"	)+	    , ("<z/>"			, getChildren >>> (hasName "x" <+> hasName "z")	)+	    , ("<y c='d'>1</y><z/>"	, getChildren >>> (hasName "y" <+> hasName "z")	)+	    , ("1"			, getChildren >>> getChildren	)+	    , ("1"			, getChildren >>> getChildren >>> isText	)+	    , (""			, getChildren >>> getChildren >>> isElem	)++	    , ("b"			, getAttrValue "a" >>> mkText	)+	    , (""			, getAttrValue "z" >>> mkText	)+	    , ("d"			, getChildren >>> getAttrValue "c" >>> mkText	)+	    , ("1"			, hasName "x" >>> getChildren >>> hasName "y" >>> getChildren	)++	    , ("012"			, deep isText 	)+	    , ("12"			, deep (hasText (all (/= '0'))) 	)+	    , (doc			, deep isElem	)+	    , ("<y c='d'>1</y><z/>"	, getChildren >>> deep isElem	)+	    , ("<y c='d'>1</y>"		, deep (hasName "y")	)+	    , ("<y c='d'>1</y>"		, deep (hasAttr "c")	)+	    , ("1"			, deep (hasAttr "c") >>> getChildren	)+	    , ("<y c='d'>1</y><z/>"	, deepest isElem	)+	    , ("<x a='b'>0<y c='d'>1</y>2<z/></x><y c='d'>1</y><z/>"	, multi isElem	)+	    , ("<x a='b'/><y c='d'/><z/>"	, multi isElem >>> replaceChildren none	)+	    , ("xyz"			, multi (isElem >>> getName) >>> mkText	)+	    , ("b"			, getAttrValue "a"  >>> mkText	)+	    , (""			, getAttrValue "aa" >>> mkText	)+	    , ("b"			, getAttrValue0 "a"  >>> mkText	)+	    , ("z"			, withDefault (getAttrValue0 "aa") "z" >>> mkText	)++	    ]++nodeSetTests	:: Test+nodeSetTests+    = TestList $+      [ TestLabel "node set and simple XPath tests with getXPathTrees" $+	TestList $+	mkTestSeqLA doc (testGetXPathTrees tests)++      , TestLabel "node set and simple XPath tests with getXPathNodeSet" $+	TestList $+	mkTestSeqLA doc (testGetXPathNodes tests)++      , TestLabel "node set and simple XPath tests with processFromNodeSet" $+        TestList $+        mkTestSeqLA doc (testProcessXPath processTests)++      , TestLabel "node set and simple XPath tests with processXPathTrees" $+        TestList $+        mkTestSeqLA doc (testProcessXPath' processTests)+      ]+    where+    doc = "<x p='.'>.0<x p='.1'>.1.0</x>.2<y p='.3'>.3.0<x p='.3.1'>.3.1.0</x></y>.4</x>"++    testGetXPathTrees = map (\ (r, xp) -> (r, getXPathTrees xp))			-- these arrows are equivalent+    testGetXPathNodes = map (\ (r, xp) -> (r, getFromNodeSet $< getXPathNodeSet xp))	-- except for the ordering of the result set+											-- which does not matter for these tests+    testProcessXPath  = map (\ (r, xp, a) -> (r, processFromNodeSet a $< getXPathNodeSet xp))+    testProcessXPath' = map (\ (r, xp, a) -> (r, processXPathTrees a xp))++    tests = [ (doc						, "/x"	)+	    , ("<y p='.3'>.3.0<x p='.3.1'>.3.1.0</x></y>"	, "/x/y"	)+	    , ("<x p='.3.1'>.3.1.0</x>"				, "/x/y/x"	)+	    , (".0.2.4"						, "/x/text()"	)+	    , (".3.0"						, "/x/y/text()"	)+	    , ("<x p='.1'>.1.0</x><x p='.3.1'>.3.1.0</x>"	, "/x//x"	)+	    ]++    processTests+	 = [ ("<x p='.'>x<x p='.1'>x</x>x<y p='.3'>x<x p='.3.1'>x</x></y>x</x>",	  "//text()",		changeText (const "x")	)+	   , ("<x p='.'>.0<x p='.1'>.1.0</x>.2<y p='.3'>.3.0<x p='.3.1'>x</x></y>.4</x>", "/x/y/x/text()",	changeText (const "x")	)+	   , ("<x p='.'>.0<x p='.1'>.1.0</x>.2<y p='.3'>.3.0</y>.4</x>", 		  "/x/y/x",		none			)+	   , ("<x p='.'>.0<x p='.1'>.1.0</x>.2<y p='.3'>.3.0zzz</y>.4</x>",		  "/x/y/x",		txt "zzz"		)+	   , ("<x p='.'>.0<x p='.1'>.1.0</x>.2<y p='.3'>.3.0<x p='.3.1' q='3.2'>.3.1.0</x></y>.4</x>",+											  "/x/y/x",		addAttr "q" "3.2"	)+	   ]++-- |+-- the complete set of test cases++allTests	:: Test+allTests+    = TestList+      [ simpleTests+      , nodeSetTests+      ]++main	:: IO ()+main+    = do+      c <- runTestTT allTests+      putStrLn $ show c+      let errs = errors c+	  fails = failures c+      System.exitWith (codeGet errs fails)++codeGet	:: Int -> Int -> ExitCode+codeGet errs fails+    | fails > 0       = ExitFailure 2+    | errs > 0        = ExitFailure 1+    | otherwise       = ExitSuccess++-- ----------------------------------------------------------
+ examples/arrows/hunit/Makefile view
@@ -0,0 +1,32 @@+# $Id: Makefile,v 1.2 2006/05/11 14:47:18 hxml Exp $++HXT_HOME	= ../../..+PKGFLAGS	=+GHCFLAGS	= -Wall -O2+GHC		= ghc $(GHCFLAGS) $(PKGFLAGS)++prog		= HUnitExample++all		: $(prog)++force		:+		$(GHC) --make $(GHCPACKAGES) -o $(prog) $(prog).hs++$(prog)		: $(prog).hs+		$(GHC) --make $(GHCPACKAGES) -o $@ $<++test		: $(prog)+		@echo "===> run HUnit examples" ; echo ; sleep 2+		$(prog)++DIST		= $(HXT_HOME)/dist/examples/arrows+DIST_DIR	= $(DIST)/hunit+DIST_FILES	= mini1.xml mini2.xml Makefile $(prog).hs++dist		:+		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)+		cp $(DIST_FILES) $(DIST_DIR)++clean		:+		rm -f $(prog) $(prog).o $(prog).hi+
+ examples/arrows/hunit/mini1.xml view
@@ -0,0 +1,1 @@+<x/>
+ examples/arrows/hunit/mini2.xml view
@@ -0,0 +1,1 @@+<data> <data class="data">ignore</data> <data class="meta">unknown</data> <data><data class="data">important</data> <data class="meta">important</data></data> </data>
+ examples/arrows/hxpath/HXPath.hs view
@@ -0,0 +1,152 @@+-- ------------------------------------------------------------++{- |+   Module     : HXPath+   Copyright  : Copyright (C) 2005 Torbel Kuseler, Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt+   Maintainer : uwe@fh-wedel.de+   Stability  : experimental+   Portability: portable+   Version    : $Id: HXPath.hs,v 1.2 2006/05/11 14:47:18 hxml Exp $++HXPath - XPath Evaluator of the Haskell XML Toolbox (Arrow version)++-}++-- ------------------------------------------------------------++module Main+where++import Text.XML.HXT.Arrow++import System.IO			-- import the IO and commandline option stuff+import System.Environment+import System.Console.GetOpt+import System.Exit++import Data.Maybe+++-- ------------------------------------------------------------++-- |+-- the main program++main :: IO ()+main+    = do+      argv <- getArgs					-- get the commandline arguments+      (al, expr, src) <- cmdlineOpts argv			-- and evaluate them, return a key-value list+      [rc]  <- runX (xpath al expr src)			-- run the parser arrow+      exitProg (rc >= c_err)				-- set return code and terminate++-- ------------------------------------------------------------++exitProg	:: Bool -> IO a+exitProg True	= exitWith (ExitFailure (-1))+exitProg False	= exitWith ExitSuccess++-- ------------------------------------------------------------++-- |+-- the /real/ main program+--+-- runs in the trivial XmlState monad (with user state set to ())+-- so IO and access to global options is possible++xpath	:: Attributes -> String -> String -> IOSArrow b Int+xpath al expr src+    = readDocument al src+      >>>+      evalXPathExpr+      >>>+      traceMsg 1 "evaluation finished"+      >>>+      traceSource+      >>>+      traceTree+      >>>+      formatXPathResult+      >>>+      writeDocument al "-"+      >>>+      getErrStatus+    where+    evalXPathExpr	:: IOSArrow XmlTree XmlTree+    evalXPathExpr+	= traceMsg 1 ("evaluating XPath expression: " ++ expr)+	  >>>+	  replaceChildren ( getXPathTreesInDoc expr+			    >>>+			    filterErrorMsg+			  )++    formatXPathResult	:: IOSArrow XmlTree XmlTree+    formatXPathResult+	= replaceChildren ( mkelem "xpath-result"+			    [ sattr "expr" expr, sattr "source" src ]+			    [ newline, getChildren >>> (this <+> newline) ]+			  )+	where+	newline+	    | isJust . lookup a_indent $ al = txt "\n"+	    | otherwise                     = none++-- ------------------------------------------------------------+--+-- the options definition part+-- see doc for System.Console.GetOpt++progName	:: String+progName	= "HXPath"+    +options 	:: [OptDescr (String, String)]+options+    = generalOptions+      +++      inputOptions+      +++      outputOptions++usage		:: [String] -> IO a+usage errl+    | null errl+	= do+	  hPutStrLn stdout use+	  exitProg False+    | otherwise+	= do+	  hPutStrLn stderr (concat errl ++ "\n" ++ use)+	  exitProg True+    where+    header = "HXPath - XPath Evaluator of the Haskell XML Toolbox (Arrow Version)\n" +++             "Usage: " ++ progName ++ " [OPTION...] <XPath expr> <URL or FILE>"+    use    = usageInfo header options++cmdlineOpts 	:: [String] -> IO (Attributes, String, String)+cmdlineOpts argv+    = case (getOpt Permute options argv) of+      (ol,n,[]  )+	  -> do+	     (ex, sa) <- src n+	     help (lookup a_help ol)+	     return (ol, ex, sa)+      (_,_,errs)+	  -> usage errs+    where+    src [expr, url]+	= return (expr, url)+    src []+	= usage ["XPath expression and input file/url missing"]+    src [_]+	= usage ["input file/url missing"]+    src _+	= usage ["too many arguments"]++    help Nothing	= return ()+    help (Just _)	= usage []++-- ------------------------------------------------------------
+ examples/arrows/hxpath/Makefile view
@@ -0,0 +1,52 @@+# $Id: Makefile,v 1.2 2005/04/14 12:52:51 hxml Exp $++HXT_HOME	= ../../..+PKGFLAGS	= +GHCFLAGS	= -Wall -O2+GHC		= ghc $(GHCFLAGS) $(PKGFLAGS)++prog		= HXPath++all		: $(prog)++force		:+		$(GHC) --make -o $(prog) $(prog).hs++$(prog)		: $(prog).hs+		$(GHC) --make -o $@ $<++EX		= ../../xhtml/xhtml.xml++test		: $(prog)+		@echo "===> XPath extraction examples" ; echo ; sleep 2+		@$(MAKE) test1 test2 test3 test4++test1		:+		@echo "===> extract all text from the XHTML document" ; echo ; sleep 2+		./$(prog) --do-not-validate "/html/body/descendant-or-self::text()" $(EX)+		@echo++test2		:+		@echo "===> extract the 42. paragraph from the XHTML document" ; echo ; sleep 2+		./$(prog) --do-not-validate "/descendant::p[position()=42]" $(EX)+		@echo++test3		:+		@echo "===> extract the text of all top level h1 tags from the XHTML document" ; echo ; sleep 2+		./$(prog) --indent --do-not-validate "/child::html/child::body/child::h1/descendant-or-self::text()" $(EX)+		@echo++test4		:+		@echo "===> extract all href attributes from a tags from the XHTML document" ; echo ; sleep 2+		./$(prog) --indent --do-not-validate "/descendant::a/attribute::href" $(EX)+		@echo++DIST		= $(HXT_HOME)/dist/examples/arrows+DIST_DIR	= $(DIST)/hxpath++dist		:+		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)+		cp Makefile $(prog).hs $(DIST_DIR)++clean		:+		rm -f $(prog) *.hi *.o
+ examples/dtd2haskell/DTDtoHXT.hs view
@@ -0,0 +1,434 @@+-- |+-- DTDtoHXml - A program for generating access functions for the Haskell XML Toolbox+-- from a DTD+--+-- Author : Uwe Schmidt+--+-- Version : $Id: DTDtoHXT.hs,v 1.2 2005/04/14 12:52:51 hxml Exp $+--+-- this program may be used as example main program for the+-- Haskell XML Toolbox++module Main+where++import Text.XML.HXT.Parser		-- import all stuff for parsing, validating, and transforming XML++import System.IO			-- import the IO and commandline option stuff+import System.Environment+import System.Console.GetOpt+import System.Exit++import Data.Maybe+import Data.Char+import Data.List++-- ------------------------------------------------------------++-- |+-- the main program++main :: IO ()+main+    = do+      argv <- getArgs					-- get the commandline arguments+      al   <- cmdlineOpts argv				-- and evaluate them, return a key-value list+      res  <- run'					-- build a XML root from the list and start parsing+	      $ getDocumentAndGenerateHaskellCode al emptyRoot+      exitProg (null res)				-- set return code and terminate++-- ------------------------------------------------------------++exitProg	:: Bool -> IO a+exitProg True	= exitWith (ExitFailure (-1))+exitProg False	= exitWith ExitSuccess++-- ------------------------------------------------------------++uppercaseInitials, namespaceAware, prefixUnderline	:: String++uppercaseInitials	= "uppercase-initials"+namespaceAware		= "namespace-aware"+prefixUnderline		= "prefix-underline"++-- ------------------------------------------------------------++generateHXmlToolboxAccessFuntions	:: XmlFilter+generateHXmlToolboxAccessFuntions t+    = processChildren (isXDTD `guards` genHaskell) t+    where+    genHaskell dt+	= cat+	  [ code [ sepl+		 , "--"+		 , "-- don't edit this module"+		 , "-- generated with " ++ progName+		 , "-- simple access function for Haskell XML Toolbox"+		 , "-- generated from DTD of document: " ++ show source+		 , ""+		 , "module " ++ hsmodul+		 , "where"+		 , ""+		 , "import Text.XML.HXT.DOM.XmlTree (XmlFilter)"+		 , "import qualified Text.XML.HXT.DOM.XmlTree as X hiding (XmlFilter)"+		 ]++          , comm "namespace declarations"+	  , code (map nsType nsPrefixes)+          , comm ""+	  , code (zipWith nsDef nsPrefixes nsUris)++	  , comm "element names (tag names)"+	  , code (map (constNameType maxElemLen "tag") elements)+          , comm ""+	  , code (map (constNameDef  maxElemLen "tag") elements)++	  , comm "isTag test filter"+	  , code (map isTagType elements)+          , comm ""+	  , code (map isTagDef  elements)++          , comm "make tag nodes constructor filter"+	  , code (map mkTagType elements)+          , comm ""+	  , code (map mkTagDef  elements)++	  , comm "attribute names"+	  , code (map (constNameType maxAttrLen "attr") attributes)+	  , comm ""+	  , code (map (constNameDef  maxAttrLen "attr") attributes)++	  , comm "get attribute value access filter"+	  , code (map getValueType attributes)+          , comm ""+	  , code (map getValueDef  attributes)++	  , comm "has attribute test filter"+	  , code (map hasAttrType attributes)+          , comm ""+	  , code (map hasAttrDef  attributes)++          , comm "make attribute nodes constructor filter for computed attribute values"+	  , code (map mkAttrType attributes)+          , comm ""+	  , code (map mkAttrDef attributes)+          , comm "make attribute nodes constructor filter for string attribute values"+	  , code (map mkSAttrType attributes)+          , comm ""+	  , code (map mkSAttrDef attributes)++	  , comm ("end of module " ++ hsmodul)++	  ]+          $ dt+	where+	code	= txt . concatMap (++ "\n")++	comm cm	= code [ "", sepl, "--", "-- " ++ cm, ""]		-- generate a headline comment++	sepl	= "-- ----------------------------------------"++	nn	= trInitial . concatMap nc				-- normalize names++	nc c+	    | c `elem` ['a'..'z'] ++ ['A'..'Z'] ++ ['0'..'9'] ++ "_"	= [c]+	    | c == ':' || c == '-'					= "_" +	    | otherwise							= ("_" ++) . show . fromEnum $ c++	trInitial str+	    | null str	= str+	    | underLn	= '_' : str+	    | upperCs	= toUpper (head str) : tail str+	    | otherwise	= str++	modname = reverse+		  . (\ n -> if '.' `elem` n				-- remove extension+		            then drop 1 . dropWhile (/= '.') $ n+		            else n+		    )+		  . takeWhile (/= '/')					-- remove dir path+		  . reverse++        maxLen		= maximum . (0 :) . map length++	padd n x	= take n (x ++ repeat ' ')++        tagPrefix	= "tag"+	attrPrefix	= "attr"+	nsPrefix	= "ns"++	tagName n	= tagPrefix  ++ nn n+	attName a	= attrPrefix ++ nn a+	nspName n	= nsPrefix   ++ nn n++        constNameType ln prefix n+	    = prefix ++ padd ln (nn n) ++ " :: String"++	constNameDef ln prefix n+	    = prefix ++ padd ln (nn n) ++ " =  " ++ show n++        isTagType n+	    = "is" ++ padd maxElemLen (nn n) ++ " :: XmlFilter"++        isTagDef n+	    = "is" ++ padd maxElemLen (nn n) ++ " =  " +++	      ( either+		(const ("X.isTag " ++ tagPrefix ++ nn n))+		(\ (ns, pr, lp)+		 -> "X.isNsTag " ++ ( if null pr+				    then tagName n+				    else show lp+				  ) ++ " " ++ nspName ns+		)+		. quName+		$ n+	      )++        mkTagType n+	    = "t" ++ padd maxElemLen (nn n) ++ " :: XmlFilter"++        mkTagDef n+	    = "t" ++ padd maxElemLen (nn n) ++ " = " +++	      ( either+		(const ("X.etag " ++ tagName n))+		(\ (ns, _pr, _lp)+		 -> "X.mkXNsTag " ++ tagName n ++ " " ++ nspName ns ++ " X.none X.none"+		)+		. quName+		$ n+	      )++        hasAttrType n+	    = "has" ++ padd maxAttrLen (nn n) ++ " :: XmlFilter"++        hasAttrDef n+	    = "has" ++ padd maxAttrLen (nn n) ++ " = " +++	      ( either+		(const ("X.hasAttr " ++ attName n))+		(\ (ns, _pr, lp)+		 -> "X.hasNsAttr " ++ show lp ++ " " ++ nspName ns+		)+		. quNameAttr+	        $ n+	      )++        mkAttrType n+	    = "af" ++ padd maxAttrLen (nn n) ++ " :: XmlFilter -> XmlFilter"++        mkAttrDef n+	    = "af" ++ padd maxAttrLen (nn n) ++ " = " +++	      ( either+		(const ("X.mkXAttr " ++ attName n))+		(\ (ns, _pr, _lp)+		 -> "X.mkXNsAttr " ++ attName n ++ " " ++ nspName ns+		)+		. quNameAttr+	        $ n+	      )++        mkSAttrType n+	    = "a" ++ padd maxAttrLen (nn n) ++ " :: String -> XmlFilter"++        mkSAttrDef n+	    = "a" ++ padd maxAttrLen (nn n) ++ " = \\ v -> " +++	      ( either+		(const ( "X.mkXAttr " ++ attName n ++ " (X.txt v)" ))+		(\ (ns, _pr, _lp)+		 -> "X.mkXNsAttr " ++ attName n ++ " " ++ nspName ns ++ " (X.txt v)"+		)+		. quNameAttr+	        $ n+	      )++        getValueType n+	    = "get" ++ padd maxAttrLen (nn n) ++ " :: XmlFilter"++        getValueDef n+	    = "get" ++ padd maxAttrLen (nn n) ++ " =  " +++	      ( either+		(const ("X.getValue " ++ attName n))+		(\ (ns, _pr, lp)+		 -> "X.getNsValue " ++ show lp ++ " " ++ nspName ns+		)+		. quNameAttr+		$ n+	      )++        nsType n+	    = nsPrefix ++ padd maxNsLen (nn n) ++ " :: String"++        nsDef n v+	    = nsPrefix ++ padd maxNsLen (nn n) ++ " =  " ++ show v++        source  = xshow . getValue a_source                     $ t        +	modul	= modname . xshow . getValue a_output_file	$ t+	root	= xshow . (isDoctype .> getDTDValue a_name)	$ dt+	hsmodul+	    | null modul	= "DTD" ++ nn root+	    | otherwise		= modul++	upperCs	= satisfies (hasAttr uppercaseInitials)	$ t+	underLn	= satisfies (hasAttr prefixUnderline)	$ t+	nsAware = satisfies (hasAttr namespaceAware)		$ t++	elements							-- select all element names from dtd +	    = nub+	      . sort+	      . map ( xshow . this)+	      . (deep isElement .> getDTDValue a_name)+	      $ dt++        maxElemLen = maxLen . map nn $ elements++        attributes+	    = nub+	      . sort+	      . map ( xshow . this)+	      . (deep isAttlist .> getDTDValue a_value)+	      $ dt++        maxAttrLen = maxLen . map nn $ attributes++        nsName [] = root+	nsName n  = n++        namespaces+	    = map (\ (n,v) -> (drop 6 n, v))+	      . map (\ t' -> (xshow . getDTDValue a_value $ t', xshow . getDTDValue a_default $ t'))+	      . isNSAttr+	      $ dt+	+        nsPrefixes = map (nsName . fst) namespaces+        nsUris     = map snd namespaces++        maxNsLen = maxLen . map nn $ nsPrefixes++        quName	:: String -> Either String (String, String, String)+	quName	n+	    | not nsAware		 = Left n+	    | null lp && isNothing defns = Left n+	    | null lp                    = Right (nsName "", "", pr)+	    |            isNothing expns = Left n+	    |            otherwise	 = Right (nsName pr, pr, tail lp)+	      where+	      (pr, lp) = span (/= ':') n+	      defns    = lookup "" namespaces+	      expns    = lookup pr namespaces++        quNameAttr	:: String -> Either String (String, String, String)+	quNameAttr an+	    | ':' `elem` an	= quName an+	    | otherwise		= Left an++        isNSAttr	:: XmlFilter+	isNSAttr+	    = deep isAttlist+	      .>+	      ( ( getDTDValue a_value+		  .>+		  isOfText (\ s' -> s' == "xmlns" || "xmlns:" `isPrefixOf` s')+		)+		`guards`+		( isFixedAttrKind `guards` this)+	      )+              +-- ------------------------------------------------------------++-- |+-- the /real/ main program+--+-- get wellformed document, validates document, propagates and check namespaces+-- and controls output++getDocumentAndGenerateHaskellCode	:: Attributes -> XmlStateFilter state+getDocumentAndGenerateHaskellCode al+    = parseDocument ( al+		      +++		      [ (a_parse_html, v_0)+		      , (a_canonicalize, v_0)+		      , (a_remove_whitespace, v_0)+		      ]+		    )+      .>>+      traceMsg 1 "start processing"+      .>>+      liftMf generateHXmlToolboxAccessFuntions+      .>>+      traceMsg 1 "processing finished"+      .>>+      traceSource+      .>>+      traceTree+      .>>+      writeDocument [ (a_output_xml, v_0)+		    ]+      .>>+      checkStatus++-- ------------------------------------------------------------+--+-- the boring option definition and evaluation part+--+-- see doc for System.Console.GetOpt++progName	:: String+progName	= "DTDtoHXml"+    +options 	:: [OptDescr (String, String)]+options+    = selectOptions [ a_help+		    ] generalOptions+      +++      selectOptions [ a_trace+		    , a_proxy+		    , a_use_curl+		    , a_options_curl+		    , a_encoding+		    , a_validate+		    , a_check_namespaces+		    ] inputOptions+      +++      selectOptions [ a_output_file+		    ] outputOptions+      +++      [ Option "u"	[prefixUnderline]	(NoArg	(prefixUnderline,   v_1))	"separate tag and attribute names with a '_'"+      , Option "U"	[uppercaseInitials]	(NoArg	(uppercaseInitials, v_1))	"transform the first char of tag and attribute names to uppercase"+      , Option "N"	[namespaceAware]	(NoArg	(namespaceAware,    v_1))	"filter are namespace aware, if namespace attributes occur in the DTD"+      ]+      +++      showOptions++usage		:: [String] -> IO a+usage errl+    | null errl+	= do+	  hPutStrLn stdout use+	  exitProg False+    | otherwise+	= do+	  hPutStrLn stderr (concat errl ++ "\n" ++ use)+	  exitProg True+    where+    header = "DTDtoHXml - Generation of access function for the Haskell XML Toolbox from a DTD\n" +++             "Usage: " ++ progName ++ " [OPTION...] [URI or FILE]"+    use    = usageInfo header options++cmdlineOpts 	:: [String] -> IO (Attributes)+cmdlineOpts argv+    = case (getOpt Permute options argv) of+      (ol,n,[]  )+	  -> do+	     sa <- src n+	     help (lookup a_help ol)+	     return (ol ++ sa)+      (_,_,errs)+	  -> usage errs+    where+    src []	= return [(a_source, "")]+    src [uri]	= return [(a_source, uri)]+    src _	= usage  ["only one input url or file allowed\n"]++    help Nothing	= return ()+    help (Just _)	= usage []++-- ------------------------------------------------------------
+ examples/dtd2haskell/Makefile view
@@ -0,0 +1,56 @@+# $Id: Makefile,v 1.5 2005/04/14 12:52:51 hxml Exp $++HXT_HOME	= ../..+PKGFLAGS	= +GHCFLAGS	= -Wall -O2+GHC		= ghc $(GHCFLAGS) $(PKGFLAGS)++prog		= DTDtoHXT++all		: $(prog)++$(prog)		: $(prog).hs+		$(GHC) --make -o $@ $<++force		:+		$(GHC) --make -o $(prog) $(prog).hs++test		:+		@echo "===> run a few generation examples"+		$(MAKE) XHTML.o XHTML2.o XHTML3.o+		@echo "===> the generated modules"+		ls -l XHTML*.hs XHTML*.o++EX1		= ../xhtml/xhtml.xml+EX2		= ../photoalbum/photos.xml++XHTML.o		: $(prog) $(EX1)+		@echo "===> generate a module for XHTML access function from the XHTML DTD with naming convention is<Tag>, get<Attr>, ..."+		$(prog) --output-file XHTML.hs --uppercase-initials $(EX1)+		$(GHC) -c XHTML.hs++XHTML2.o	: $(prog) $(EX1)+		@echo "===> generate a module for XHTML access function from the XHTML DTD with naming convention is_<tag>, get_<attr>, ..."+		$(prog) --output-file XHTML2.hs --prefix-underline $(EX1)+		$(GHC) -c XHTML2.hs++XHTML3.o	: $(prog) $(EX1)+		@echo "===> same as test2, but with namespace aware access functions, if xmlns is used in DTD"+		$(prog) --output-file XHTML3.hs --prefix-underline --namespace-aware $(EX1)+		$(GHC) -c XHTML3.hs++Photo.hs	: $(prog) $(EX2)+		$(prog) --output-file $@ --uppercase-initials $(EX2)+++DIST		= $(HXT_HOME)/dist/examples+DIST_DIR	= $(DIST)/dtd2haskell+DIST_FILES	= $(prog).hs Makefile++dist		:+		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)+		cp $(DIST_FILES) $(DIST_DIR)++clean		:+		rm -f $(prog) XHTML*.hs *.o *.hi+
+ examples/hfilter/FilterExample.hs view
@@ -0,0 +1,172 @@+-- |+-- HXPath - XPath Evaluator of the Haskell XML Toolbox+--+-- Author : Torben Kuseler, Uwe Schmidt+--+-- Version : $Id: FilterExample.hs,v 1.9 2004/09/02 19:11:50 hxml Exp $++module Main(main)+where++import Text.XML.HXT.Parser		-- import all stuff for parsing, validating, and transforming XML++import System.IO			-- import the IO and commandline option stuff+import System.Environment+import System.Console.GetOpt+import System.Exit++import Network.URI++import Data.Maybe+++-- ------------------------------------------------------------++-- |+-- the main program of the Filter example ++main :: IO ()+main+    = do+      argv <- getArgs+      al   <- cmdlineOpts argv+      res  <- run' $ filterEx al emptyRoot+      exitProg (null res)				-- set return code and terminate++-- ------------------------------------------------------------++exitProg	:: Bool -> IO a+exitProg True	= exitWith (ExitFailure (-1))+exitProg False	= exitWith ExitSuccess++-- ------------------------------------------------------------++-- |+-- the /real/ main program+--+-- runs in the trivial XmlState monad (with user state set to ())+-- so IO and access to global options is possible++filterEx	:: Attributes -> XmlStateFilter state+filterEx al+    = parseDocument al+      .>>+      liftMf filterDocument+      .>>+      writeDocument []+      .>>+      checkStatus++-- ------------------------------------------------------------+--+-- some simple selection and editing filter++filterDocument	:: XmlFilter		-- the main processing filter+filterDocument t+    = processChildren (filterexamples xf) t+      where+      xf = xshow . getValue "filter" $ t++filterexamples	:: String -> XmlFilter+filterexamples "all-text"				= deep isXText+filterexamples "all-body-text-without-whitespace"	= getAllBodyText+filterexamples "all-a-tags-with-href-attr"		= getAllTagsWithAttr "a" "href"+filterexamples "all-href-values-of-a-tags"		= getAllAttrValues   "a" "href"+filterexamples "change-img-src-to-abs-uri"		= changeToAbsolutURIs "http://localhost/images/" "img" "src"+filterexamples f					= cmt ("error: " ++ f ++ " not defined") +++ this++getAllBodyText		:: XmlFilter+getAllBodyText+    = isTag "html" .> getChildren .> isTag "body" .> getChildren .> deep (isOfText noWhiteSpace)+      where+      noWhiteSpace = not . all (`elem` " \t\n")++getAllTagsWithAttr	:: String -> String -> XmlFilter+getAllTagsWithAttr tn an+    = multi (isTag tn .> hasAttr an)++getAllAttrValues	:: String -> String -> XmlFilter+getAllAttrValues tn an+    = multi (isTag tn .> getValue an)++changeToAbsolutURIs	:: String -> String -> String -> XmlFilter+changeToAbsolutURIs base tn an+    = processTopDown (changeURI `when` isTag tn)+      where+      changeURI    = modifyAttr an (toAbsURI base)++toAbsURI	:: String -> String -> String+toAbsURI base uri+    = fromMaybe "" $ expand+    where+    expand = do+	     base' <- parseURI base+	     uri'  <- parseURI uri+	     abs'  <- relativeTo uri' base'+	     return $ show abs'++-- ------------------------------------------------------------+--+-- the options definition part+-- see doc for System.Console.GetOpt++progName	:: String+progName	= "HXmlFilter"+    +options 	:: [OptDescr (String, String)]+options+    = generalOptions+      +++      inputOptions+      +++      outputOptions+      +++      [ Option "f"	["filter"]		(ReqArg flt "FILTER")			( "filter to be applied, one of: " ++ nl +++											  "\"all-text\"," ++ nl +++											  "\"all-body-text-without-whitespace\"," ++ nl +++											  "\"all-a-tags-with-href-attr\"," ++ nl +++											  "\"all-href-values-of-a-tags\"," ++ nl +++											  "\"change-img-src-to-abs-uri\"" )+      ]+      +++      showOptions+    where+    nl = "\n\t\t\t\t\t  "+    att n v	= (n, v)+    flt = att "filter"+++usage		:: [String] -> IO a+usage errl+    | null errl+	= do+	  hPutStrLn stdout use+	  exitProg False+    | otherwise+	= do+	  hPutStrLn stderr (concat errl ++ "\n" ++ use)+	  exitProg True+    where+    header = "FilterExamples - Examples for applying XML filter from the Haskell XML Toolbox\n" +++             "Usage: " ++ progName ++ " [OPTION...] [URI or FILE]"+    use    = usageInfo header options++cmdlineOpts 	:: [String] -> IO (Attributes)+cmdlineOpts argv+    = case (getOpt Permute options argv) of+      (ol,n,[]  )+	  -> do+	     sa <- src n+	     help (lookup a_help ol)+	     return (ol ++ sa)+      (_,_,errs)+	  -> usage errs+    where+    src []	= return [("source", "")]+    src [uri]	= return [("source", uri)]+    src _	= usage ["only one input uri or file allowed\n"]++    help Nothing	= return ()+    help (Just _)	= usage []++-- ------------------------------------------------------------
+ examples/hfilter/Makefile view
@@ -0,0 +1,63 @@+# $Id: Makefile,v 1.7 2005/04/14 12:52:51 hxml Exp $++HXT_HOME	= ../..+PKGFLAGS	= +GHCFLAGS	= -Wall -O2+GHC		= ghc $(GHCFLAGS) $(PKGFLAGS)++prog		= FilterExample+opts		= --parse-html --do-not-issue-warnings+runprog		= $(prog) $(opts)++all		: $(prog)++force		:+		$(GHC) --make -o $(prog) $(prog).hs++$(prog)		: $(prog).hs+		$(GHC) --make -o $@ $<++EX		= ./lousy.html++test		: $(prog)+		@echo "===> Filter examples"+		@echo ; echo "===> the filter parses a document and selects or modifies parts of it"+		@echo ; echo "===> usage" ; echo+		./FilterExample --help+		@echo ; sleep 2+		@$(MAKE) test1 test2 test3 test4 test5++test1		:+		@sleep 2 ; echo ; echo "===> extract all a tags with a href attribute" ; echo ; sleep 2+		$(runprog) --filter=all-a-tags-with-href-attr $(EX)+		@echo++test2		:+		@sleep 2 ; echo ; echo "===> extract all href attribute values for a tags" ; echo ; sleep 2+		$(runprog) --filter=all-href-values-of-a-tags $(EX)+		@echo++test3		:+		@sleep 2 ; echo ; echo "===> change all src attribute values of img tags to absolut uris" ; echo ; sleep 2+		$(runprog) --filter=change-img-src-to-abs-uri $(EX)+		@echo++test4		:+		@sleep 2 ; echo ; echo "===> select all text" ; echo ; sleep 2+		$(runprog) --filter=all-text $(EX)+		@echo++test5		:+		@sleep 2 ; echo ; echo "===> select all text within body, but remove whitespace" ; echo ; sleep 2+		$(runprog) --filter=all-body-text-without-whitespace $(EX)+		@echo++DIST		= $(HXT_HOME)/dist/examples+DIST_DIR	= $(DIST)/hfilter++dist		:+		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)+		cp $(EX) Makefile $(prog).hs $(DIST_DIR)++clean		:+		rm -f $(prog) *.o *.hi
+ examples/hfilter/lousy.html view
@@ -0,0 +1,26 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<html>+  <head>+    <title>A HTML Documents with some Errors</title>+  </head>++  <body>+    <h1>HTML+    <h2>html+	<p>some text and a &xxx;+	  <p>more text+	    </p+    <img alt='&lt; &yyy; &gt;' src="abc.gif">+    <table border>+    <tr><td>1<td>2<td>3+    </table>+++    <hr>+    <address><a href="mailto:uwe@muehle.welt.all">Uwe+		Schmidt</a></address>+<!-- Created: Tue Apr 29 16:07:57 CEST 2003 -->+<!-- hhmts start -->+Last modified: Mon May 12 13:11:29 CEST 2003+<!-- hhmts end -->+</html>
+ examples/hparser/HXmlParser.hs view
@@ -0,0 +1,136 @@+-- |+-- HXmlParser - Validating XML Parser of the Haskell XML Toolbox+-- XML well-formed checker and validator.+--+-- Author : .\\artin Schmidt and Uwe Schmidt+--+-- Version : $Id: HXmlParser.hs,v 1.14 2005/04/14 12:52:51 hxml Exp $+--+-- this program may be used as example main program for the+-- Haskell XML Toolbox++module Main+where++import Text.XML.HXT.Parser		-- import all stuff for parsing, validating, and transforming XML++import System.IO			-- import the IO and commandline option stuff+import System.Environment+import System.Console.GetOpt+import System.Exit++import Data.Maybe++-- ------------------------------------------------------------++-- |+-- the main program of the Haskell XML Validating Parser++main :: IO ()+main+    = do+      argv <- getArgs					-- get the commandline arguments+      al   <- cmdlineOpts argv				-- and evaluate them, return a key-value list+      res  <- run' $ parser al emptyRoot		-- build a XML root from the list and start parsing+      exitProg (null res)				-- set return code and terminate++-- ------------------------------------------------------------++exitProg	:: Bool -> IO a+exitProg True	= exitWith (ExitFailure (-1))+exitProg False	= exitWith ExitSuccess++-- ------------------------------------------------------------++-- |+-- the /real/ main program+--+-- get wellformed document, validates document, propagates and check namespaces+-- and controls output++parser	:: Attributes -> XmlStateFilter state+parser al+    = parseDocument al					-- read document+      .>>+      traceMsg 1 "start processing"+      .>>+      liftMf processDocument				-- process document: in this case rather simple, just apply a pure filter+      .>>+      traceMsg 1 "processing finished"+      .>>+      traceSource+      .>>+      traceTree+      .>>+      ( writeDocument []				-- write result, all options already set with parseDocument+	`whenNotM`+	hasAttr "no-output"+      )+      .>>+      checkStatus					-- check status++processDocument	:: XmlFilter+processDocument+    = ( processChildren (deep isXText)			-- process document, just select text when option \"show-text\" is set+	`when`+	hasAttr "show-text"+      )++-- ------------------------------------------------------------+--+-- the options definition part+-- see doc for System.Console.GetOpt++progName	:: String+progName	= "HXmlParser"+    +options 	:: [OptDescr (String, String)]+options+    = generalOptions+      +++      inputOptions+      +++      outputOptions+      +++      [ Option "q"	["no-output"]		(NoArg  ("no-output", "1"))	"no output of resulting document"+      , Option "x"	["show-text"]		(NoArg	("show-text", "1"))	"output only the raw text, remove all markup"+      ]+      +++      showOptions++usage		:: [String] -> IO a+usage errl+    | null errl+	= do+	  hPutStrLn stdout use+	  exitProg False+    | otherwise+	= do+	  hPutStrLn stderr (concat errl ++ "\n" ++ use)+	  exitProg True+    where+    header = "HXmlParser - Validating XML Parser of the Haskell XML Toolbox\n" +++             "XML well-formed checker and validator.\n\n" +++             "Usage: " ++ progName ++ " [OPTION...] [URI or FILE]"+    use    = usageInfo header options++cmdlineOpts 	:: [String] -> IO (Attributes)+cmdlineOpts argv+    = case (getOpt Permute options argv) of+      (ol,n,[])+	  -> do+	     sa <- src n+	     help (lookup a_help ol) sa+	     return (ol ++ sa)+      (_,_,errs)+	  -> usage errs+    where+    src []	= return []+    src [uri]	= return [("source", uri)]+    src _	= usage ["only one input uri or file allowed\n"]++    help (Just _) _	= usage []+    help Nothing []	= usage ["no input uri or file given\n"]+    help Nothing _	= return ()++-- ------------------------------------------------------------
+ examples/hparser/Makefile view
@@ -0,0 +1,111 @@+# $Id: Makefile,v 1.7 2005/04/14 12:52:51 hxml Exp $++HXT_HOME	= ../..+PKGFLAGS	=+GHCFLAGS	= -Wall -O2+GHC		= ghc $(GHCFLAGS) $(PKGFLAGS)++prog	= HXmlParser++all	: $(prog)++HXmlParser	: HXmlParser.hs+		$(GHC) --make -o $@ $<++force		:+		$(GHC) --make -o $(prog) $(prog).hs++test		:+		@echo "===> run a few simple test cases with the validating parser"+		@echo "===> first see all command line options"+		./HXmlParser --help+		@echo+		$(MAKE) test0 test1 test2 test3 test4++EX1		= ./example1.xml+EXi		= ./invalid.xml+EX2		= ../xhtml/xhtml.xml+EX3		= ./namespace0.xml+EX3a		= ./namespace1.xml+EX4		= ./lousy.html++EX		= $(EX1) $(EXi) $(EX3) $(EX3a) $(EX4)++test0		: HXmlParser+		@echo "===> a 1. simple valid document"+		./HXmlParser $(EX1)+		@echo+		@echo "===> the dom tree of the same document (without any redundant whitespace)"+		./HXmlParser --show-tree --remove-whitespace $(EX1)+		@echo+		@echo "===> the next test case contains validation erors, it must fail"+		./HXmlParser --verbose $(EXi) || true+		@echo+		@echo "===> same source, but only wellformed check"+		./HXmlParser --do-not-validate $(EXi) || true+		@echo+		@echo "===> only validation, no output of an XHTML source"+		./HXmlParser --verbose --no-output $(EX2)+		@echo++test1		: HXmlParser+		@echo "===> the source of a very simple valid document" ; echo ; sleep 2+		cat $(EX1)+		@sleep 2 ; echo ; echo "===> parser will emit UTF-8" ; echo ; sleep 2+		./HXmlParser --output-encoding=UTF-8 $(EX1)+		@echo+		@sleep 2 ; echo ; echo "===> once again with ISO-8859-1 (latin1) output" ; echo ; sleep 2+		./HXmlParser --output-encoding=ISO-8859-1 $(EX1)+		@echo+		@sleep 2 ; echo ; echo "===> once again with US-ASCII output" ; echo ; sleep 2+		./HXmlParser --output-encoding=US-ASCII $(EX1)+		@echo+		@sleep 2 ; echo ; echo "===> once again with hdom tree output" ; echo ; sleep 2+		./HXmlParser --show-tree --output-encoding=ISO-8859-1 $(EX1)+		@echo+		@sleep 2 ; echo ; echo "===> once again, but without any markup" ; echo ; sleep 2+		./HXmlParser --show-text --output-encoding=ISO-8859-1 $(EX1)+		@echo++test2		: HXmlParser+		@echo "===> the source of a xhtml document" ; echo ; sleep 2+		cat $(EX2)+		@echo "that document has" `cat $(EX2) | wc -l` "lines"+		@sleep 2 ; echo ; echo "===> parser will validate this document and try to indent the output" ; echo ; sleep 2+		./HXmlParser --indent $(EX2)+		@sleep 2 ; echo ; echo "===> once again, but remove all markup" ; echo ; sleep 2+		./HXmlParser --show-text --remove-whitespace $(EX2)+		@sleep 2 ; echo ; echo "===> once again with hdom tree output" ; echo ; sleep 2+		./HXmlParser --show-tree --remove-whitespace $(EX2)++test3		: HXmlParser+		@echo "===> namespace processing examples" ; echo ; sleep 2+		@echo "===> namespace propagation test" ; echo ; sleep 2+		./HXmlParser --verbose --check-namespaces  --indent --output-encoding=ISO-8859-1 $(EX3)+		@echo+		@echo ; sleep 2 ; echo "===> namespace propagation test: tree output with attached namespaces" ; echo ; sleep 2+		./HXmlParser --verbose --check-namespaces  --remove-whitespace --show-tree --output-encoding=ISO-8859-1 $(EX3)+		@echo+		@echo ; sleep 2 ; echo "===> namespace validation test: this test produces namespace errors" ; echo ; sleep 2+		./HXmlParser --verbose --do-not-validate --check-namespaces --indent --output-encoding=ISO-8859-1 $(EX3a) || true+		@echo+++test4		: HXmlParser+		@echo "===> HTML parsing examples" ; echo ; sleep 2+		@echo "===> the source of a lousy html document" ; echo ; sleep 2+		cat $(EX4)+		@sleep 2 ; echo ; echo "===> parser accepts this document and tries to build a document tree" ; echo ; sleep 2+		./HXmlParser --indent --preserve-comment --parse-html $(EX4)+		@echo++DIST		= $(HXT_HOME)/dist/examples+DIST_DIR	= $(DIST)/hparser++dist		:+		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)+		cp $(EX) Makefile $(prog).hs $(DIST_DIR)++clean		:+		rm -f $(prog) *.o *.hi+
+ examples/hparser/example1.xml view
@@ -0,0 +1,22 @@+<?xml version="1.0" encoding="ISO-8859-1" ?>++<!DOCTYPE a [+<!ATTLIST a  att1  NMTOKENS  #IMPLIED+             att2  ID        #REQUIRED>+<!ATTLIST b  btt2  ID        #REQUIRED+             btt3  IDREF     #REQUIRED>+<!ELEMENT a  (b, cü?)>+<!ELEMENT b  EMPTY>+<!ELEMENT cü (#PCDATA)>+]>++<?pi a processing instruction?>++<a att1=" test+          äöüß+          test "+   att2="root"+>+    <b btt2="b1" btt3="root"/>+    <cü>hello world äöüß test</cü>+</a>
+ examples/hparser/invalid.xml view
@@ -0,0 +1,13 @@+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>++<!DOCTYPE a [+<!ATTLIST a  att1  CDATA  #IMPLIED>+<!ELEMENT a  (z, c?)>+<!ELEMENT b  EMPTY>+<!ELEMENT c  (#PCDATA)>+]>++<a att2="test">+    <y/>+    <c>hello world</c>+</a>
+ examples/hparser/lousy.html view
@@ -0,0 +1,26 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<html>+  <head>+    <title>A HTML Documents with some Errors</title>+  </head>++  <body>+    <h1>HTML+    <h2>html+	<p>some text and a &xxx;+	  <p>more text+	    </p+    <img alt='&lt; &yyy; &gt;' src="abc.gif">+    <table border>+    <tr><td>1<td>2<td>3+    </table>+++    <hr>+    <address><a href="mailto:uwe@muehle.welt.all">Uwe+		Schmidt</a></address>+<!-- Created: Tue Apr 29 16:07:57 CEST 2003 -->+<!-- hhmts start -->+Last modified: Mon May 12 13:11:29 CEST 2003+<!-- hhmts end -->+</html>
+ examples/hparser/namespace0.xml view
@@ -0,0 +1,31 @@+<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>++<!DOCTYPE a [+<!ATTLIST a  x:att1  NMTOKENS  #IMPLIED>+<!ATTLIST a  x:att2  NMTOKENS  #IMPLIED>+<!ATTLIST a  y:att3  CDATA  #FIXED "a fixed value">+<!ATTLIST a  att4  CDATA  "&lt; default &gt;">+<!ATTLIST a  att5  CDATA #IMPLIED>+<!ATTLIST a  xmlns   CDATA #IMPLIED>+<!ATTLIST a  xmlns:x CDATA #IMPLIED>+<!ATTLIST a  xmlns:y CDATA #IMPLIED>+<!ELEMENT a  (x:b, cü?)>+<!ELEMENT x:b  EMPTY>+<!ELEMENT cü  (#PCDATA)>+]>++<!-- some namespace declarations for testing namespace propagation -->+<a xmlns="default namespace"+   xmlns:x="namespace for x"+   xmlns:y="namespace for y"+   x:att2="xxx+           yyy"+   y:att3="a fixed value"+   x:att1=" test+            äöüß+            test "+   att5="&lt; &gt;"+>+    <x:b/>+    <cü>hello world äöüß test</cü>+</a>
+ examples/hparser/namespace1.xml view
@@ -0,0 +1,60 @@+<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>++<!-- $Id: namespace1.xml,v 1.1 2004/03/03 12:52:19 hxml Exp $ -->++<!DOCTYPE a [+<!ATTLIST a xmlns   CDATA #IMPLIED>+<!ATTLIST a xmlns:d CDATA #IMPLIED>+<!ATTLIST a xmlns:x CDATA #IMPLIED>+<!ATTLIST a xmlns:y CDATA #IMPLIED>+<!ATTLIST a xmlns:z CDATA #IMPLIED>+<!ELEMENT a ANY>++<!-- error: a DTD part contains a not wellformed qualified Name: "a:b:c" -->+<!ELEMENT a:b:c ANY>++<!-- error: an ATTLIST declaration contains as attribute name a not wellformed qualified Name: "x:y:z" -->+<!ATTLIST a:b:c x:y:z CDATA #IMPLIED>++<!-- error: an entity or notation declaration contains a not wellformed NCName: "xyz:abc" -->+<!ENTITY xyz:abc "123">+<!ENTITY % xxx:yyy "zzz">++]>++<!-- everythin is legal here -->+<a+   xmlns  ="default namespace"+   xmlns:d="default namespace"+   xmlns:x="namespace for x"+   xmlns:y="namespace common for y and z"+   xmlns:z="namespace common for y and z"++     att1="abc"+   x:att1="xxx yyy"+   y:att1="abc">++  <!-- legal -->+  <d:b attr2="xxx" d:attr2="yyy" xml:lang="de"/>++  <!-- 4 x error: tag name "..." is not a wellformed qualified name -->+  <d:tag:name/><:tag/><:/><:::/>++  <!-- error: namespace for prefix in tag name "a:a" is undefined -->+  <a:a/>++  <!-- error: multiple occurences of universal names for attributes of tag "d:b" : "{namespace common for y and z}att2" -->+  <d:b y:att2="y" z:att2="z"/>++  <!-- 4 x error: attribute name "..." is not a wellformed qualified name -->+  <d:b d:attr:name="" :attr="" :="" :::=""/>++  <!-- error: namespace value of namespace declaration for "xmlns:x" has no value -->+  <d:b xmlns:x=""/>++  <!-- error: illegal namespace declaration with reserved prefix "..." starting with "xml" -->+  <d:b xmlns:xml="something else"/><d:b xmlns:xml123="something else"/>++  <!-- error: a PI contains a not wellformed NCName: "pi:pi" -->+  <?pi:pi ?>+</a>
+ examples/hsvg/.ghci view
@@ -0,0 +1,11 @@+:set -package-conf ../../lib/hxt/package.conf+:set -package hxt+:set -Wall++:def ex0 (\ _ -> return ":set args --trace=1 --encoding=ISO-8859-1 --do-not-validate -o ISO-8859-1 example1.xml")++:def x (\ _ -> return ":load TreeVisualisation\n:ex0\nmain")++:x++:module + IO Main
+ examples/hsvg/Makefile view
@@ -0,0 +1,83 @@+# $Id: Makefile,v 1.7 2006/06/01 15:03:21 hxml Exp $++HXT_HOME	= ../..+PKGFLAGS	= +GHCFLAGS	= -Wall -O2+GHC		= ghc $(GHCFLAGS) $(PKGFLAGS)++prog		= TreeVisualisation++all		: $(prog)++force		:+		$(GHC) --make -o $(prog) $(prog).hs++$(prog)		: $(prog).hs+		$(GHC) --make -o $@ $<++# Tree Visualisation Examples++proxy		:= $(shell if [ `hostname` = "si" ] ; then echo -n "--proxy=www-cache.fh-wedel.de:3128" ; else echo -n ; fi)++HTV		= $(prog) -t1 --use-curl --options-curl="-L" --encoding=ISO-8859-1 --parse-html --do-not-issue-warnings --remove-whitespace+XTV		= $(prog) -t1 --use-curl --do-not-validate --do-not-issue-warnings --remove-whitespace++JPGS		= index.html.jpg \+		  www.fh-wedel.de.index.html.jpg \+		  www.w3.org.index.html.jpg \+		  www.haskell.org.index.html.jpg++vtree		: $(prog) $(JPGS)++index.html.svg	: $(HXT_HOME)/doc/index.html+		@echo "get Haskell XML Toolbox homepage"+		$(HTV) --width=800 --height=400 \+			 $< > $@++www.fh-wedel.de.index.html.svg	:+		@echo "get FH Wedel homepage"+		$(HTV) --horizontalTree --horizontalLines --width=600 --height=800 --border 30 \+			 http://www.fh-wedel.de/ > $@++www.w3.org.index.html.svg	:+		@echo "get www.w3.org"+		$(XTV) --centricTree --withAttr --width=1000 --height=1000 $(proxy) \+			 http://www.w3.org/ > $@++www.haskell.org.index.html.svg	:+		@echo "get www.haskell.org"+		$(HTV) --horizontalLines --withAttr --width=600 --height=400 $(proxy) \+			 http://www.haskell.org/haskellwiki/Haskell > $@++%.jpg		: %.svg+		svgtoraster -m image/jpeg -q 0.7 `pwd`/$<++%.png		: %.svg+		svgtoraster -m image/png `pwd`/$<+++test		:+		$(MAKE) index.html.svg++DIST		= $(HXT_HOME)/dist/examples+DIST_DIR	= $(DIST)/hsvg+DIST_FILES	= $(JPGS) $(prog).hs Makefile .ghci++dist		: vtree+		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)+		cp $(DIST_FILES) $(DIST_DIR)++clean		:+		rm -f $(prog) *.o *.hi *.jpg *.png++cleanvt		:+		rm -f \+		  index.html.jpg \+		  www.fh-wedel.de.index.html.jpg \+		  www.w3.org.index.html.jpg \+		  www.haskell.org.index.html.jpg \+		  index.html.svg \+		  www.fh-wedel.de.index.html.svg \+		  www.w3.org.index.html.svg \+		  www.haskell.org.index.html.svg+
+ examples/hsvg/TreeVisualisation.hs view
@@ -0,0 +1,449 @@+-- |+-- TreeVisualisation - A Haskell XML Toolbox application for+-- a graphic representation of n-ary trees, e.g. XmlTrees+-- with SGML. Input is a XML or HTML document, output a SGML document+-- consisting of a graphical representation of the tree+--+-- Author: Uwe Schmidt uwe@fh-wedel.de+--+-- Version : $Id: TreeVisualisation.hs,v 1.9 2004/09/02 19:11:50 hxml Exp $++module Main where++import Text.XML.HXT.Parser++import System.IO+import System.Environment+import System.Console.GetOpt++import System.Exit++import Data.Maybe++-- ----------------------------------------------------------++-- |+-- compute a layout tree for a given NTree+--+-- the layout tree has a stucture isomophic to the input tree+-- the layout is a pair of (x,y) coordinates. for every node+-- a weight is computed, the space for a tree will be proprtional to+-- the sum of the weight in the tree++treeToWeightedTree	:: (Num b) => (a -> b) -> NTree a -> NTree (b, b)+treeToWeightedTree wf (NTree n cs)+    = (NTree (wot, woc) cs')+      where+      cs' = map (treeToWeightedTree wf) cs+      woc = sum . map (\ (NTree (sum', _) _) -> sum') $ cs'+      wot = woc + wf n++-- |+-- auxiliary function called by 'horizontalLayout' for doint the hard work++weightedTreeToHLayout	:: (Fractional a) => a -> a -> NTree (a,a) -> NTree (a,a)+weightedTreeToHLayout from to (NTree (_wot, woc) cs)+    = NTree (from, to) cs'+      where+      len = to - from+      cs' = layoutChildren (fromInteger 0) cs+      layoutChildren _ []+	  = []+      layoutChildren start (t1@(NTree (wot1, _woc1) _cs1) : ts)+	  = weightedTreeToHLayout from' to' t1 : layoutChildren start' ts+	    where+	    from'  = (start  / woc) * len + from+	    to'    = (start' / woc) * len + from+	    start' = start + wot1+      +-- |+-- A horizontal layout for a tree generated with 'treeToWeightedTree'+-- is computed. The nodes are positioned in the unit square ((0,0),(1,1))+-- with the origin in the left upper corner. The root node is centered+-- at the top of the square++horizontalLayout	:: (Fractional b) => (a -> b) -> NTree a -> NTree (b,b)+horizontalLayout weightFct+    = weightedTreeToHLayout (fromInteger 0) (fromInteger 1) . treeToWeightedTree weightFct++-- |+-- layout of a tree in a 1.0 x 1.0 square+-- with the root node centered at the top and the+-- deepest leaves at the bottom++vTreeLayout		:: (Fractional b) => (a -> b) -> NTree a -> NTree (b,b)+vTreeLayout weightFct t+    = vLayout (0::Int) . horizontalLayout weightFct $ t+      where+      d = (depthNTree t - 1) `max` 1+      vLayout i (NTree (l,u) cs)+	  = NTree (x, y) cs'+	    where+	    x = (l + u) / fromInteger 2+	    y = fromInteger (toInteger i) / fromInteger (toInteger d)+	    cs' = map (vLayout (i + 1)) cs++mirrorLayout		:: NTree (a,a) -> NTree (a,a)+mirrorLayout+    = mapNTree (\ (x,y) -> (y, x))+      +scaleLayout	:: (RealFrac a) => Int -> Int -> Int -> NTree (a,a) -> NTree (Int,Int)+scaleLayout border dx dy+    = mapNTree scale+      where+      scale (x,y) = (truncate (x * dx') + border, truncate (y * dy') + border)+      dx' = fromIntegral (dx - 2 * border)+      dy' = fromIntegral (dy - 2 * border)++centricLayout	:: (Floating a) => NTree (a,a) -> NTree (a,a)+centricLayout+    = mapNTree center+      where+      center (x, y)+	  = ((x' + 1) /2, (y' + 1) /2)+	    where+	    phi = (2 * x - 0.5) * pi+	    r   = y+	    x'  = cos phi * r+	    y'  = sin phi * r+-- |+-- map nodes of a NTree to SVG tags++mapNodesToXml	:: (a -> (Int, Int) -> XmlTrees) -> NTree a -> NTree (Int, Int) -> XmlTrees+mapNodesToXml formatNode layoutTree orgTree+    = concat . zipWith formatNode (nTreeToList layoutTree) $ (nTreeToList orgTree)++mapNodesToSVG	:: (a -> XmlFilter) -> NTree a -> NTree (Int, Int) -> XmlTrees+mapNodesToSVG circleLayout+    = mapNodesToXml drawNode+      where+      drawNode n (x,y)+	  = atag "circle" [ sattr "cx" (show x)+			  , sattr "cy" (show y)+			  , circleLayout n+			  ] $ undefined++mapEdgesToSVG	:: ((Int, Int) -> (Int, Int) -> XmlTrees) -> NTree (Int, Int) -> XmlTrees+mapEdgesToSVG draw (NTree p1 cs)+    = concatMap (\ t' -> mkLine t' ++ mapEdgesToSVG draw t') cs+      where+      mkLine (NTree p2 _) = draw p1 p2++drawLine	:: XmlFilter -> (Int, Int) -> (Int, Int) -> XmlTrees+drawLine lineAttrl p1 p2+    = drawLines lineAttrl [p1,p2]++drawHPath	:: XmlFilter -> (Int, Int) -> (Int, Int) -> XmlTrees+drawHPath lineAttrl p1@(x1, y1) p2@(x2, y2)+    = drawLines lineAttrl [p1, (x1,y12), (x2,y12), p2]+      where+      y12 = (y1 + y2) `div` 2++drawVPath	:: XmlFilter -> (Int, Int) -> (Int, Int) -> XmlTrees+drawVPath lineAttrl p1@(x1, y1) p2@(x2, y2)+    = drawLines lineAttrl [p1, (x12,y1), (x12,y2), p2]+      where+      x12 = (x1 + x2) `div` 2++drawLines	:: XmlFilter -> [(Int, Int)] -> XmlTrees+drawLines attl ps+    = concat . zipWith draw ps $ tail ps+      where+      draw (x1, y1) (x2, y2)+	  = atag "line" [ sattr "x1" (show x1)+			, sattr "y1" (show y1)+			, sattr "x2" (show x2)+			, sattr "y2" (show y2)+			, attl+			] $ undefined++-- |+-- filter for copying the attributes into the content part+-- the result does not correspont to a wellformed XML document+-- but for drawing the tree inclusive attributes this works fine++moveAttrlToContent	:: XmlFilter+moveAttrlToContent+    = processChildren+      ( processBottomUp+	( substChildren (getAttrl +++ getChildren) `when` isXTag ) )++-- |+-- the main transformation filter++xmlTreeToSVG	:: XmlFilter+xmlTreeToSVG t+    = rootTag [ getAttrl ]+      [ getChildren+	.>+        isXTag						-- get the root tag+	.>+	cat [ dtd DOCTYPE [ sattr a_name "svg"+			  , sattr k_public "-//W3C//DTD SVG 1.1//EN"+			  , sattr k_system "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"+			  ] []+	    , tag "svg"+	      [ sattr "width"		(show widthInt)+	      , sattr "height"		(show heightInt)+	      , sattr "version"		"1.1"+	      , sattr "xmlns"		"http://www.w3.org/2000/svg"+	      , sattr "xmlns:xlink"	"http://www.w3.org/1999/xlink"		-- currently not used+	      ]+	      [ stag "title" [ txt source]+	      , tag "text" [ sattr "x" "10"		-- draw source uri+			   , sattr "y" "22"+			   , sattr "font-size" "12"+			   , sattr "fill" "grey"+			   ] [ txt ("source: " ++ source)+			     ]+	      , legend (10, heightInt - 5 * pixelPerLine - 10)+		[ (tagColor,  "tag")+		, (textColor, "text")+		, (attrColor, "attribute")+		, (cmtColor,  "comment")+		, (defColor,  "others")+				]+	      , nodesToSVG+		. scaleLayout borderWidthInt widthInt heightInt+		. layoutFct+		. vTreeLayout nSize+	      ]+	    ]+      ] .> addXmlPiToDoc $ t+      where+      t1 = head . (getChildren .> isXTag) $ t		-- the root tag+	   +      pixelPerLine = 15++      legend	:: (Int, Int) -> [(String, String)] -> XmlFilter+      legend (x1, y1) ls+	  = cat (zipWith legend1 ps ls)+	    where+	    ps = map (\ y' -> (x1, y1 + y' * pixelPerLine)) [0..]+	    legend1 (x', y') (color, text)+		= cat [ atag "circle" [ sattr "cx" (show (x' + 5))+				      , sattr "cy" (show (y' + 10))+				      , sattr "r" "5"+				      , sattr "fill" color+				      , sattr "stroke-width" lineWidth+				      , sattr "stroke" lineColor+				      ]+		      , tag "text" [ sattr "x" (show (x' + pixelPerLine))+				   , sattr "y" (show (y' + pixelPerLine))+				   , sattr "font-size" "12"+				   , sattr "fill" "grey"+				   ] [ txt text+				     ]+		      ]+	    +      defValueOf attr' def' t'+	  | null res  = def'+	  | otherwise = res+	  where+	  res = valueOf attr' t'++      width	    = defValueOf "width"		"800"		t+      height        = defValueOf "height"		"600"		t+      nodeScale     = defValueOf "nodeSize"		"1"		t+      borderWidth   = defValueOf "borderWidth"          "20"		t+      lineWidth     = defValueOf "lineWidht"		"1"		t+      lineColor     = defValueOf "lineColor"		"grey"		t+      textColor     = defValueOf "textNodeColor"	"blue"		t+      tagColor      = defValueOf "tagNodeColor"		"red"		t+      attrColor     = defValueOf "attrNodeColor"	"green"		t+      cmtColor      = defValueOf "cmtNodeColor"		"magenta"	t+      defColor      = defValueOf "defaultNodeColor"	"grey"		t+      layout	    = defValueOf "layout"               "vertical"      t+      lineStyle     = defValueOf "lineStyle"	        "line"          t+      source        = valueOf a_source               			t++      widthInt, heightInt, borderWidthInt	    :: Int++      widthInt	    = read width  `max` 100+      heightInt	    = read height `max` 100+      borderWidthInt= read borderWidth++      nodesToSVG t' = mapEdgesToSVG (edgeLayoutFct edgeLayout) t'+		      +++		      mapNodesToSVG nodeLayout t1 t'++      nodeLayout n+	  = cat [ sattr "fill"         nColor+		, sattr "stroke"       ( if r < 5	-- if circle too small+					 then nColor	-- border is drawn in the same color as cirle+					 else lineColor+				       )+		, sattr "stroke-width" lineWidth+		, sattr "r"            (show r)+		]+	    where+	    (nColor, nSz) = nLayout n+	    nSz1          = nSz * (read nodeScale)+	    r             = (round (sqrt (fromInteger (toInteger nSz1))::Double))::Int++      nSize	:: XNode -> Double+      nSize	= fromInteger . toInteger . snd . nLayout++      nLayout (XTag _tn _)	= (tagColor,	9)		-- constant size for tags+      nLayout (XText tx)	= (textColor,	length tx)+      nLayout (XAttr _an)	= (attrColor,	4)		-- attributes are smaller than tags+      nLayout (XCmt c)		= (cmtColor,	length c)+      nLayout _			= (defColor,	1)		-- entities, PI's, dtd stuff, ...++      layoutFct	    :: NTree (Double,Double) -> NTree (Double,Double)+      layoutFct+	  = fromJust . lookup layout+	    $ [ ("vertical",	           id)+	      , ("horizontal",	mirrorLayout )+	      , ("centric",    centricLayout )+	      ]++      edgeLayoutFct+	  = fromJust . lookup (layout, lineStyle)+	    $ [ (("vertical",	"line"),	drawLine  )+	      , (("vertical",	"fork"),	drawHPath )+	      , (("horizontal",	"line"),	drawLine  )+	      , (("horizontal",	"fork"),	drawVPath )+	      , (("centric",	"line"),	drawLine  )+	      , (("centric",	"fork"),	drawLine  )+	      ]++      edgeLayout+	  = cat [ sattr "stroke"       lineColor+		, sattr "stroke-width" "1"+		]++-- ----------------------------------------------------------++-- |+-- the main program of the Haskell XML Validating Parser++main :: IO ()+main+    = do+      argv <- getArgs+      al   <- cmdlineOpts argv+      res  <- run' (xmlToSVG al emptyRoot)+      exitProg (null res)				-- set return code and terminate++-- ------------------------------------------------------------++exitProg	:: Bool -> IO a+exitProg True	= exitWith (ExitFailure (-1))+exitProg False	= exitWith ExitSuccess++-- ------------------------------------------------------------++-- |+-- the /real/ main program+--+-- runs in the trivial XmlState monad (with user state set to ())+-- so IO and access to global options is possible++xmlToSVG	:: Attributes -> XmlStateFilter state+xmlToSVG al+    = parseDocument al					-- read document+      .>>+      traceMsg 1 "start processing"+      .>>+      liftMf+      ( canonicalizeAllNodes+	.>+	( moveAttrlToContent `when` hasAttr "withAttr" )+	.>+	xmlTreeToSVG+	.>+	indentDoc+      )+      .>>+      traceMsg 1 "processing finished"+      .>>+      traceSource+      .>>+      traceTree+      .>>+      ( writeDocument [ (a_indent, v_1) ]+	`whenM`+	getChildren+      )+      .>>+      checkStatus++-- ------------------------------------------------------------+--+-- the options definition part+-- see doc for System.Console.GetOpt++progName	:: String+progName	= "TreeVisualisation"+    +options 	:: [OptDescr (String, String)]+options+    = generalOptions+      +++      inputOptions+      +++      outputOptions+      +++      showOptions+      +++      [ Option ""	["width"]		(ReqArg (nat "width")	"NUM")		"SVG image width in pixel, default: 800"+      , Option ""	["height"]		(ReqArg (nat "height")	"NUM")		"SVG image height in pixel, default: 600"+      , Option ""	["withAttr"]		(NoArg  (att "withAttr"	"1"))		"show tag attributes, default: no"+      , Option ""	["nodeSize"]		(ReqArg (nat "nodeSize") "NUM")		"scale size of nodes, default: 1"+      , Option ""	["lineWidth"]		(ReqArg (nat "lineWidth") "NUM")	"width of edges in pixel, default: 1\n"+      , Option ""	["border"]		(ReqArg (nat "borderWidth") "NUM")	"border around tree in pixel, default: 20\n"++      , Option ""	["verticalTree"]	(NoArg  (att "layout" "vertical"))	"vertical tree layout, root centered at the top border"+      , Option ""	["horizontalTree"]	(NoArg  (att "layout" "horizontal"))	"horizontal tree layout, root centered at the left border"+      , Option ""	["centricTree"]		(NoArg  (att "layout" "centric"))	"layout with root in the center"+      , Option ""	["directLines"]		(NoArg  (att "lineStyle" "line"))	"edges are drawn as direct lines"+      , Option ""	["horizontalLines"]	(NoArg  (att "lineStyle" "fork"))	"edges are drawn as a path of horizontal and vertical lines\n"++      , Option ""	["textNodeColor"]	(ReqArg (att "textNodeColor") "COLOR")	"text node: color name or RGB value in format \"#RRGGBB\""+      , Option ""	["tagNodeColor"]	(ReqArg (att "tagNodeColor") "COLOR")	"tag node color"+      , Option ""	["attrNodeColor"]	(ReqArg (att "attrNodeColor") "COLOR")	"attribute node color"+      , Option ""	["cmtNodeColor"]	(ReqArg (att "cmtNodeColor") "COLOR")	"comment node color"+      , Option ""	["defaultNodeColor"]	(ReqArg (att "defNodeColor") "COLOR")	"other node color"+      ]+    where+    att n v	= (n, v)+    nat n v	= (n, filter (`elem` "0123456789") v)++usage		:: [String] -> IO a+usage errl+    | null errl+	= do+	  hPutStrLn stdout use+	  exitProg False+    | otherwise+	= do+	  hPutStrLn stderr (concat errl ++ "\n" ++ use)+	  exitProg True+    where+    header = "TreeVisualisation - An example application of the Haskell XML Toolbox\n" +++             "for the visualisation of the structure of a XML document with SVG\n" +++             "Usage: " ++ progName ++ " [OPTION...] [URI or FILE]"+    use    = usageInfo header options++cmdlineOpts 	:: [String] -> IO (Attributes)+cmdlineOpts argv+    = case (getOpt Permute options argv) of+      (ol,n,[]  )+	  -> do+	     sa <- src n+	     help (lookup a_help ol)+	     return (ol ++ sa)+      (_,_,errs)+	  -> usage errs+    where+    src []	= usage ["no input url or file given\n"]+    src [url]	= return [("source", url)]+    src _	= usage ["only one input uri or file allowed\n"]++    help Nothing	= return ()+    help (Just _)	= usage []++-- ------------------------------------------------------------++
+ examples/hsvg/index.html.jpg view

binary file changed (absent → 48429 bytes)

+ examples/hsvg/www.fh-wedel.de.index.html.jpg view

binary file changed (absent → 55563 bytes)

+ examples/hsvg/www.haskell.org.index.html.jpg view

binary file changed (absent → 31283 bytes)

+ examples/hsvg/www.w3.org.index.html.jpg view

binary file changed (absent → 179068 bytes)

+ examples/hunit/HUnitExample.hs view
@@ -0,0 +1,616 @@+-- |+-- HUnit - Haskell XML Toolbox examples and tests+--+-- Author: Uwe Schmidt uwe@fh-wedel.de+--+-- Version : $Id: HUnitExample.hs,v 1.8 2005/04/14 12:52:51 hxml Exp $++module Main where++import System+import Test.HUnit+import Text.XML.HXT.Parser+import Data.Char++aMinimalDoc	:: XmlTree+aMinimalDoc	= mkRootTree [] (xtext "<?xml version='1.0'?><x/>")++aSimpleXHTMLDoc	:: XmlTree+aSimpleXHTMLDoc+    = mkRootTree+      ( xattr a_source "simple.xml" )+      ( xtext +	( concatMap (++ "\n")+	  [ "<?xml version='1.0'?>"+	  , "<html>"+	  , " <head><title>A Simple XHTML Document</title></head>"+	  , " <body>"+	  , " </body>"+	  , "</html>"+	  ]+	)+      )++mkMinimalDoc	:: String -> XmlTree+mkMinimalDoc cont+    = mkRootTree [] (xtext cont)++mkInputDoc	:: String -> XmlTree+mkInputDoc src+    = mkRootTree ( xattr a_source src) []++mkDoc	:: String -> XmlTree+mkDoc cont+    = mkRootTree+      ( xattr a_source "a test")+      ( xtext ("<?xml version='1.0' encoding='" ++ isoLatin1 ++ "'?>\n" ++ cont) )++-- |+-- compare trees++testEqualTrees	:: XmlTrees -> XmlTrees -> Test+testEqualTrees e1 e2+    = TestCase $+      assertEqual "" e1 e2++-- |+-- testDocFilter creates a test for the application of a pure+-- functional filter to a XML tree. The result is converted into+-- the external string representation and compared with the expected+-- result.+--+-- see also: 'testStateFilter' and 'testEditFilter'++testDocFilter	:: String -> XmlFilter -> XmlTree -> Test+testDocFilter expected xfilter doc+    = TestCase $+      assertEqual "" expected (xshow $ xfilter doc)++-- |+-- testStateFilter creates a test for monadic filters, doing IO and using+-- the internal state, consisting of program options and status information+-- The filter is applied to a XML tree, the result is converted to a string+-- and this result is compared with the expected result.+--+-- see also: 'testEditFilter' for pure functional filters++testStateFilter	:: String -> XmlStateFilter () -> XmlTree -> Test+testStateFilter expected xfilter input+    = TestCase $+      do+      res <- run' $ xfilter input+      assertEqual "" expected (xshow res)++-- |+-- The test bed for edit filter for external documents.+-- The input tree must specify the external document to be read.+-- This document is checked for wellformedness, canonicalized+-- (char refs substituted, ...) and processed with the edit filter.+-- The result is transformed into the string representation and compared+-- with the expected string.++testEditFilter	:: String -> XmlFilter -> XmlTree -> Test+testEditFilter expected xfilter input+    = TestCase $+      do+      res <- run'+	     $ ( getWellformedDoc					-- read the document+		 .>>+		 liftMf canonicalizeAllNodes				-- normalize the document and remove <?xml ... ?> decl+		 .>>+		 liftMf ( processChildren xfilter )			-- apply the editing filter only to the 'real' document+		 .>>				  			-- nodes, not to nodes surrounding the document tag+		 putXmlTree						-- just trace output+		 .>>+		 liftMf getChildren					-- just for comparing the document contents+	       )+	     input+      assertEqual "" expected (xshow res)+++-- |+-- ausiliary function to make haskell string constants with quotes more readable++singleToDoubleQuote	:: String -> String+singleToDoubleQuote+    = map (\ c -> if c == '\'' then '"' else c)++-- |+-- the complete set of test cases++allTests	:: Test+allTests+    = TestList+      [ constructionTests+      , treeConstructionTests+      , parseTests+      , inputTests+      , removeTests+      , simpleSelectionTests+      , namespaceTests+      ]++-- |+-- tree versus filter construction tests+-- documents may be constructed by tree operations+-- or with the more flexible filter operations applied to an arbitray tree++treeConstructionTests :: Test+treeConstructionTests+    = TestLabel "tree and filter construction tests" $+      TestList $+      map (\ (t, f) -> testEqualTrees t (f undefined) )+      [ (xtext "xyz",				txt "xyz"			)+      , (xcmt "cmt",				cmt "cmt"			)+      , (xtag "img" [] [],			tag "img" [] []			)+      , (xtag "img" [] [],			etag "img"			)++      , (xtag "img" (xattr "b" "13") [],	tag "img" [sattr "b" "13"] []	)++      , (xtag "img" (xattr "b" "13") [],	atag "img" [sattr "b" "13"]	)++      , (xtag "t" (xattr "a" "42" ++ xattr "b" "id")+	          (xtext "abc"),+						tag "t" [sattr "a" "42", sattr "b" "id"]+	 						[txt "abc"]		)+      ]++-- |+-- construction tests are all applied to the empty document,+-- no information is used from that document,+-- but construction is lifted to the filter level.+-- this is more general than explicit construction.+-- in more complex examples some information may be extracted from+-- the source, some can be constant.+-- +-- see also: 'testDocFilter'++constructionTests	:: Test+constructionTests+    = TestLabel "document construction tests" $+      TestList $+      map (\ (res, f) -> testDocFilter res f undefined)		-- undefined or something else, e.g. emptyRoot+      [ ("<x/>"		, mkXTag  "x" none none	)+      , ("<x/>"		, tag "x"  [] []	)		-- syntactically more comfortable shortcut for mkXTag+      , ("<x/>"		, stag "x" []		)		-- shortcut for tags without attributes+      , ("<x/>"		, atag "x" []		)		-- shortcut for empty tags with attributes+      , ("<x/>"		, etag "x"		)		-- shortcut for empty tags without attributes++      , ("<x a=\"1\"/>"+			, mkXTag "x" (mkXAttr "a" (mkXText "1")) none	)+      , ("<x a=\"1\">42</x>"+			, mkXTag "x" (mkXAttr "a" (mkXText "1")) (mkXText "42")	)+      , ("<x a=\"1\">42</x>"+			, tag "x" [ attr "a" $ txt "1" ] [ txt "42" ]	)+      , ("<x a=\"1\">42</x>"+			, tag "x" [ sattr "a" "1" ] [ txt "42" ]	)++      , ("<x a=\"1\"/>"	, atag "x" [ sattr "a" "1" ]	)++      , ("<x a=\"1\" b=\"2\">42<y/>43</x>"+			, tag "x" [ sattr "a" "1"+				  , sattr "b" "2"+				  ] [ txt  "42"+				    , etag "y"+				    , txt  "43"+				    ]	)+      , ("<!-- a comment -->"+			, mkXCmt $ txt " a comment "	)+      , ("<!--a comment-->"+			, cmt "a comment"	)		-- short cut for uncomputed comment++      , ("<!-- an illegal XML comment containing 2 -- in comment text -->"+			, cmt " an illegal XML comment containing 2 -- in comment text "	)++      , ("&#42;"   	, mkXCharRef 42		)+      , ("&lt;"    	, mkXEntityRef "lt"	)+      , ("<![CDATA[<abc>]]>"+			, mkXCdata $ txt "<abc>")+      , ("<![CDATA[<abc>]]>"			-- short cut for uncomputed cdata content+			, cdata "<abc>")+      , ("<?abc xyz?>"	, mkXPi "abc" $ txt "xyz"	)+      , ("<?abc xyz?>"	, spi "abc" "xyz"	)	-- short cut for an uncomputed pi content+      ]++-- |+-- simple selection tests++simpleSelectionTests	:: Test+simpleSelectionTests+    = TestLabel "simple tree selection tests" $+      TestList $+      map (\ (res, f) -> testDocFilter (singleToDoubleQuote res) f simpleDoc)+      [ (src		, this	)+      , ("1"		, getValue "a"	)+      , (""		, getValue "b"	)+      , (body1		, getChildren	)++				-- text selection+      , ("xyz"		, getChildren .> isXText	)+      , ("xyz"		, getChildren .> isText "xyz"	)+      , (""		, getChildren .> isText "abc"	)+      , ("xyz"		, getChildren .> isOfText (>="x")	)+      , (""		, getChildren .> isOfText (<"x")	)+      , (""		, getChildren .> isWhiteSpace	)++				-- tag selection+      , ("<t a='42' b='id'>abc</t><img b='13'/><y x='0'/><z/>"+			, getChildren .> isXTag	)++				-- comment selection+      , ("<!--cmt-->"	, getChildren .> isXCmt	)++				-- text OR tag selection+      , ("<t a='42' b='id'>abc</t><img b='13'/>xyz<y x='0'/><z/>"+			, getChildren .> (isXTag +++ isXText)	)++				-- generalised OR+      , ("<t a='42' b='id'>abc</t><img b='13'/>xyz<y x='0'/><z/>"+			, getChildren .> cat [isXTag, isXText]	)++      , ("abc"		, getChildren .> getChildren	)++				-- atribute value selection+      , ("1"		, getValue "a"	)++      , ("<t a='42' b='id'>abc</t>"+			, getChildren .> isTag "t"	)++				-- attribute selection+      , ("<t a='42' b='id'>abc</t>"+			, getChildren .> hasAttr "a"	)++      , ("42"		, getChildren .> getValue "a"	)+      , ("42"		, getChildren .> hasValue "a" (all isDigit)	)+      , ("13"		, getChildren .> hasValue "b" (all isDigit)	)+      , (""		, getChildren .> isTag "t" .> hasValue "b" (all isDigit)	)+      , ("42"		, getChildren .> hasValue "a" (== "42")	)+      , (""		, getChildren .> hasValue "a" (== "43")	)+      , ("42"		, getChildren .> hasValue "a" (\ str -> ((read str)::Int) > 40)	)+      , ("42"		, getChildren .> hasValue "a" (not . null)	)+      , ("id13"		, getChildren .> hasValue "b" (const True)	)+      , ("13"		, getChildren .> isTag "img" .> hasValue "b" (const True)	)+      , (""		, getChildren .> hasValue "c" (const True)	)++      , (" a='42' b='id' b='13' x='0'"+			, getChildren .> getAttrl	)++      , (" a='42' b='id'"+			, getChildren .> isTag "t" .> getAttrl	)++      , ("42id"		, getChildren .> isTag "t" .> getAttrl .> getChildren	)++      , (" b='id' b='13'"+			, getChildren .> getAttrl .> isAttr "b"	)++      , (" b='13'"	, getChildren .> isTag "img" .> getAttrl .> isAttr "b"	)+      , ("13"		, getChildren .> isTag "img" .> getAttrl .> isAttr "b" .> getChildren	)+      , ("13"		, getChildren .> isTag "img" .> getValue "b"	)+      , ("timgyz"	, getChildren .> getName	)+      , ("t"		, getChildren .> isTag "t" .> getName	)+      , ("abbx"		, getChildren .> getAttrl  .> getName	)+      , ("bb"		, getChildren .> getAttrl  .> isAttr "b" .> getName	)+      , ("ab"		, getChildren .> isTag "t" .> getAttrl   .> getName	)+      , ("b"		, getChildren .> isTag "t" .> getAttrl   .> isAttr "b" .> getName	)++				-- deep search for text or tags+      , ("abcxyz"       , deep isXText	)+      , ("abc"	        , deep (isTag "t") .> deep isXText	)+      ]+    where+    src = "<r a='1'>" ++ body1 ++ "</r>"+    body1 = "<!--cmt-->"+	    ++ "<t a='42' b='id'>abc</t>"+	    ++ "<img b='13'/>"+	    ++ "xyz"+	    ++ "<y x='0'/>"+	    ++ "<z/>"++    sDocFilter+	= tag "r" [ sattr "a" "1" ]+	    [ cmt "cmt"+	    , tag "t" [ sattr "a" "42", sattr "b" "id" ]+		[ txt "abc"+		]+	    , atag "img" [ sattr "b" "13" ]+	    , txt "xyz"+	    , atag "y" [ sattr "x" "0" ]+	    , etag "z"+	    ]+    simpleDoc = head $ sDocFilter undefined++-- |+-- simple tests with namespaces++namespaceTests	:: Test+namespaceTests+    = TestLabel "namespace tests" $+      TestList $+      map (\ (res, f) -> testDocFilter (singleToDoubleQuote res) f simpleDoc)+      [ (src		, this	)+					-- select all "t" tags, even nested ones (multi) and extract the text from the body+      , ("sssaaa"	, multi (isTag "t"                    .> getChildren .> isXText)	)++					-- select all text within all tags of a specific namespace+      , ("sssaaazzzeee"	, multi (isXTag .> hasNamespace "dns" .> getChildren .> isXText)	)+      , ("bbb"		, multi (isXTag .> hasNamespace "n1"  .> getChildren .> isXText)	)+      , ("cccdddfffggg"	, multi (isXTag .> hasNamespace "n2"  .> getChildren .> isXText)	)++					-- select all text within all tags with a specific local name+      , ("sssaaabbbcccdddzzz"+			, multi (isXTag .> hasLocalPart "t"   .> getChildren .> isXText)	)+      , ("eee"		, multi (isXTag .> hasLocalPart "e"   .> getChildren .> isXText)	)++					-- select all text within all tags with a specific prefix+      , ("bbbddd"	, multi (isXTag .> hasPrefix "x"      .> getChildren .> isXText)	)+      , ("ccc"		, multi (isXTag .> hasPrefix "y"      .> getChildren .> isXText)	)+      , ("zzz"		, multi (isXTag .> hasPrefix "z"      .> getChildren .> isXText)	)+      , ("sssaaaeeefffggg"+			, multi (isXTag .> hasPrefix ""       .> getChildren .> isXText)	)++					-- select all attribute values of a specific namespace+					-- !!! the default namespace is not propagated to attribute names+      , ("z5"		, multi (isXTag .> getAttrl .> hasNamespace "dns"   .> getChildren)	)+      , ("2z4"		, multi (isXTag .> getAttrl .> hasNamespace "n1"    .> getChildren)	)+      , ("x3y3u4"	, multi (isXTag .> getAttrl .> hasNamespace "n2"    .> getChildren)	)+      , ("dnsn2"	, multi (isXTag .> getAttrl .> hasLocalPart "xmlns" .> getChildren)	)++					-- select namespaces from all namespace declarations+      , ("dnsn1n2dnsn2n2"+			, multi (isXTag .> getAttrl .> isNamespaceDecl .> getChildren)	)++					-- all default namespace declarations+      , ("dnsn2"	, multi (isXTag .> getAttrl .> hasLocalPart "xmlns" .> getChildren)	)++					-- all none default namespace declarations+      , ("n1n2dnsn2"	, multi (isXTag .> getAttrl .> hasPrefix "xmlns" .> getChildren)	)+      , ("n1n2"		, multi (isXTag .> getAttrl .> hasPrefix "xmlns" .> hasLocalPart "x" .> getChildren)	)+      , ("n2"		, multi (isXTag .> getAttrl .> hasPrefix "xmlns" .> hasLocalPart "y" .> getChildren)	)+      , ("dns"		, multi (isXTag .> getAttrl .> hasPrefix "xmlns" .> hasLocalPart "z" .> getChildren)	)+      ]+    where+						-- the text representation of the tree+						-- with ' instead of " for readablility of the string constants+    src = "<t xmlns='dns' xmlns:x='n1' xmlns:y='n2' xmlns:z='dns'>"+	  ++ "sss"+	  ++ "<t a='1' x:a='2'>aaa</t>"+	  ++ "<x:t a='x1' y:a='x3'>bbb</x:t>"+	  ++ "<y:t a='y1' y:a='y3'>ccc</y:t>"+	  ++ "<x:t xmlns:x='n2' x:a='u4'>ddd</x:t>"+	  ++ "<z:t x:a='z4' z:a='z5'>zzz</z:t>"+	  ++ "<e b='42'>eee</e>"+	  ++ "<f xmlns='n2'>fff<g>ggg</g></f>" +++	  "</t>"++						-- the filter for generating the test document+    sDocFilter+	= tag "t" [ sattr "xmlns"   "dns"	-- 4 namespace declarations+		  , sattr "xmlns:x" "n1"+		  , sattr "xmlns:y" "n2"+		  , sattr "xmlns:z" "dns"+		  ]+            [ txt "sss"+	    , tag "t" [ sattr "a"   "1"+		      , sattr "x:a" "2" ]+	        [ txt "aaa"+		]+	    , tag "x:t" [ sattr "a"   "x1"+			, sattr "y:a" "x3"+			]+	        [ txt "bbb"+		]+	    , tag "y:t" [ sattr "a"   "y1"+			, sattr "y:a" "y3"+			]+	        [ txt "ccc"+		]+	    , tag "x:t" [ sattr "xmlns:x" "n2"	-- redefinition of prefix x:+			, sattr "x:a" "u4"+			]+	        [ txt "ddd"+		]+	    , tag "z:t" [ sattr "x:a" "z4"+			, sattr "z:a" "z5"+			]+	        [ txt "zzz"+		]+	    , tag "e" [ sattr "b" "42" ]+                [ txt "eee"+		]+	    , tag "f" [ sattr "xmlns" "n2"	-- redefinition of default namespace+		      ]+                [ txt "fff"+		, tag "g" [ ]+		    [ txt "ggg" ]+		]+	    ]+						-- create document and propagate namespaces+    simpleDoc = head $ (sDocFilter .> propagateNamespaces) undefined++-- |+-- minimal tests for parsing data.+--+-- the tests are document trees with a root+-- node containing a single text node with the document source.+-- That tree is passed to the parser, which substitutes the text node with the parsed xml tree.+-- In general this may be a list of trees containing also the+-- surrounding parts like the xml declaraion, the document type definition+-- possibly comments and processing instructions.+--+-- see also: 'testStateFilter'++parseTests	:: Test+parseTests+    = TestLabel "minimal parser tests" $+      TestList +      [ testStateFilter "</><x/><//>"	parseXmlDoc				mini	-- the tree inclusive root node+      , testStateFilter "<x/>"	(parseXmlDoc .>> liftMf getChildren)		mini	-- only the content+      , testStateFilter "<x/>"	(parseXmlDoc .>> liftMf getChildren)		min2	-- same content+      , testStateFilter ""	(parseXmlDoc .>> liftMf getChildren)		minErr	-- syntax error: content empty+      , testStateFilter errr	(parseXmlDoc .>> liftMf (getValue a_status))	minErr	-- syntax error reported in a_status+      ]+    where+    errr	= show c_err+    mini	= mkMinimalDoc "<x/>"+    min2	= mkMinimalDoc "<x></x>"+    minErr	= mkMinimalDoc "<x>"+++-- |+-- simple external file containing one tag++mini1		:: XmlTree+mini1		= newDocument "mini1.xml"		-- test documents++-- |+-- simple external file containing one tag++mini2		:: XmlTree+mini2		= newDocument "mini2.xml"++-- |+-- simple not existing external file++notThere	:: XmlTree+notThere	= newDocument "notThere.xml"		-- does not exist++-- |+-- These test check the access to external files+-- and error reporting in case of input or parse errors+-- Some test issue tree like trace output of the documents read+-- to show the internal structure and nesting++inputTests	:: Test+inputTests+    = TestLabel "input tests" $+      TestList+      [ testStateFilter "mini1.xml"+	                        ( putXmlTree .>>+				  liftMf (getValue a_source)+				)					mini1+      , testStateFilter ok	( liftMf (getValue a_status)+				)					mini1+      , testStateFilter ""	( liftMf getChildren+				)					mini1+      , testStateFilter "<x/>"	( getXmlContents .>>+				  putXmlTree .>>+				  liftMf getChildren+				)					mini1+      , testStateFilter ok	( getXmlContents .>>+				  liftMf (getValue a_status)+				)					mini1+      , testStateFilter "4"	( getXmlContents .>>+				  liftMf getContentLength .>>+				  putXmlTree .>>+				  liftMf (getValue a_contentLength)+				)					mini1+      , testStateFilter ok	( getXmlContents .>>+				  liftMf (getValue a_status)+				)					mini2+      , testStateFilter ""	( getXmlContents .>>+				  putXmlTree .>>+				  liftMf getChildren+				)					notThere+      , testStateFilter fat	( getXmlContents .>>+				  liftMf (getValue a_status)+				)					notThere+      ]+    where+    ok	= show c_ok+    fat	= show c_fatal++-- |+-- A few tests for removing parts of a document tree.+-- As input tree the document in file mini2.xml is used.++removeTests	:: Test+removeTests+    = TestLabel "document transformation tests" $+      TestList+      [ testEditFilter allText	getAllText				mini2+      , testEditFilter allData  (removeAllWhiteSpace .> getAllText)	mini2+      , testEditFilter allImp	(removeIgnorableData .> getAllText)	mini2+      , testEditFilter allDat	(removeMeta .> getAllText)		mini2+      ]+    where+    getAllText			= deep isXText+    containsUnknownOrIgnore	= getChildren .> ( isText "unknown"+						   ++++						   isText "ignore"+						 )+    removeIgnorableData		= processTopDown ( none+						   `when`+						   ( isTag "data" .> containsUnknownOrIgnore )+						 )+    removeMeta			= processTopDown ( none+						   `when`+						   ( isTag "data" .> hasValue "class" ( == "meta" ) )+						 )+    allText	= " ignore unknown important important "+    allData	= "ignoreunknownimportantimportant"+    allImp	= "   important important "+    allDat	= " ignore  important  "+++ys :: XmlTree+ys = head $+     tag "s:Envelope"+     [ sattr "xmlns:s" "http://schemas.xmlsoap.org/soap/envelope/",+       sattr "xmlns:xenc" "http://www.w3.org/2001/04/xmlenc#",+       sattr "xmlns:eg" "http://example.org/paymentv2",+       sattr "xmlns:wsse" "http://schemas.xmlsoap.org/ws/2002/12/secext"+     ]+     [ stag "s:Header"+       [ stag "wsse:Security"+         [ tag "wsse:BinarySecurityToken"+           [ sattr "ValueType" "wsse:Kerberosv5ST",+             sattr "EncodingType" "wsse:Base64Binary"+           ]+           [ txt "QMwcAG ..."+           ]+	 ]+       ],+       stag "s:Body"+       [ stag "eg:OrderCurrency"+         [ stag "eg:Name"+           [ txt "John Smith" ],+	   tag "eg:Amount"+           [ sattr "Currency" "'USD'" ]+	   [ txt "1000" ],+	   tag "eg:CreditCard"+           [ sattr "Limit" "'5000'",+	     sattr "Currency" "'GBP'"+	   ]+	   [ stag "xenc:EncryptedData"+             [ atag "xenc:EncryptionMethod"+               [ sattr "Algorithm" "http://www.w3.org/2001/04/xmlenc#tripledes-cbc" ]+             ],+	     stag "xenc:CipherData"+             [ stag "xenc:CipherValue"+               [ txt "r5KipsDV ..." ]+             ]+	   ]+         ]+       ]+     ]+     .> propagateNamespaces+     .> indentDoc+     $ undefined+++main	:: IO ()+main+    = do+      c <- runTestTT allTests+      putStrLn $ show c+      let errs = errors c+	  fails = failures c+      System.exitWith (codeGet errs fails)++codeGet	:: Int -> Int -> ExitCode+codeGet errs fails+    | fails > 0       = ExitFailure 2+    | errs > 0        = ExitFailure 1+    | otherwise       = ExitSuccess++-- ----------------------------------------------------------
+ examples/hunit/Makefile view
@@ -0,0 +1,32 @@+# $Id: Makefile,v 1.6 2005/04/14 12:52:51 hxml Exp $++HXT_HOME	= ../..+PKGFLAGS	=+GHCFLAGS	= -Wall -O2+GHC		= ghc $(GHCFLAGS) $(PKGFLAGS)++prog		= HUnitExample++all		: $(prog)++force		:+		$(GHC) --make $(GHCPACKAGES) -o $(prog) $(prog).hs++$(prog)		: $(prog).hs+		$(GHC) --make $(GHCPACKAGES) -o $@ $<++test		: $(prog)+		@echo "===> run HUnit examples" ; echo ; sleep 2+		$(prog)++DIST		= $(HXT_HOME)/dist/examples+DIST_DIR	= $(DIST)/hunit+DIST_FILES	= mini1.xml mini2.xml Makefile $(prog).hs++dist		:+		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)+		cp $(DIST_FILES) $(DIST_DIR)++clean		:+		rm -f $(prog) $(prog).o $(prog).hi+
+ examples/hunit/mini1.xml view
@@ -0,0 +1,1 @@+<x/>
+ examples/hunit/mini2.xml view
@@ -0,0 +1,1 @@+<data> <data class="data">ignore</data> <data class="meta">unknown</data> <data><data class="data">important</data> <data class="meta">important</data></data> </data>
+ examples/hxpath/HXPath.hs view
@@ -0,0 +1,162 @@+-- |+-- HXPath - XPath Evaluator of the Haskell XML Toolbox+--+-- Author : Torben Kuseler, Uwe Schmidt+--+-- Version : $Id: HXPath.hs,v 1.8 2004/09/02 19:11:53 hxml Exp $++module Main(main)+where++import Text.XML.HXT.Parser		-- import all stuff for parsing, validating, and transforming XML+import Text.XML.HXT.XPath++import System.IO			-- import the IO and commandline option stuff+import System.Environment+import System.Console.GetOpt+import System.Exit++import Data.Maybe+++-- ------------------------------------------------------------++-- |+-- the main program of the Haskell XML Validating Parser++main :: IO ()+main+    = do+      argv <- getArgs+      al   <- cmdlineOpts argv+      res  <- run'+	      $ xpath+		    $ newDocument' al			-- build a XML root from the list and start parsing+      exitProg (null res)				-- set return code and terminate++-- ------------------------------------------------------------++exitProg	:: Bool -> IO a+exitProg True	= exitWith (ExitFailure (-1))+exitProg False	= exitWith ExitSuccess++-- ------------------------------------------------------------++-- |+-- the /real/ main program+--+-- runs in the trivial XmlState monad (with user state set to ())+-- so IO and access to global options is possible++xpath	:: XmlStateFilter state+xpath t+    = parseDocument []+      .>>+      evalXPathExpr+      .>>+      traceMsg 1 "evaluation finished"+      .>>+      traceSource+      .>>+      traceTree+      .>>+      liftMf formatXPathResult+      .>>+      writeDocument []+      .>>+      checkStatus+      $ t+      where++      evalXPathExpr		:: XmlStateFilter state+      evalXPathExpr t'+	  = let+	    expr = valueOf "expr" t'+	    res1 = getXPath expr  t'+            in+	    do+	    trace 1 ("evaluating XPath expression" ++ show expr)+	    res2 <- issueError $$< res1+	    return ( if length res2 == length res1+		     then replaceChildren res2 t'+		     else replaceChildren []   t'+		   )++      formatXPathResult 	:: XmlFilter+      formatXPathResult t'+	  = replaceChildren (xpRes t') t'+	    where+	    xpRes+		= mkXTag "xpath-result" xpAttr formatRes+	    xpAttr+		= ( getAttrl+		    .> ( isAttr "expr"+			 ++++			 isAttr "source"+		       )+		  )+	    formatRes+		= addFirstNL . (getChildren .> (this +++ nl))+	    addFirstNL+		= (nl t' ++)+	    nl	= if newline+		  then txt "\n"+		  else none+            newline+		= satisfies (hasAttr a_indent) t'++-- ------------------------------------------------------------+--+-- the options definition part+-- see doc for System.Console.GetOpt++progName	:: String+progName	= "HXPath"+    +options 	:: [OptDescr (String, String)]+options+    = generalOptions+      +++      inputOptions+      +++      outputOptions++usage		:: [String] -> IO a+usage errl+    | null errl+	= do+	  hPutStrLn stdout use+	  exitProg False+    | otherwise+	= do+	  hPutStrLn stderr (concat errl ++ "\n" ++ use)+	  exitProg True+    where+    header = "HXPath - XPath Evaluator of the Haskell XML Toolbox\n" +++             "Usage: " ++ progName ++ " [OPTION...] <XPath expr> <URL or FILE>"+    use    = usageInfo header options++cmdlineOpts 	:: [String] -> IO (Attributes)+cmdlineOpts argv+    = case (getOpt Permute options argv) of+      (ol,n,[]  )+	  -> do+	     help (lookup a_help ol)+	     sa <- src n+	     return (ol ++ sa)+      (_,_,errs)+	  -> usage errs+    where+    src [expr, url]+	= return [(a_source, url), ("expr", expr)]+    src []+	= usage ["XPath expression and input file/url missing"]+    src [_]+	= usage ["input file/url missing"]+    src _+	= usage ["too many arguments"]++    help Nothing	= return ()+    help (Just _)	= usage []++-- ------------------------------------------------------------
+ examples/hxpath/Makefile view
@@ -0,0 +1,52 @@+# $Id: Makefile,v 1.6 2005/04/14 12:52:52 hxml Exp $++HXT_HOME	= ../..+PKGFLAGS	= +GHCFLAGS	= -Wall -O2+GHC		= ghc $(GHCFLAGS) $(PKGFLAGS)++prog		= HXPath++all		: $(prog)++force		:+		$(GHC) --make -o $(prog) $(prog).hs++$(prog)		: $(prog).hs+		$(GHC) --make -o $@ $<++EX		= ../xhtml/xhtml.xml++test		: $(prog)+		@echo "===> XPath extraction examples" ; echo ; sleep 2+		@$(MAKE) test1 test2 test3 test4++test1		:+		@echo "===> extract all text from the XHTML document" ; echo ; sleep 2+		./$(prog) --do-not-validate "/html/body/descendant-or-self::text()" $(EX)+		@echo++test2		:+		@echo "===> extract the 42. paragraph from the XHTML document" ; echo ; sleep 2+		./$(prog) --do-not-validate "/descendant::p[position()=42]" $(EX)+		@echo++test3		:+		@echo "===> extract the text of all top level h1 tags from the XHTML document" ; echo ; sleep 2+		./$(prog) --indent --do-not-validate "/child::html/child::body/child::h1/descendant-or-self::text()" $(EX)+		@echo++test4		:+		@echo "===> extract all href attributes from a tags from the XHTML document" ; echo ; sleep 2+		./$(prog) --indent --do-not-validate "/descendant::a/attribute::href" $(EX)+		@echo++DIST		= $(HXT_HOME)/dist/examples+DIST_DIR	= $(DIST)/hxpath++dist		:+		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)+		cp Makefile $(prog).hs $(DIST_DIR)++clean		:+		rm -f $(prog) *.hi *.o
+ examples/mini/Makefile view
@@ -0,0 +1,34 @@+# $Id: Makefile,v 1.5 2005/04/14 12:52:52 hxml Exp $++HXT_HOME	= ../..+PKGFLAGS	=+GHCFLAGS	= -Wall -O2+GHC		= ghc $(GHCFLAGS) $(PKGFLAGS)++prog		= ParseExample++all		: $(prog)++force		:+		$(GHC) --make -o $(prog) $(prog).hs++$(prog)		: $(prog).hs+		$(GHC) --make -o $@ $<++test		:+		@echo "===> a very simple test"+		@echo "===> a xml source"+		@cat example1.xml+		@sleep 2; echo "===> parse, validate and normalise the document"+		./$(prog) example1.xml++DIST		= $(HXT_HOME)/dist/examples+DIST_DIR	= $(DIST)/mini++dist		:+		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)+		cp example1.xml Makefile $(prog).hs $(DIST_DIR)++clean		:+		rm -f $(prog) *.o *.hi+
+ examples/mini/ParseExample.hs view
@@ -0,0 +1,50 @@+-- |+-- This is a simple example for parsing and validating an XML file and printing the generated+-- XmlTree to standard out.+--+-- Author : .\\artin Schmidt+-- Version : $Id: ParseExample.hs,v 1.4 2004/09/02 19:11:53 hxml Exp $++module Main(main)+where++import Text.XML.HXT.Parser++import System.IO+import System++--+-- call this program with a single parameter for the file or uri to be processed+-- e.g. ParseExample example1.xml++main :: IO ()+main+    = do+      argv <- getArgs+			      -- take the first cmdline argument as source name+			      -- start the XState monad with the runParser command+      res  <- run' $ parser [(a_source, head argv)] emptyRoot+      exitProg res++-- run a command in the XState monad.+-- this monad includes the IO monad, a system state for global options+-- and a user definable state (type parameter state). This user state is+-- set to () (the empty state) by the run' command.+-- There are more general run commands: run, run0 in case of a proccessing+-- function, that requires e.g. an environment++parser	:: Attributes -> XmlStateFilter ()+parser al+    = parseDocument al+      .>>+      writeDocument [(a_indent, v_1)]	-- indent document and output to stdout+      .>>+      checkStatus			-- check status++-- ------------------------------------------------------------++exitProg	:: [a] -> IO ()+exitProg []	= exitWith (ExitFailure (-1))+exitProg _	= exitWith ExitSuccess++-- ------------------------------------------------------------
+ examples/mini/example1.xml view
@@ -0,0 +1,22 @@+<?xml version="1.0" encoding="ISO-8859-1" ?>++<!DOCTYPE a [+<!ATTLIST a  att1  NMTOKENS  #IMPLIED+             att2  ID        #REQUIRED>+<!ATTLIST b  btt2  ID        #REQUIRED+             btt3  IDREF     #REQUIRED>+<!ELEMENT a  (b, cü?)>+<!ELEMENT b  EMPTY>+<!ELEMENT cü (#PCDATA)>+]>++<?pi a processing instruction?>++<a att1=" test+          äöüß+          test "+   att2="root"+>+    <b btt2="b1" btt3="root"/>+    <cü>hello world äöüß test</cü>+</a>
+ examples/xhtml/xhtml-lat1.ent view
@@ -0,0 +1,196 @@+<!-- Portions (C) International Organization for Standardization 1986+     Permission to copy in any form is granted for use with+     conforming SGML systems and applications as defined in+     ISO 8879, provided this notice is included in all copies.+-->+<!-- Character entity set. Typical invocation:+    <!ENTITY % HTMLlat1 PUBLIC+       "-//W3C//ENTITIES Latin 1 for XHTML//EN"+       "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent">+    %HTMLlat1;+-->++<!ENTITY nbsp   "&#160;"> <!-- no-break space = non-breaking space,+                                  U+00A0 ISOnum -->+<!ENTITY iexcl  "&#161;"> <!-- inverted exclamation mark, U+00A1 ISOnum -->+<!ENTITY cent   "&#162;"> <!-- cent sign, U+00A2 ISOnum -->+<!ENTITY pound  "&#163;"> <!-- pound sign, U+00A3 ISOnum -->+<!ENTITY curren "&#164;"> <!-- currency sign, U+00A4 ISOnum -->+<!ENTITY yen    "&#165;"> <!-- yen sign = yuan sign, U+00A5 ISOnum -->+<!ENTITY brvbar "&#166;"> <!-- broken bar = broken vertical bar,+                                  U+00A6 ISOnum -->+<!ENTITY sect   "&#167;"> <!-- section sign, U+00A7 ISOnum -->+<!ENTITY uml    "&#168;"> <!-- diaeresis = spacing diaeresis,+                                  U+00A8 ISOdia -->+<!ENTITY copy   "&#169;"> <!-- copyright sign, U+00A9 ISOnum -->+<!ENTITY ordf   "&#170;"> <!-- feminine ordinal indicator, U+00AA ISOnum -->+<!ENTITY laquo  "&#171;"> <!-- left-pointing double angle quotation mark+                                  = left pointing guillemet, U+00AB ISOnum -->+<!ENTITY not    "&#172;"> <!-- not sign = discretionary hyphen,+                                  U+00AC ISOnum -->+<!ENTITY shy    "&#173;"> <!-- soft hyphen = discretionary hyphen,+                                  U+00AD ISOnum -->+<!ENTITY reg    "&#174;"> <!-- registered sign = registered trade mark sign,+                                  U+00AE ISOnum -->+<!ENTITY macr   "&#175;"> <!-- macron = spacing macron = overline+                                  = APL overbar, U+00AF ISOdia -->+<!ENTITY deg    "&#176;"> <!-- degree sign, U+00B0 ISOnum -->+<!ENTITY plusmn "&#177;"> <!-- plus-minus sign = plus-or-minus sign,+                                  U+00B1 ISOnum -->+<!ENTITY sup2   "&#178;"> <!-- superscript two = superscript digit two+                                  = squared, U+00B2 ISOnum -->+<!ENTITY sup3   "&#179;"> <!-- superscript three = superscript digit three+                                  = cubed, U+00B3 ISOnum -->+<!ENTITY acute  "&#180;"> <!-- acute accent = spacing acute,+                                  U+00B4 ISOdia -->+<!ENTITY micro  "&#181;"> <!-- micro sign, U+00B5 ISOnum -->+<!ENTITY para   "&#182;"> <!-- pilcrow sign = paragraph sign,+                                  U+00B6 ISOnum -->+<!ENTITY middot "&#183;"> <!-- middle dot = Georgian comma+                                  = Greek middle dot, U+00B7 ISOnum -->+<!ENTITY cedil  "&#184;"> <!-- cedilla = spacing cedilla, U+00B8 ISOdia -->+<!ENTITY sup1   "&#185;"> <!-- superscript one = superscript digit one,+                                  U+00B9 ISOnum -->+<!ENTITY ordm   "&#186;"> <!-- masculine ordinal indicator,+                                  U+00BA ISOnum -->+<!ENTITY raquo  "&#187;"> <!-- right-pointing double angle quotation mark+                                  = right pointing guillemet, U+00BB ISOnum -->+<!ENTITY frac14 "&#188;"> <!-- vulgar fraction one quarter+                                  = fraction one quarter, U+00BC ISOnum -->+<!ENTITY frac12 "&#189;"> <!-- vulgar fraction one half+                                  = fraction one half, U+00BD ISOnum -->+<!ENTITY frac34 "&#190;"> <!-- vulgar fraction three quarters+                                  = fraction three quarters, U+00BE ISOnum -->+<!ENTITY iquest "&#191;"> <!-- inverted question mark+                                  = turned question mark, U+00BF ISOnum -->+<!ENTITY Agrave "&#192;"> <!-- latin capital letter A with grave+                                  = latin capital letter A grave,+                                  U+00C0 ISOlat1 -->+<!ENTITY Aacute "&#193;"> <!-- latin capital letter A with acute,+                                  U+00C1 ISOlat1 -->+<!ENTITY Acirc  "&#194;"> <!-- latin capital letter A with circumflex,+                                  U+00C2 ISOlat1 -->+<!ENTITY Atilde "&#195;"> <!-- latin capital letter A with tilde,+                                  U+00C3 ISOlat1 -->+<!ENTITY Auml   "&#196;"> <!-- latin capital letter A with diaeresis,+                                  U+00C4 ISOlat1 -->+<!ENTITY Aring  "&#197;"> <!-- latin capital letter A with ring above+                                  = latin capital letter A ring,+                                  U+00C5 ISOlat1 -->+<!ENTITY AElig  "&#198;"> <!-- latin capital letter AE+                                  = latin capital ligature AE,+                                  U+00C6 ISOlat1 -->+<!ENTITY Ccedil "&#199;"> <!-- latin capital letter C with cedilla,+                                  U+00C7 ISOlat1 -->+<!ENTITY Egrave "&#200;"> <!-- latin capital letter E with grave,+                                  U+00C8 ISOlat1 -->+<!ENTITY Eacute "&#201;"> <!-- latin capital letter E with acute,+                                  U+00C9 ISOlat1 -->+<!ENTITY Ecirc  "&#202;"> <!-- latin capital letter E with circumflex,+                                  U+00CA ISOlat1 -->+<!ENTITY Euml   "&#203;"> <!-- latin capital letter E with diaeresis,+                                  U+00CB ISOlat1 -->+<!ENTITY Igrave "&#204;"> <!-- latin capital letter I with grave,+                                  U+00CC ISOlat1 -->+<!ENTITY Iacute "&#205;"> <!-- latin capital letter I with acute,+                                  U+00CD ISOlat1 -->+<!ENTITY Icirc  "&#206;"> <!-- latin capital letter I with circumflex,+                                  U+00CE ISOlat1 -->+<!ENTITY Iuml   "&#207;"> <!-- latin capital letter I with diaeresis,+                                  U+00CF ISOlat1 -->+<!ENTITY ETH    "&#208;"> <!-- latin capital letter ETH, U+00D0 ISOlat1 -->+<!ENTITY Ntilde "&#209;"> <!-- latin capital letter N with tilde,+                                  U+00D1 ISOlat1 -->+<!ENTITY Ograve "&#210;"> <!-- latin capital letter O with grave,+                                  U+00D2 ISOlat1 -->+<!ENTITY Oacute "&#211;"> <!-- latin capital letter O with acute,+                                  U+00D3 ISOlat1 -->+<!ENTITY Ocirc  "&#212;"> <!-- latin capital letter O with circumflex,+                                  U+00D4 ISOlat1 -->+<!ENTITY Otilde "&#213;"> <!-- latin capital letter O with tilde,+                                  U+00D5 ISOlat1 -->+<!ENTITY Ouml   "&#214;"> <!-- latin capital letter O with diaeresis,+                                  U+00D6 ISOlat1 -->+<!ENTITY times  "&#215;"> <!-- multiplication sign, U+00D7 ISOnum -->+<!ENTITY Oslash "&#216;"> <!-- latin capital letter O with stroke+                                  = latin capital letter O slash,+                                  U+00D8 ISOlat1 -->+<!ENTITY Ugrave "&#217;"> <!-- latin capital letter U with grave,+                                  U+00D9 ISOlat1 -->+<!ENTITY Uacute "&#218;"> <!-- latin capital letter U with acute,+                                  U+00DA ISOlat1 -->+<!ENTITY Ucirc  "&#219;"> <!-- latin capital letter U with circumflex,+                                  U+00DB ISOlat1 -->+<!ENTITY Uuml   "&#220;"> <!-- latin capital letter U with diaeresis,+                                  U+00DC ISOlat1 -->+<!ENTITY Yacute "&#221;"> <!-- latin capital letter Y with acute,+                                  U+00DD ISOlat1 -->+<!ENTITY THORN  "&#222;"> <!-- latin capital letter THORN,+                                  U+00DE ISOlat1 -->+<!ENTITY szlig  "&#223;"> <!-- latin small letter sharp s = ess-zed,+                                  U+00DF ISOlat1 -->+<!ENTITY agrave "&#224;"> <!-- latin small letter a with grave+                                  = latin small letter a grave,+                                  U+00E0 ISOlat1 -->+<!ENTITY aacute "&#225;"> <!-- latin small letter a with acute,+                                  U+00E1 ISOlat1 -->+<!ENTITY acirc  "&#226;"> <!-- latin small letter a with circumflex,+                                  U+00E2 ISOlat1 -->+<!ENTITY atilde "&#227;"> <!-- latin small letter a with tilde,+                                  U+00E3 ISOlat1 -->+<!ENTITY auml   "&#228;"> <!-- latin small letter a with diaeresis,+                                  U+00E4 ISOlat1 -->+<!ENTITY aring  "&#229;"> <!-- latin small letter a with ring above+                                  = latin small letter a ring,+                                  U+00E5 ISOlat1 -->+<!ENTITY aelig  "&#230;"> <!-- latin small letter ae+                                  = latin small ligature ae, U+00E6 ISOlat1 -->+<!ENTITY ccedil "&#231;"> <!-- latin small letter c with cedilla,+                                  U+00E7 ISOlat1 -->+<!ENTITY egrave "&#232;"> <!-- latin small letter e with grave,+                                  U+00E8 ISOlat1 -->+<!ENTITY eacute "&#233;"> <!-- latin small letter e with acute,+                                  U+00E9 ISOlat1 -->+<!ENTITY ecirc  "&#234;"> <!-- latin small letter e with circumflex,+                                  U+00EA ISOlat1 -->+<!ENTITY euml   "&#235;"> <!-- latin small letter e with diaeresis,+                                  U+00EB ISOlat1 -->+<!ENTITY igrave "&#236;"> <!-- latin small letter i with grave,+                                  U+00EC ISOlat1 -->+<!ENTITY iacute "&#237;"> <!-- latin small letter i with acute,+                                  U+00ED ISOlat1 -->+<!ENTITY icirc  "&#238;"> <!-- latin small letter i with circumflex,+                                  U+00EE ISOlat1 -->+<!ENTITY iuml   "&#239;"> <!-- latin small letter i with diaeresis,+                                  U+00EF ISOlat1 -->+<!ENTITY eth    "&#240;"> <!-- latin small letter eth, U+00F0 ISOlat1 -->+<!ENTITY ntilde "&#241;"> <!-- latin small letter n with tilde,+                                  U+00F1 ISOlat1 -->+<!ENTITY ograve "&#242;"> <!-- latin small letter o with grave,+                                  U+00F2 ISOlat1 -->+<!ENTITY oacute "&#243;"> <!-- latin small letter o with acute,+                                  U+00F3 ISOlat1 -->+<!ENTITY ocirc  "&#244;"> <!-- latin small letter o with circumflex,+                                  U+00F4 ISOlat1 -->+<!ENTITY otilde "&#245;"> <!-- latin small letter o with tilde,+                                  U+00F5 ISOlat1 -->+<!ENTITY ouml   "&#246;"> <!-- latin small letter o with diaeresis,+                                  U+00F6 ISOlat1 -->+<!ENTITY divide "&#247;"> <!-- division sign, U+00F7 ISOnum -->+<!ENTITY oslash "&#248;"> <!-- latin small letter o with stroke,+                                  = latin small letter o slash,+                                  U+00F8 ISOlat1 -->+<!ENTITY ugrave "&#249;"> <!-- latin small letter u with grave,+                                  U+00F9 ISOlat1 -->+<!ENTITY uacute "&#250;"> <!-- latin small letter u with acute,+                                  U+00FA ISOlat1 -->+<!ENTITY ucirc  "&#251;"> <!-- latin small letter u with circumflex,+                                  U+00FB ISOlat1 -->+<!ENTITY uuml   "&#252;"> <!-- latin small letter u with diaeresis,+                                  U+00FC ISOlat1 -->+<!ENTITY yacute "&#253;"> <!-- latin small letter y with acute,+                                  U+00FD ISOlat1 -->+<!ENTITY thorn  "&#254;"> <!-- latin small letter thorn with,+                                  U+00FE ISOlat1 -->+<!ENTITY yuml   "&#255;"> <!-- latin small letter y with diaeresis,+                                  U+00FF ISOlat1 -->
+ examples/xhtml/xhtml-special.ent view
@@ -0,0 +1,79 @@+<!-- Special characters for HTML -->++<!-- Character entity set. Typical invocation:+     <!ENTITY % HTMLspecial PUBLIC+        "-//W3C//ENTITIES Special for XHTML//EN"+        "http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent">+     %HTMLspecial;+-->++<!-- Portions (C) International Organization for Standardization 1986:+     Permission to copy in any form is granted for use with+     conforming SGML systems and applications as defined in+     ISO 8879, provided this notice is included in all copies.+-->++<!-- Relevant ISO entity set is given unless names are newly introduced.+     New names (i.e., not in ISO 8879 list) do not clash with any+     existing ISO 8879 entity names. ISO 10646 character numbers+     are given for each character, in hex. values are decimal+     conversions of the ISO 10646 values and refer to the document+     character set. Names are Unicode names. +-->++<!-- C0 Controls and Basic Latin -->+<!ENTITY quot    "&#34;"> <!--  quotation mark = APL quote,+                                    U+0022 ISOnum -->+<!ENTITY amp     "&#38;#38;"> <!--  ampersand, U+0026 ISOnum -->+<!ENTITY lt      "&#38;#60;"> <!--  less-than sign, U+003C ISOnum -->+<!ENTITY gt      "&#62;"> <!--  greater-than sign, U+003E ISOnum -->+<!ENTITY apos	 "&#39;"> <!--  apostrophe mark, U+0027 ISOnum -->++<!-- Latin Extended-A -->+<!ENTITY OElig   "&#338;"> <!--  latin capital ligature OE,+                                    U+0152 ISOlat2 -->+<!ENTITY oelig   "&#339;"> <!--  latin small ligature oe, U+0153 ISOlat2 -->+<!-- ligature is a misnomer, this is a separate character in some languages -->+<!ENTITY Scaron  "&#352;"> <!--  latin capital letter S with caron,+                                    U+0160 ISOlat2 -->+<!ENTITY scaron  "&#353;"> <!--  latin small letter s with caron,+                                    U+0161 ISOlat2 -->+<!ENTITY Yuml    "&#376;"> <!--  latin capital letter Y with diaeresis,+                                    U+0178 ISOlat2 -->++<!-- Spacing Modifier Letters -->+<!ENTITY circ    "&#710;"> <!--  modifier letter circumflex accent,+                                    U+02C6 ISOpub -->+<!ENTITY tilde   "&#732;"> <!--  small tilde, U+02DC ISOdia -->++<!-- General Punctuation -->+<!ENTITY ensp    "&#8194;"> <!-- en space, U+2002 ISOpub -->+<!ENTITY emsp    "&#8195;"> <!-- em space, U+2003 ISOpub -->+<!ENTITY thinsp  "&#8201;"> <!-- thin space, U+2009 ISOpub -->+<!ENTITY zwnj    "&#8204;"> <!-- zero width non-joiner,+                                    U+200C NEW RFC 2070 -->+<!ENTITY zwj     "&#8205;"> <!-- zero width joiner, U+200D NEW RFC 2070 -->+<!ENTITY lrm     "&#8206;"> <!-- left-to-right mark, U+200E NEW RFC 2070 -->+<!ENTITY rlm     "&#8207;"> <!-- right-to-left mark, U+200F NEW RFC 2070 -->+<!ENTITY ndash   "&#8211;"> <!-- en dash, U+2013 ISOpub -->+<!ENTITY mdash   "&#8212;"> <!-- em dash, U+2014 ISOpub -->+<!ENTITY lsquo   "&#8216;"> <!-- left single quotation mark,+                                    U+2018 ISOnum -->+<!ENTITY rsquo   "&#8217;"> <!-- right single quotation mark,+                                    U+2019 ISOnum -->+<!ENTITY sbquo   "&#8218;"> <!-- single low-9 quotation mark, U+201A NEW -->+<!ENTITY ldquo   "&#8220;"> <!-- left double quotation mark,+                                    U+201C ISOnum -->+<!ENTITY rdquo   "&#8221;"> <!-- right double quotation mark,+                                    U+201D ISOnum -->+<!ENTITY bdquo   "&#8222;"> <!-- double low-9 quotation mark, U+201E NEW -->+<!ENTITY dagger  "&#8224;"> <!-- dagger, U+2020 ISOpub -->+<!ENTITY Dagger  "&#8225;"> <!-- double dagger, U+2021 ISOpub -->+<!ENTITY permil  "&#8240;"> <!-- per mille sign, U+2030 ISOtech -->+<!ENTITY lsaquo  "&#8249;"> <!-- single left-pointing angle quotation mark,+                                    U+2039 ISO proposed -->+<!-- lsaquo is proposed but not yet ISO standardized -->+<!ENTITY rsaquo  "&#8250;"> <!-- single right-pointing angle quotation mark,+                                    U+203A ISO proposed -->+<!-- rsaquo is proposed but not yet ISO standardized -->+<!ENTITY euro   "&#8364;"> <!--  euro sign, U+20AC NEW -->
+ examples/xhtml/xhtml-symbol.ent view
@@ -0,0 +1,242 @@+<!-- Mathematical, Greek and Symbolic characters for HTML -->++<!-- Character entity set. Typical invocation:+     <!ENTITY % HTMLsymbol PUBLIC+        "-//W3C//ENTITIES Symbols for XHTML//EN"+        "http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent">+     %HTMLsymbol;+-->++<!-- Portions (C) International Organization for Standardization 1986:+     Permission to copy in any form is granted for use with+     conforming SGML systems and applications as defined in+     ISO 8879, provided this notice is included in all copies.+-->++<!-- Relevant ISO entity set is given unless names are newly introduced.+     New names (i.e., not in ISO 8879 list) do not clash with any+     existing ISO 8879 entity names. ISO 10646 character numbers+     are given for each character, in hex. values are decimal+     conversions of the ISO 10646 values and refer to the document+     character set. Names are Unicode names. +-->++<!-- Latin Extended-B -->+<!ENTITY fnof     "&#402;"> <!-- latin small f with hook = function+                                    = florin, U+0192 ISOtech -->++<!-- Greek -->+<!ENTITY Alpha    "&#913;"> <!-- greek capital letter alpha, U+0391 -->+<!ENTITY Beta     "&#914;"> <!-- greek capital letter beta, U+0392 -->+<!ENTITY Gamma    "&#915;"> <!-- greek capital letter gamma,+                                    U+0393 ISOgrk3 -->+<!ENTITY Delta    "&#916;"> <!-- greek capital letter delta,+                                    U+0394 ISOgrk3 -->+<!ENTITY Epsilon  "&#917;"> <!-- greek capital letter epsilon, U+0395 -->+<!ENTITY Zeta     "&#918;"> <!-- greek capital letter zeta, U+0396 -->+<!ENTITY Eta      "&#919;"> <!-- greek capital letter eta, U+0397 -->+<!ENTITY Theta    "&#920;"> <!-- greek capital letter theta,+                                    U+0398 ISOgrk3 -->+<!ENTITY Iota     "&#921;"> <!-- greek capital letter iota, U+0399 -->+<!ENTITY Kappa    "&#922;"> <!-- greek capital letter kappa, U+039A -->+<!ENTITY Lambda   "&#923;"> <!-- greek capital letter lambda,+                                    U+039B ISOgrk3 -->+<!ENTITY Mu       "&#924;"> <!-- greek capital letter mu, U+039C -->+<!ENTITY Nu       "&#925;"> <!-- greek capital letter nu, U+039D -->+<!ENTITY Xi       "&#926;"> <!-- greek capital letter xi, U+039E ISOgrk3 -->+<!ENTITY Omicron  "&#927;"> <!-- greek capital letter omicron, U+039F -->+<!ENTITY Pi       "&#928;"> <!-- greek capital letter pi, U+03A0 ISOgrk3 -->+<!ENTITY Rho      "&#929;"> <!-- greek capital letter rho, U+03A1 -->+<!-- there is no Sigmaf, and no U+03A2 character either -->+<!ENTITY Sigma    "&#931;"> <!-- greek capital letter sigma,+                                    U+03A3 ISOgrk3 -->+<!ENTITY Tau      "&#932;"> <!-- greek capital letter tau, U+03A4 -->+<!ENTITY Upsilon  "&#933;"> <!-- greek capital letter upsilon,+                                    U+03A5 ISOgrk3 -->+<!ENTITY Phi      "&#934;"> <!-- greek capital letter phi,+                                    U+03A6 ISOgrk3 -->+<!ENTITY Chi      "&#935;"> <!-- greek capital letter chi, U+03A7 -->+<!ENTITY Psi      "&#936;"> <!-- greek capital letter psi,+                                    U+03A8 ISOgrk3 -->+<!ENTITY Omega    "&#937;"> <!-- greek capital letter omega,+                                    U+03A9 ISOgrk3 -->++<!ENTITY alpha    "&#945;"> <!-- greek small letter alpha,+                                    U+03B1 ISOgrk3 -->+<!ENTITY beta     "&#946;"> <!-- greek small letter beta, U+03B2 ISOgrk3 -->+<!ENTITY gamma    "&#947;"> <!-- greek small letter gamma,+                                    U+03B3 ISOgrk3 -->+<!ENTITY delta    "&#948;"> <!-- greek small letter delta,+                                    U+03B4 ISOgrk3 -->+<!ENTITY epsilon  "&#949;"> <!-- greek small letter epsilon,+                                    U+03B5 ISOgrk3 -->+<!ENTITY zeta     "&#950;"> <!-- greek small letter zeta, U+03B6 ISOgrk3 -->+<!ENTITY eta      "&#951;"> <!-- greek small letter eta, U+03B7 ISOgrk3 -->+<!ENTITY theta    "&#952;"> <!-- greek small letter theta,+                                    U+03B8 ISOgrk3 -->+<!ENTITY iota     "&#953;"> <!-- greek small letter iota, U+03B9 ISOgrk3 -->+<!ENTITY kappa    "&#954;"> <!-- greek small letter kappa,+                                    U+03BA ISOgrk3 -->+<!ENTITY lambda   "&#955;"> <!-- greek small letter lambda,+                                    U+03BB ISOgrk3 -->+<!ENTITY mu       "&#956;"> <!-- greek small letter mu, U+03BC ISOgrk3 -->+<!ENTITY nu       "&#957;"> <!-- greek small letter nu, U+03BD ISOgrk3 -->+<!ENTITY xi       "&#958;"> <!-- greek small letter xi, U+03BE ISOgrk3 -->+<!ENTITY omicron  "&#959;"> <!-- greek small letter omicron, U+03BF NEW -->+<!ENTITY pi       "&#960;"> <!-- greek small letter pi, U+03C0 ISOgrk3 -->+<!ENTITY rho      "&#961;"> <!-- greek small letter rho, U+03C1 ISOgrk3 -->+<!ENTITY sigmaf   "&#962;"> <!-- greek small letter final sigma,+                                    U+03C2 ISOgrk3 -->+<!ENTITY sigma    "&#963;"> <!-- greek small letter sigma,+                                    U+03C3 ISOgrk3 -->+<!ENTITY tau      "&#964;"> <!-- greek small letter tau, U+03C4 ISOgrk3 -->+<!ENTITY upsilon  "&#965;"> <!-- greek small letter upsilon,+                                    U+03C5 ISOgrk3 -->+<!ENTITY phi      "&#966;"> <!-- greek small letter phi, U+03C6 ISOgrk3 -->+<!ENTITY chi      "&#967;"> <!-- greek small letter chi, U+03C7 ISOgrk3 -->+<!ENTITY psi      "&#968;"> <!-- greek small letter psi, U+03C8 ISOgrk3 -->+<!ENTITY omega    "&#969;"> <!-- greek small letter omega,+                                    U+03C9 ISOgrk3 -->+<!ENTITY thetasym "&#977;"> <!-- greek small letter theta symbol,+                                    U+03D1 NEW -->+<!ENTITY upsih    "&#978;"> <!-- greek upsilon with hook symbol,+                                    U+03D2 NEW -->+<!ENTITY piv      "&#982;"> <!-- greek pi symbol, U+03D6 ISOgrk3 -->++<!-- General Punctuation -->+<!ENTITY bull     "&#8226;"> <!-- bullet = black small circle,+                                     U+2022 ISOpub  -->+<!-- bullet is NOT the same as bullet operator, U+2219 -->+<!ENTITY hellip   "&#8230;"> <!-- horizontal ellipsis = three dot leader,+                                     U+2026 ISOpub  -->+<!ENTITY prime    "&#8242;"> <!-- prime = minutes = feet, U+2032 ISOtech -->+<!ENTITY Prime    "&#8243;"> <!-- double prime = seconds = inches,+                                     U+2033 ISOtech -->+<!ENTITY oline    "&#8254;"> <!-- overline = spacing overscore,+                                     U+203E NEW -->+<!ENTITY frasl    "&#8260;"> <!-- fraction slash, U+2044 NEW -->++<!-- Letterlike Symbols -->+<!ENTITY weierp   "&#8472;"> <!-- script capital P = power set+                                     = Weierstrass p, U+2118 ISOamso -->+<!ENTITY image    "&#8465;"> <!-- blackletter capital I = imaginary part,+                                     U+2111 ISOamso -->+<!ENTITY real     "&#8476;"> <!-- blackletter capital R = real part symbol,+                                     U+211C ISOamso -->+<!ENTITY trade    "&#8482;"> <!-- trade mark sign, U+2122 ISOnum -->+<!ENTITY alefsym  "&#8501;"> <!-- alef symbol = first transfinite cardinal,+                                     U+2135 NEW -->+<!-- alef symbol is NOT the same as hebrew letter alef,+     U+05D0 although the same glyph could be used to depict both characters -->++<!-- Arrows -->+<!ENTITY larr     "&#8592;"> <!-- leftwards arrow, U+2190 ISOnum -->+<!ENTITY uarr     "&#8593;"> <!-- upwards arrow, U+2191 ISOnum-->+<!ENTITY rarr     "&#8594;"> <!-- rightwards arrow, U+2192 ISOnum -->+<!ENTITY darr     "&#8595;"> <!-- downwards arrow, U+2193 ISOnum -->+<!ENTITY harr     "&#8596;"> <!-- left right arrow, U+2194 ISOamsa -->+<!ENTITY crarr    "&#8629;"> <!-- downwards arrow with corner leftwards+                                     = carriage return, U+21B5 NEW -->+<!ENTITY lArr     "&#8656;"> <!-- leftwards double arrow, U+21D0 ISOtech -->+<!-- Unicode does not say that lArr is the same as the 'is implied by' arrow+    but also does not have any other character for that function. So ? lArr can+    be used for 'is implied by' as ISOtech suggests -->+<!ENTITY uArr     "&#8657;"> <!-- upwards double arrow, U+21D1 ISOamsa -->+<!ENTITY rArr     "&#8658;"> <!-- rightwards double arrow,+                                     U+21D2 ISOtech -->+<!-- Unicode does not say this is the 'implies' character but does not have +     another character with this function so ?+     rArr can be used for 'implies' as ISOtech suggests -->+<!ENTITY dArr     "&#8659;"> <!-- downwards double arrow, U+21D3 ISOamsa -->+<!ENTITY hArr     "&#8660;"> <!-- left right double arrow,+                                     U+21D4 ISOamsa -->++<!-- Mathematical Operators -->+<!ENTITY forall   "&#8704;"> <!-- for all, U+2200 ISOtech -->+<!ENTITY part     "&#8706;"> <!-- partial differential, U+2202 ISOtech  -->+<!ENTITY exist    "&#8707;"> <!-- there exists, U+2203 ISOtech -->+<!ENTITY empty    "&#8709;"> <!-- empty set = null set = diameter,+                                     U+2205 ISOamso -->+<!ENTITY nabla    "&#8711;"> <!-- nabla = backward difference,+                                     U+2207 ISOtech -->+<!ENTITY isin     "&#8712;"> <!-- element of, U+2208 ISOtech -->+<!ENTITY notin    "&#8713;"> <!-- not an element of, U+2209 ISOtech -->+<!ENTITY ni       "&#8715;"> <!-- contains as member, U+220B ISOtech -->+<!-- should there be a more memorable name than 'ni'? -->+<!ENTITY prod     "&#8719;"> <!-- n-ary product = product sign,+                                     U+220F ISOamsb -->+<!-- prod is NOT the same character as U+03A0 'greek capital letter pi' though+     the same glyph might be used for both -->+<!ENTITY sum      "&#8721;"> <!-- n-ary sumation, U+2211 ISOamsb -->+<!-- sum is NOT the same character as U+03A3 'greek capital letter sigma'+     though the same glyph might be used for both -->+<!ENTITY minus    "&#8722;"> <!-- minus sign, U+2212 ISOtech -->+<!ENTITY lowast   "&#8727;"> <!-- asterisk operator, U+2217 ISOtech -->+<!ENTITY radic    "&#8730;"> <!-- square root = radical sign,+                                     U+221A ISOtech -->+<!ENTITY prop     "&#8733;"> <!-- proportional to, U+221D ISOtech -->+<!ENTITY infin    "&#8734;"> <!-- infinity, U+221E ISOtech -->+<!ENTITY ang      "&#8736;"> <!-- angle, U+2220 ISOamso -->+<!ENTITY and      "&#8743;"> <!-- logical and = wedge, U+2227 ISOtech -->+<!ENTITY or       "&#8744;"> <!-- logical or = vee, U+2228 ISOtech -->+<!ENTITY cap      "&#8745;"> <!-- intersection = cap, U+2229 ISOtech -->+<!ENTITY cup      "&#8746;"> <!-- union = cup, U+222A ISOtech -->+<!ENTITY int      "&#8747;"> <!-- integral, U+222B ISOtech -->+<!ENTITY there4   "&#8756;"> <!-- therefore, U+2234 ISOtech -->+<!ENTITY sim      "&#8764;"> <!-- tilde operator = varies with = similar to,+                                     U+223C ISOtech -->+<!-- tilde operator is NOT the same character as the tilde, U+007E,+     although the same glyph might be used to represent both  -->+<!ENTITY cong     "&#8773;"> <!-- approximately equal to, U+2245 ISOtech -->+<!ENTITY asymp    "&#8776;"> <!-- almost equal to = asymptotic to,+                                     U+2248 ISOamsr -->+<!ENTITY ne       "&#8800;"> <!-- not equal to, U+2260 ISOtech -->+<!ENTITY equiv    "&#8801;"> <!-- identical to, U+2261 ISOtech -->+<!ENTITY le       "&#8804;"> <!-- less-than or equal to, U+2264 ISOtech -->+<!ENTITY ge       "&#8805;"> <!-- greater-than or equal to,+                                     U+2265 ISOtech -->+<!ENTITY sub      "&#8834;"> <!-- subset of, U+2282 ISOtech -->+<!ENTITY sup      "&#8835;"> <!-- superset of, U+2283 ISOtech -->+<!-- note that nsup, 'not a superset of, U+2283' is not covered by the Symbol +     font encoding and is not included. Should it be, for symmetry?+     It is in ISOamsn  --> +<!ENTITY nsub     "&#8836;"> <!-- not a subset of, U+2284 ISOamsn -->+<!ENTITY sube     "&#8838;"> <!-- subset of or equal to, U+2286 ISOtech -->+<!ENTITY supe     "&#8839;"> <!-- superset of or equal to,+                                     U+2287 ISOtech -->+<!ENTITY oplus    "&#8853;"> <!-- circled plus = direct sum,+                                     U+2295 ISOamsb -->+<!ENTITY otimes   "&#8855;"> <!-- circled times = vector product,+                                     U+2297 ISOamsb -->+<!ENTITY perp     "&#8869;"> <!-- up tack = orthogonal to = perpendicular,+                                     U+22A5 ISOtech -->+<!ENTITY sdot     "&#8901;"> <!-- dot operator, U+22C5 ISOamsb -->+<!-- dot operator is NOT the same character as U+00B7 middle dot -->++<!-- Miscellaneous Technical -->+<!ENTITY lceil    "&#8968;"> <!-- left ceiling = apl upstile,+                                     U+2308 ISOamsc  -->+<!ENTITY rceil    "&#8969;"> <!-- right ceiling, U+2309 ISOamsc  -->+<!ENTITY lfloor   "&#8970;"> <!-- left floor = apl downstile,+                                     U+230A ISOamsc  -->+<!ENTITY rfloor   "&#8971;"> <!-- right floor, U+230B ISOamsc  -->+<!ENTITY lang     "&#9001;"> <!-- left-pointing angle bracket = bra,+                                     U+2329 ISOtech -->+<!-- lang is NOT the same character as U+003C 'less than' +     or U+2039 'single left-pointing angle quotation mark' -->+<!ENTITY rang     "&#9002;"> <!-- right-pointing angle bracket = ket,+                                     U+232A ISOtech -->+<!-- rang is NOT the same character as U+003E 'greater than' +     or U+203A 'single right-pointing angle quotation mark' -->++<!-- Geometric Shapes -->+<!ENTITY loz      "&#9674;"> <!-- lozenge, U+25CA ISOpub -->++<!-- Miscellaneous Symbols -->+<!ENTITY spades   "&#9824;"> <!-- black spade suit, U+2660 ISOpub -->+<!-- black here seems to mean filled as opposed to hollow -->+<!ENTITY clubs    "&#9827;"> <!-- black club suit = shamrock,+                                     U+2663 ISOpub -->+<!ENTITY hearts   "&#9829;"> <!-- black heart suit = valentine,+                                     U+2665 ISOpub -->+<!ENTITY diams    "&#9830;"> <!-- black diamond suit, U+2666 ISOpub -->
+ examples/xhtml/xhtml.xml view
@@ -0,0 +1,1484 @@+<!DOCTYPE html SYSTEM "xhtml1-strict.dtd">+<?xml-stylesheet href="http://www.w3.org/StyleSheets/TR/W3C-REC.css" type="text/css"?>+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">+<head>+<title>XHTML 1.0: The Extensible HyperText Markup+Language</title>+<link rel="stylesheet"+href="http://www.w3.org/StyleSheets/TR/W3C-REC.css" type="text/css" />+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />+<style type="text/css">+span.term { font-style: italic; color: rgb(0, 0, 192) }+code {+	color: green;+	font-family: monospace;+	font-weight: bold;+}++code.greenmono {+	color: green;+	font-family: monospace;+	font-weight: bold;+}+.good {+	border: solid green;+	border-width: 2px;+	color: green;+	font-weight: bold;+	margin-right: 5%;+	margin-left: 0;+}+.bad  {+	border: solid red;+	border-width: 2px;+	margin-left: 0;+	margin-right: 5%;+	color: rgb(192, 101, 101);+}++img {+	color: white;+	border: none;+}++div.navbar { text-align: center; }+div.contents {+	background-color: rgb(204,204,255);+	padding: 0.5em;+	border: none;+	margin-right: 5%;+}+.tocline { list-style: none; }+table.exceptions { background-color: rgb(255,255,153); }+</style>+</head>+<body>+<div class="navbar">+  <a href="#toc">table of contents</a>+  <hr />+</div>+<div class="head"><p><a href="http://www.w3.org/"><img class="head"+src="http://www.w3.org/Icons/WWW/w3c_home.gif" alt="W3C" /></a></p>++<h1 class="head"><a name="title" id="title">XHTML</a><sup>&#8482;</sup> 1.0:+The Extensible HyperText Markup Language</h1>++<h2>A Reformulation of HTML 4 in XML 1.0</h2>++<h3>W3C Recommendation 26 January 2000</h3>++<dl>+<dt>This version:</dt>++<dd><a href=+"http://www.w3.org/TR/2000/REC-xhtml1-20000126">+http://www.w3.org/TR/2000/REC-xhtml1-20000126</a> <br />+(<a href="xhtml1.ps">Postscript version</a>,+<a href="xhtml1.pdf">PDF version</a>,+<a href="xhtml1.zip">ZIP archive</a>, or+<a href="xhtml1.tgz">Gzip'd TAR archive</a>)+</dd>++<dt>Latest version:</dt>++<dd><a href="http://www.w3.org/TR/xhtml1">+http://www.w3.org/TR/xhtml1</a></dd>++<dt>Previous version:</dt>++<dd><a href=+"http://www.w3.org/TR/1999/PR-xhtml1-19991210">+http://www.w3.org/TR/1999/PR-xhtml1-19991210</a></dd>++<dt>Authors:</dt>++<dd>See <a href="#acks">acknowledgements</a>.</dd>+</dl>++<p class="copyright"><a+href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright"> Copyright</a>+&copy;2000 <a href="http://www.w3.org/"><abbr title="World Wide Web+Consortium">W3C</abbr></a><sup>&reg;</sup> (<a+href="http://www.lcs.mit.edu/"><abbr+title="Massachusetts Institute of Technology">MIT</abbr></a>, <a+href="http://www.inria.fr/"><abbr+lang="fr" title="Institut National de Recherche en Informatique et+Automatique">INRIA</abbr></a>, <a+href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a+href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,+<a+href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>,+<a+href="http://www.w3.org/Consortium/Legal/copyright-documents-19990405">document+use</a> and <a+href="http://www.w3.org/Consortium/Legal/copyright-software-19980720">software+licensing</a> rules+apply.</p>+<hr />+</div>++<h2 class="notoc">Abstract</h2>++<p>This specification defines <abbr title="Extensible Hypertext Markup+Language">XHTML</abbr> 1.0, a reformulation of HTML&nbsp;4+as an XML 1.0 application, and three <abbr title="Document Type+Definition">DTDs</abbr> corresponding to+the ones defined by HTML&nbsp;4. The semantics of the elements and+their attributes are defined in the W3C Recommendation for HTML&nbsp;4.+These semantics provide the foundation for future+extensibility of XHTML. Compatibility with existing HTML user+agents is possible by following a small set of guidelines.</p>++<h2>Status of this document</h2>++<p><em>This section describes the status of this document at the time+of its publication. Other documents may supersede this document. The+latest status of this document series is maintained at the W3C.</em></p>++<p>+This document has been reviewed by W3C Members and other+interested parties and has been endorsed by the Director+as a W3C Recommendation. It is a stable document and may be+used as reference material or cited as a normative+reference from another document. W3C's role in making the+Recommendation is to draw attention to the specification and+to promote its widespread deployment. This enhances the+functionality and interoperability of the Web.+</p>+<p>This document has been produced as part of the <a href=+"http://www.w3.org/MarkUp/">W3C HTML Activity</a>. The goals of+the <a href="http://www.w3.org/MarkUp/Group/">HTML Working+Group</a> <i>(<a href="http://cgi.w3.org/MemberAccess/">members+only</a>)</i> are discussed in the <a href=+"http://www.w3.org/MarkUp/Group/HTMLcharter">HTML Working Group+charter</a> <i>(<a href="http://cgi.w3.org/MemberAccess/">members+only</a>)</i>.</p>++<p>A list of current W3C Recommendations and other technical documents+can be found at <a+href="http://www.w3.org/TR">http://www.w3.org/TR</a>.</p>++<p>Public discussion on <abbr title="HyperText Markup+Language">HTML</abbr> features takes place on the mailing list <a+href="mailto:www-html@w3.org"> www-html@w3.org</a> (<a href=+"http://lists.w3.org/Archives/Public/www-html/">archive</a>).</p>++<p>Please report errors in this document to <a+href="mailto:www-html-editor@w3.org">www-html-editor@w3.org</a>.</p>++<p>The list of known errors in this specification is available at <a+href="http://www.w3.org/2000/01/REC-xhtml1-20000126-errata">http://www.w3.org/2000/01/REC-xhtml1-20000126-errata</a>.</p>++<h2 class="notoc"><a id="toc" name="toc">Contents</a></h2>++<div class="contents">+<ul class="toc">+<li class="tocline">1. <a href="#xhtml">What is XHTML?</a>++<ul class="toc">+<li class="tocline">1.1 <a href="#html4">What is HTML 4?</a></li>++<li class="tocline">1.2 <a href="#xml">What is XML?</a></li>++<li class="tocline">1.3 <a href="#why">Why the need for XHTML?</a></li>+</ul>+</li>++<li class="tocline">2. <a href="#defs">Definitions</a>++<ul class="toc">+<li class="tocline">2.1 <a href="#terms">Terminology</a></li>++<li class="tocline">2.2 <a href="#general">General Terms</a></li>+</ul>+</li>++<li class="tocline">3. <a href="#normative">Normative Definition of XHTML 1.0</a>+++<ul class="toc">+<li class="tocline">3.1 <a href="#docconf">Document Conformance</a></li>++<li class="tocline">3.2 <a href="#uaconf">User Agent Conformance</a></li>+</ul>+</li>++<li class="tocline">4. <a href="#diffs">Differences with HTML 4</a>++</li>++<li class="tocline">5. <a href="#issues">Compatibility Issues</a>++<ul class="toc">+<li class="tocline">5.1 <a href="#media">Internet Media Types</a></li>+</ul>+</li>++<li class="tocline">6. <a href="#future">Future Directions</a>++<ul class="toc">+<li class="tocline">6.1 <a href="#mods">Modularizing HTML</a></li>++<li class="tocline">6.2 <a href="#extensions">Subsets and Extensibility</a></li>++<li class="tocline">6.3 <a href="#profiles">Document Profiles</a></li>+</ul>+</li>++<li class="tocline"><a href="#dtds">Appendix A. DTDs</a></li>++<li class="tocline"><a href="#prohibitions">Appendix B. Element+Prohibitions</a></li>++<li class="tocline"><a href="#guidelines">Appendix C. HTML Compatibility Guidelines</a></li>++<li class="tocline"><a href="#acks">Appendix D. Acknowledgements</a></li>++<li class="tocline"><a href="#refs">Appendix E. References</a></li>+</ul>+</div>++<!--OddPage-->+<h1><a name="xhtml" id="xhtml">1. What is XHTML?</a></h1>++<p>XHTML is a family of current and future document types and modules that+reproduce, subset, and extend HTML&nbsp;4 <a href="#ref-html4">[HTML]</a>. XHTML family document types are <abbr title="Extensible Markup Language">XML</abbr> based,+and ultimately are designed to work in conjunction with XML-based user agents.+The details of this family and its evolution are+discussed in more detail in the section on <a href="#future">Future+Directions</a>. </p>++<p>XHTML 1.0 (this specification) is the first document type in the XHTML+family. It is a reformulation of the three HTML&nbsp;4 document types as+applications of XML 1.0 <a href="#ref-xml"> [XML]</a>. It is intended+to be used as a language for content that is both XML-conforming and, if some+simple <a href="#guidelines">guidelines</a> are followed,+operates in HTML&nbsp;4 conforming user agents. Developers who migrate+their content to XHTML 1.0 will realize the following benefits:</p>++<ul>+<li>XHTML documents are XML conforming. As such, they are readily viewed,+edited, and validated with standard XML tools.</li>+<li>XHTML documents can be written to+to operate as well or better than they did before in existing+HTML&nbsp;4-conforming user agents as well as in new, XHTML 1.0 conforming user+agents.</li>+<li>XHTML documents can utilize applications (e.g. scripts and applets) that rely+upon either the HTML Document Object Model or the XML Document Object Model <a+href="#ref-dom">[DOM]</a>.</li>+<li>As the XHTML family evolves, documents conforming to XHTML 1.0 will be more+likely to interoperate within and among various XHTML environments.</li>+</ul>++<p>The XHTML family is the next step in the evolution of the Internet. By+migrating to XHTML today, content developers can enter the XML world with all+of its attendant benefits, while still remaining confident in their+content's backward and future compatibility.</p>++<h2><a name="html4" id="html4">1.1 What is HTML&nbsp;4?</a></h2>++<p>HTML 4 <a href="#ref-html4">[HTML]</a> is an <abbr title="Standard+Generalized Markup Language">SGML</abbr> (Standard+Generalized Markup Language) application conforming to+International Standard <abbr title="Organization for International+Standardization">ISO</abbr> 8879, and is widely regarded as the+standard publishing language of the World Wide Web.</p>++<p>SGML is a language for describing markup languages,+particularly those used in electronic document exchange, document+management, and document publishing. HTML is an example of a+language defined in SGML.</p>++<p>SGML has been around since the middle 1980's and has remained+quite stable. Much of this stability stems from the fact that the+language is both feature-rich and flexible. This flexibility,+however, comes at a price, and that price is a level of+complexity that has inhibited its adoption in a diversity of+environments, including the World Wide Web.</p>++<p>HTML, as originally conceived, was to be a language for the+exchange of scientific and other technical documents, suitable+for use by non-document specialists. HTML addressed the problem+of SGML complexity by specifying a small set of structural and+semantic tags suitable for authoring relatively simple documents.+In addition to simplifying the document structure, HTML added+support for hypertext. Multimedia capabilities were added+later.</p>++<p>In a remarkably short space of time, HTML became wildly+popular and rapidly outgrew its original purpose. Since HTML's+inception, there has been rapid invention of new elements for use+within HTML (as a standard) and for adapting HTML to vertical,+highly specialized, markets. This plethora of new elements has+led to compatibility problems for documents across different+platforms.</p>++<p>As the heterogeneity of both software and platforms rapidly+proliferate, it is clear that the suitability of 'classic' HTML&nbsp;4+for use on these platforms is somewhat limited.</p>++<h2><a name="xml" id="xml">1.2 What is XML?</a></h2>++<p>XML<sup>&#8482;</sup> is the shorthand for Extensible Markup+Language, and is an acronym of Extensible Markup Language <a+href="#ref-xml">[XML]</a>.</p>++<p>XML was conceived as a means of regaining the power and+flexibility of SGML without most of its complexity. Although a+restricted form of SGML, XML nonetheless preserves most of SGML's+power and richness, and yet still retains all of SGML's commonly+used features.</p>++<p>While retaining these beneficial features, XML removes many of+the more complex features of SGML that make the authoring and+design of suitable software both difficult and costly.</p>++<h2><a name="why" id="why">1.3 Why the need for XHTML?</a></h2>++<p>The benefits of migrating to XHTML 1.0 are described above. Some of the+benefits of migrating to XHTML in general are:</p>++<ul>+<li>Document developers and user agent designers are constantly+discovering new ways to express their ideas through new markup. In XML, it is+relatively easy to introduce new elements or additional element+attributes.  The XHTML family is designed to accommodate these extensions+through XHTML modules and techniques for developing new XHTML-conforming+modules (described in the forthcoming XHTML Modularization specification).+These modules will permit the combination of existing and+new feature sets when developing content and when designing new user+agents.</li>++<li>Alternate ways of accessing the Internet are constantly being+introduced.  Some estimates indicate that by the year 2002, 75% of+Internet document viewing will be carried out on these alternate+platforms.  The XHTML family is designed with general user agent+interoperability in mind. Through a new user agent and document profiling+mechanism, servers, proxies, and user agents will be able to perform+best effort content transformation. Ultimately, it will be possible to+develop XHTML-conforming content that is usable by any XHTML-conforming+user agent.</li>++</ul>+<!--OddPage-->+<h1><a name="defs" id="defs">2. Definitions</a></h1>++<h2><a name="terms" id="terms">2.1 Terminology</a></h2>++<p>The following terms are used in this specification. These+terms extend the definitions in <a href="#ref-rfc2119">+[RFC2119]</a> in ways based upon similar definitions in ISO/<abbr+title="International Electro-technical Commission">IEC</abbr>+9945-1:1990 <a href="#ref-posix">[POSIX.1]</a>:</p>++<dl>+<dt>Implementation-defined</dt>++<dd>A value or behavior is implementation-defined when it is left+to the implementation to define [and document] the corresponding+requirements for correct document construction.</dd>++<dt>May</dt>++<dd>With respect to implementations, the word "may" is to be+interpreted as an optional feature that is not required in this+specification but can be provided. With respect to <a href=+"#docconf">Document Conformance</a>, the word "may" means that+the optional feature must not be used. The term "optional" has+the same definition as "may".</dd>++<dt>Must</dt>++<dd>In this specification, the word "must" is to be interpreted+as a mandatory requirement on the implementation or on Strictly+Conforming XHTML Documents, depending upon the context. The term+"shall" has the same definition as "must".</dd>++<dt>Reserved</dt>++<dd>A value or behavior is unspecified, but it is not allowed to+be used by Conforming Documents nor to be supported by a+Conforming User Agents.</dd>++<dt>Should</dt>++<dd>With respect to implementations, the word "should" is to be+interpreted as an implementation recommendation, but not a+requirement. With respect to documents, the word "should" is to+be interpreted as recommended programming practice for documents+and a requirement for Strictly Conforming XHTML Documents.</dd>++<dt>Supported</dt>++<dd>Certain facilities in this specification are optional. If a+facility is supported, it behaves as specified by this+specification.</dd>++<dt>Unspecified</dt>++<dd>When a value or behavior is unspecified, the specification+defines no portability requirements for a facility on an+implementation even when faced with a document that uses the+facility. A document that requires specific behavior in such an+instance, rather than tolerating any behavior when using that+facility, is not a Strictly Conforming XHTML Document.</dd>+</dl>++<h2><a name="general" id="general">2.2 General Terms</a></h2>++<dl>+<dt>Attribute</dt>++<dd>An attribute is a parameter to an element declared in the+DTD. An attribute's type and value range, including a possible+default value, are defined in the DTD.</dd>++<dt>DTD</dt>++<dd>A DTD, or document type definition, is a collection of XML+declarations that, as a collection, defines the legal structure,+<span class="term">elements</span>, and <span class="term">+attributes</span> that are available for use in a document that+complies to the DTD.</dd>++<dt>Document</dt>++<dd>A document is a stream of data that, after being combined+with any other streams it references, is structured such that it+holds information contained within <span class="term">+elements</span> that are organized as defined in the associated+<span class="term">DTD</span>. See <a href="#docconf">Document+Conformance</a> for more information.</dd>++<dt>Element</dt>++<dd>An element is a document structuring unit declared in the+<span class="term">DTD</span>. The element's content model is+defined in the <span class="term">DTD</span>, and additional+semantics may be defined in the prose description of the+element.</dd>++<dt><a name="facilities" id="facilities">Facilities</a></dt>++<dd>Functionality includes <span class="term">elements</span>,+<span class="term">attributes</span>, and the semantics+associated with those <span class="term">elements</span> and+<span class="term">attributes</span>. An implementation+supporting that functionality is said to provide the necessary+facilities.</dd>++<dt>Implementation</dt>++<dd>An implementation is a system that provides collection of+<span class="term">facilities</span> and services that supports+this specification. See <a href="#uaconf">User Agent+Conformance</a> for more information.</dd>++<dt>Parsing</dt>++<dd>Parsing is the act whereby a <span class="term">+document</span> is scanned, and the information contained within+the <span class="term">document</span> is filtered into the+context of the <span class="term">elements</span> in which the+information is structured.</dd>++<dt>Rendering</dt>++<dd>Rendering is the act whereby the information in a <span+class="term">document</span> is presented. This presentation is+done in the form most appropriate to the environment (e.g.+aurally, visually, in print).</dd>++<dt>User Agent</dt>++<dd>A user agent is an <span class="term">implementation</span>+that retrieves and processes XHTML documents. See <a href=+"#uaconf">User Agent Conformance</a> for more information.</dd>++<dt>Validation</dt>++<dd>Validation is a process whereby <span class="term">+documents</span> are verified against the associated <span class=+"term">DTD</span>, ensuring that the structure, use of <span+class="term">elements</span>, and use of <span class="term">+attributes</span> are consistent with the definitions in the+<span class="term">DTD</span>.</dd>++<dt><a name="wellformed" id="wellformed">Well-formed</a></dt>++<dd>A <span class="term">document</span> is well-formed when it+is structured according to the rules defined in <a href=+"http://www.w3.org/TR/REC-xml#sec-well-formed">Section 2.1</a> of+the XML 1.0 Recommendation <a href="#ref-xml">[XML]</a>.+Basically, this definition states that elements, delimited by+their start and end tags, are nested properly within one+another.</dd>+</dl>++<!--OddPage-->+<h1><a name="normative" id="normative">3. Normative Definition of+XHTML 1.0</a></h1>++<h2><a name="docconf" id="docconf">3.1 Document+Conformance</a></h2>++<p>This version of XHTML provides a definition of strictly+conforming XHTML documents, which are restricted to tags and+attributes from the XHTML namespace. See <a href=+"#well-formed">Section 3.1.2</a> for information on using XHTML+with other namespaces, for instance, to include metadata+expressed in <abbr title="Resource Description Format">RDF</abbr> within XHTML documents.</p>++<h3><a name="strict" id="strict">3.1.1 Strictly Conforming+Documents</a></h3>++<p>A Strictly Conforming XHTML Document is a document that+requires only the facilities described as mandatory in this+specification. Such a document must meet all of the following+criteria:</p>++<ol>+<li>+<p>It must validate against one of the three DTDs found in <a+href="#dtds">Appendix&#160;A</a>.</p>+</li>++<li>+<p>The root element of the document must be <code>+&lt;html&gt;</code>.</p>+</li>++<li>+<p>The root element of the document must designate the XHTML+namespace using the <code>xmlns</code> attribute <a href=+"#ref-xmlns">[XMLNAMES]</a>. The namespace for XHTML is+defined to be+<code>http://www.w3.org/1999/xhtml</code>.</p>+</li>++<li>+<p>There must be a DOCTYPE declaration in the document prior to+the root element. The public identifier included in+the DOCTYPE declaration must reference one of the three DTDs+found in <a href="#dtds">Appendix&#160;A</a> using the respective+Formal Public Identifier. The system identifier may be changed to reflect+local system conventions.</p>++<pre>+&lt;!DOCTYPE html+     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"+     "DTD/xhtml1-strict.dtd"&gt;++&lt;!DOCTYPE html+     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"+     "DTD/xhtml1-transitional.dtd"&gt;++&lt;!DOCTYPE html+     PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"+     "DTD/xhtml1-frameset.dtd"&gt;+</pre>+</li>+</ol>++<p>Here is an example of a minimal XHTML document.</p>++<div class="good">+<pre>+&lt;?xml version="1.0" encoding="UTF-8"?&gt;+&lt;!DOCTYPE html+     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"+    "DTD/xhtml1-strict.dtd"&gt;+&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"&gt;+  &lt;head&gt;+    &lt;title&gt;Virtual Library&lt;/title&gt;+  &lt;/head&gt;+  &lt;body&gt;+    &lt;p&gt;Moved to &lt;a href="http://vlib.org/"&gt;vlib.org&lt;/a&gt;.&lt;/p&gt;+  &lt;/body&gt;+&lt;/html&gt;</pre>+</div>++<p>Note that in this example, the XML declaration is included. An XML+declaration like the one above is+not required in all XML documents. XHTML document authors are strongly encouraged to use XML declarations in all their documents. Such a declaration is required+when the character encoding of the document is other than the default UTF-8 or+UTF-16.</p>++<h3><a name="well-formed" id="well-formed">3.1.2 Using XHTML with+other namespaces</a></h3>++<p>The XHTML namespace may be used with other XML namespaces+as per <a href="#ref-xmlns">[XMLNAMES]</a>, although such+documents are not strictly conforming XHTML 1.0 documents as+defined above. Future work by W3C will address ways to specify+conformance for documents involving multiple namespaces.</p>++<p>The following example shows the way in which XHTML 1.0 could+be used in conjunction with the MathML Recommendation:</p>++<div class="good">+<pre>+&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"&gt;+  &lt;head&gt;+    &lt;title&gt;A Math Example&lt;/title&gt;+  &lt;/head&gt;+  &lt;body&gt;+    &lt;p&gt;The following is MathML markup:&lt;/p&gt;+    &lt;math xmlns="http://www.w3.org/1998/Math/MathML"&gt;+      &lt;apply&gt; &lt;log/&gt;+        &lt;logbase&gt;+          &lt;cn&gt; 3 &lt;/cn&gt;+        &lt;/logbase&gt;+        &lt;ci&gt; x &lt;/ci&gt;+      &lt;/apply&gt;+    &lt;/math&gt;+  &lt;/body&gt;+&lt;/html&gt;+</pre>+</div>++<p>The following example shows the way in which XHTML 1.0 markup+could be incorporated into another XML namespace:</p>++<div class="good">+<pre>+&lt;?xml version="1.0" encoding="UTF-8"?&gt;+&lt;!-- initially, the default namespace is "books" --&gt;+&lt;book xmlns='urn:loc.gov:books'+    xmlns:isbn='urn:ISBN:0-395-36341-6' xml:lang="en" lang="en"&gt;+  &lt;title&gt;Cheaper by the Dozen&lt;/title&gt;+  &lt;isbn:number&gt;1568491379&lt;/isbn:number&gt;+  &lt;notes&gt;+    &lt;!-- make HTML the default namespace for a hypertext commentary --&gt;+    &lt;p xmlns='http://www.w3.org/1999/xhtml'&gt;+        This is also available &lt;a href="http://www.w3.org/"&gt;online&lt;/a&gt;.+    &lt;/p&gt;+  &lt;/notes&gt;+&lt;/book&gt;+</pre>+</div>++<h2><a name="uaconf" id="uaconf">3.2 User Agent+Conformance</a></h2>++<p>A conforming user agent must meet all of the following+criteria:</p>++<ol>+<li>In order to be consistent with the XML 1.0 Recommendation <a+href="#ref-xml">[XML]</a>, the user agent must parse and evaluate+an XHTML document for well-formedness. If the user agent claims+to be a validating user agent, it must also validate documents+against their referenced DTDs according to <a href="#ref-xml">+[XML]</a>.</li>++<li>When the user agent claims to support <a href="#facilities">+facilities</a> defined within this specification or required by+this specification through normative reference, it must do so in+ways consistent with the facilities' definition.</li>++<li>When a user agent processes an XHTML document as generic XML,+it shall only recognize attributes of type+<code>ID</code> (e.g. the <code>id</code> attribute on most XHTML elements)+as fragment identifiers.</li>++<li>If a user agent encounters an element it does not recognize,+it must render the element's content.</li>++<li>If a user agent encounters an attribute it does not+recognize, it must ignore the entire attribute specification+(i.e., the attribute and its value).</li>++<li>If a user agent encounters an attribute value it doesn't+recognize, it must use the default attribute value.</li>++<li>If it encounters an entity reference (other than one+of the predefined entities) for which the User Agent has+processed no declaration (which could happen if the declaration+is in the external subset which the User Agent hasn't read), the entity+reference should be rendered as the characters (starting+with the ampersand and ending with the semi-colon) that+make up the entity reference.</li>++<li>When rendering content, User Agents that encounter+characters or character entity references that are recognized but not renderable should display the document in such a way that it is obvious to the user that normal rendering has not taken place.</li>++<li>+The following characters are defined in [XML] as whitespace characters:++<ul>+<li>Space (&amp;#x0020;)</li>+<li>Tab (&amp;#x0009;)</li>+<li>Carriage return (&amp;#x000D;)</li>+<li>Line feed (&amp;#x000A;)</li>+</ul>++<p>+The XML processor normalizes different system's line end codes into one+single line-feed character, that is passed up to the application. The XHTML+user agent in addition, must treat the following characters as whitespace:+</p>++<ul>+<li>Form feed (&amp;#x000C;)</li>+<li>Zero-width space (&amp;#x200B;)</li>+</ul>++<p>+In elements where the 'xml:space' attribute is set to 'preserve', the user+agent must leave all whitespace characters intact (with the exception of+leading and trailing whitespace characters, which should be removed).+Otherwise, whitespace+is handled according to the following rules:+</p>++<ul>+<li>+All whitespace surrounding block elements should be removed.+</li>+<li>+Comments are removed entirely and do not affect whitespace handling. One+whitespace character on either side of a comment is treated as two white+space characters.+</li>+<li>+Leading and trailing whitespace inside a block element must be removed.+</li>+<li>Line feed characters within a block element must be converted into a+space (except when the 'xml:space' attribute is set to 'preserve').+</li>+<li>+A sequence of white space characters must be reduced to a single space+character (except when the 'xml:space' attribute is set to 'preserve').+</li>+<li>+With regard to rendition,+the User Agent should render the content in a+manner appropriate to the language in which the content is written.+In languages whose primary script is Latinate, the ASCII space+character is typically used to encode both grammatical word boundaries and+typographic whitespace; in languages whose script is related to Nagari+(e.g., Sanskrit, Thai, etc.), grammatical boundaries may be encoded using+the ZW 'space' character, but will not typically be represented by+typographic whitespace in rendered output; languages using Arabiform scripts+may encode typographic whitespace using a space character, but may also use+the ZW space character to delimit 'internal' grammatical boundaries (what+look like words in Arabic to an English eye frequently encode several words,+e.g. 'kitAbuhum' = 'kitAbu-hum' = 'book them' == their book); and languages+in the Chinese script tradition typically neither encode such delimiters nor+use typographic whitespace in this way.+</li>+</ul>++<p>Whitespace in attribute values is processed according to <a+href="#ref-xml">[XML]</a>.</p>+</li>+</ol>++<!--OddPage-->+<h1><a name="diffs" id="diffs">4. Differences with HTML&nbsp;4</a></h1>++<p>Due to the fact that XHTML is an XML application, certain+practices that were perfectly legal in SGML-based HTML&nbsp;4 <a+href="#ref-html4">[HTML]</a> must be changed.</p>++<h2><a name="h-4.1" id="h-4.1">4.1 Documents must be+well-formed</a></h2>++<p><a href="#wellformed">Well-formedness</a> is a new concept+introduced by <a href="#ref-xml">[XML]</a>. Essentially this+means that all elements must either have closing tags or be+written in a special form (as described below), and that all the+elements must nest.</p>++<p>Although overlapping is illegal in SGML, it was widely+tolerated in existing browsers.</p>++<div class="good">+<p><strong><em>CORRECT: nested elements.</em></strong></p>++<p>&lt;p&gt;here is an emphasized+&lt;em&gt;paragraph&lt;/em&gt;.&lt;/p&gt;</p>+</div>++<div class="bad">+<p><strong><em>INCORRECT: overlapping elements</em></strong></p>++<p>&lt;p&gt;here is an emphasized+&lt;em&gt;paragraph.&lt;/p&gt;&lt;/em&gt;</p>+</div>++<h2><a name="h-4.2" id="h-4.2">4.2 Element and attribute+names must be in lower case</a></h2>++<p>XHTML documents must use lower case for all HTML element and+attribute names. This difference is necessary because XML is+case-sensitive e.g. &lt;li&gt; and &lt;LI&gt; are different+tags.</p>++<h2><a name="h-4.3" id="h-4.3">4.3 For non-empty elements,+end tags are required</a></h2>++<p>In SGML-based HTML 4 certain elements were permitted to omit+the end tag; with the elements that followed implying closure.+This omission is not permitted in XML-based XHTML. All elements+other than those declared in the DTD as <code>EMPTY</code> must+have an end tag.</p>++<div class="good">+<p><strong><em>CORRECT: terminated elements</em></strong></p>++<p>&lt;p&gt;here is a paragraph.&lt;/p&gt;&lt;p&gt;here is+another paragraph.&lt;/p&gt;</p>+</div>++<div class="bad">+<p><strong><em>INCORRECT: unterminated elements</em></strong></p>++<p>&lt;p&gt;here is a paragraph.&lt;p&gt;here is another+paragraph.</p>+</div>++<h2><a name="h-4.4" id="h-4.4">4.4 Attribute values must+always be quoted</a></h2>++<p>All attribute values must be quoted, even those which appear+to be numeric.</p>++<div class="good">+<p><strong><em>CORRECT: quoted attribute values</em></strong></p>++<p>&lt;table rows="3"&gt;</p>+</div>++<div class="bad">+<p><strong><em>INCORRECT: unquoted attribute values</em></strong></p>++<p>&lt;table rows=3&gt;</p>+</div>++<h2><a name="h-4.5" id="h-4.5">4.5 Attribute+Minimization</a></h2>++<p>XML does not support attribute minimization. Attribute-value+pairs must be written in full. Attribute names such as <code>+compact</code> and <code>checked</code> cannot occur in elements+without their value being specified.</p>++<div class="good">+<p><strong><em>CORRECT: unminimized attributes</em></strong></p>++<p>&lt;dl compact="compact"&gt;</p>+</div>++<div class="bad">+<p><strong><em>INCORRECT: minimized attributes</em></strong></p>++<p>&lt;dl compact&gt;</p>+</div>++<h2><a name="h-4.6" id="h-4.6">4.6 Empty Elements</a></h2>++<p>Empty elements must either have an end tag or the start tag must end with <code>/&gt;</code>. For instance,+<code>&lt;br/&gt;</code> or <code>&lt;hr&gt;&lt;/hr&gt;</code>. See <a+href="#guidelines">HTML Compatibility Guidelines</a> for information on ways to+ensure this is backward compatible with HTML 4 user agents.</p>++<div class="good">+<p><strong><em>CORRECT: terminated empty tags</em></strong></p>++<p>&lt;br/&gt;&lt;hr/&gt;</p>+</div>++<div class="bad">+<p><strong><em>INCORRECT: unterminated empty tags</em></strong></p>++<p>&lt;br&gt;&lt;hr&gt;</p>+</div>++<h2><a name="h-4.7" id="h-4.7">4.7 Whitespace handling in+attribute values</a></h2>++<p>In attribute values, user agents will strip leading and+trailing whitespace from attribute values and map sequences+of one or more whitespace characters (including line breaks) to+a single inter-word space (an ASCII space character for western+scripts). See <a href="http://www.w3.org/TR/REC-xml#AVNormalize">+Section 3.3.3</a> of <a href="#ref-xml">[XML]</a>.</p>++<h2><a name="h-4.8" id="h-4.8">4.8 Script and Style+elements</a></h2>++<p>In XHTML, the script and style elements are declared as having+<code>#PCDATA</code> content. As a result, <code>&lt;</code> and+<code>&amp;</code> will be treated as the start of markup, and+entities such as <code>&amp;lt;</code> and <code>&amp;amp;</code>+will be recognized as entity references by the XML processor to+<code>&lt;</code> and <code>&amp;</code> respectively. Wrapping+the content of the script or style element within a <code>+CDATA</code> marked section avoids the expansion of these+entities.</p>++<div class="good">+<pre>+&lt;script&gt;+ &lt;![CDATA[+ ... unescaped script content ...+ ]]&gt;+ &lt;/script&gt;+</pre>+</div>++<p><code>CDATA</code> sections are recognized by the XML+processor and appear as nodes in the Document Object Model, see+<a href=+"http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-E067D597">+Section 1.3</a> of the DOM Level 1 Recommendation <a href=+"#ref-dom">[DOM]</a>.</p>++<p>An alternative is to use external script and style+documents.</p>++<h2><a name="h-4.9" id="h-4.9">4.9 SGML exclusions</a></h2>++<p>SGML gives the writer of a DTD the ability to exclude specific+elements from being contained within an element. Such+prohibitions (called "exclusions") are not possible in XML.</p>++<p>For example, the HTML 4 Strict DTD forbids the nesting of an+'<code>a</code>' element within another '<code>a</code>' element+to any descendant depth. It is not possible to spell out such+prohibitions in XML. Even though these prohibitions cannot be+defined in the DTD, certain elements should not be nested. A+summary of such elements and the elements that should not be+nested in them is found in the normative <a href="#prohibitions">+Appendix&#160;B</a>.</p>++<h2><a name="h-4.10" id="h-4.10">4.10 The elements with 'id' and 'name'+attributes</a></h2>++<p>HTML 4 defined the <code>name</code> attribute for the elements+<code>a</code>,+<code>applet</code>, <code>form</code>, <code>frame</code>,+<code>iframe</code>, <code>img</code>, and <code>map</code>.+HTML 4 also introduced+the <code>id</code> attribute. Both of these attributes are designed to be+used as fragment identifiers.</p>+<p>In XML, fragment identifiers are of type <code>ID</code>, and+there can only be a single attribute of type <code>ID</code> per element.+Therefore, in XHTML 1.0 the <code>id</code>+attribute is defined to be of type <code>ID</code>. In order to+ensure that XHTML 1.0 documents are well-structured XML documents, XHTML 1.0+documents MUST use the <code>id</code> attribute when defining fragment+identifiers, even on elements that historically have also had a+<code>name</code> attribute.+See the <a href="#guidelines">HTML Compatibility+Guidelines</a> for information on ensuring such anchors are backwards+compatible when serving XHTML documents as media type <code>text/html</code>.+</p>+<p>Note that in XHTML 1.0, the <code>name</code> attribute of these+elements is formally deprecated, and will be removed in a+subsequent version of XHTML.</p>++<!--OddPage-->+<h1><a name="issues" id="issues">5. Compatibility Issues</a></h1>++<p>Although there is no requirement for XHTML 1.0 documents to be+compatible with existing user agents, in practice this is easy to+accomplish. Guidelines for creating compatible documents can be+found in <a href="#guidelines">Appendix&#160;C</a>.</p>++<h2><a name="media" id="media">5.1 Internet Media Type</a></h2>+<p>As of the publication of this recommendation, the general+recommended MIME labeling for XML-based applications+has yet to be resolved.</p>++<p>However, XHTML Documents which follow the guidelines set forth+in <a href="#guidelines">Appendix C</a>, "HTML Compatibility Guidelines" may be+labeled with the Internet Media Type "text/html", as they+are compatible with most HTML browsers. This document+makes no recommendation about MIME labeling of other+XHTML documents.</p>++<!--OddPage-->+<h1><a name="future" id="future">6. Future Directions</a></h1>++<p>XHTML 1.0 provides the basis for a family of document types+that will extend and subset XHTML, in order to support a wide+range of new devices and applications, by defining modules and+specifying a mechanism for combining these modules. This+mechanism will enable the extension and sub-setting of XHTML 1.0+in a uniform way through the definition of new modules.</p>++<h2><a name="mods" id="mods">6.1 Modularizing HTML</a></h2>++<p>As the use of XHTML moves from the traditional desktop user+agents to other platforms, it is clear that not all of the XHTML+elements will be required on all platforms. For example a hand+held device or a cell-phone may only support a subset of XHTML+elements.</p>++<p>The process of modularization breaks XHTML up into a series of+smaller element sets. These elements can then be recombined to+meet the needs of different communities.</p>++<p>These modules will be defined in a later W3C document.</p>++<h2><a name="extensions" id="extensions">6.2 Subsets and+Extensibility</a></h2>++<p>Modularization brings with it several advantages:</p>++<ul>+<li>+<p>It provides a formal mechanism for sub-setting XHTML.</p>+</li>++<li>+<p>It provides a formal mechanism for extending XHTML.</p>+</li>++<li>+<p>It simplifies the transformation between document types.</p>+</li>++<li>+<p>It promotes the reuse of modules in new document types.</p>+</li>+</ul>++<h2><a name="profiles" id="profiles">6.3 Document+Profiles</a></h2>++<p>A document profile specifies the syntax and semantics of a set+of documents. Conformance to a document profile provides a basis+for interoperability guarantees. The document profile specifies+the facilities required to process documents of that type, e.g.+which image formats can be used, levels of scripting, style sheet+support, and so on.</p>++<p>For product designers this enables various groups to define+their own standard profile.</p>++<p>For authors this will obviate the need to write several+different versions of documents for different clients.</p>++<p>For special groups such as chemists, medical doctors, or+mathematicians this allows a special profile to be built using+standard HTML elements plus a group of elements geared to the+specialist's needs.</p>++<!--OddPage-->+<h1><a name="appendices" id="appendices"></a>+<a name="dtds" id="dtds">Appendix A. DTDs</a></h1>++<p><b>This appendix is normative.</b></p>++<p>These DTDs and entity sets form a normative part of this+specification. The complete set of DTD files together with an XML+declaration and SGML Open Catalog is included in the <a href=+"xhtml1.zip">zip file</a> for this specification.</p>++<h2><a name="h-A1" id="h-A1">A.1 Document Type+Definitions</a></h2>++<p>These DTDs approximate the HTML 4 DTDs. It is likely that+when the DTDs are modularized, a method of DTD construction will+be employed that corresponds more closely to HTML 4.</p>++<ul>+<li>+<p><a href="DTD/xhtml1-strict.dtd" type="text/plain">+XHTML-1.0-Strict</a></p>+</li>++<li>+<p><a href="DTD/xhtml1-transitional.dtd" type="text/plain">+XHTML-1.0-Transitional</a></p>+</li>++<li>+<p><a href="DTD/xhtml1-frameset.dtd" type="text/plain">+XHTML-1.0-Frameset</a></p>+</li>+</ul>++<h2><a name="h-A2" id="h-A2">A.2 Entity Sets</a></h2>++<p>The XHTML entity sets are the same as for HTML 4, but have+been modified to be valid XML 1.0 entity declarations. Note the+entity for the Euro currency sign (<code>&amp;euro;</code> or+<code>&amp;#8364;</code> or <code>&amp;#x20AC;</code>) is defined+as part of the special characters.</p>++<ul>+<li>+<p><a href="DTD/xhtml-lat1.ent">Latin-1 characters</a></p>+</li>++<li>+<p><a href="DTD/xhtml-special.ent">Special characters</a></p>+</li>++<li>+<p><a href="DTD/xhtml-symbol.ent">Symbols</a></p>+</li>+</ul>++<!--OddPage-->+<h1><a name="prohibitions" id="prohibitions">Appendix B. Element+Prohibitions</a></h1>++<p><b>This appendix is normative.</b></p>++<p>The following elements have prohibitions on which elements+they can contain (see <a href="#h-4.9">Section 4.9</a>). This+prohibition applies to all depths of nesting, i.e. it contains+all the descendant elements.</p>++<dl><dt><code class="tag">a</code></dt>+<dd>+cannot contain other <code>a</code> elements.</dd>+<dt><code class="tag">pre</code></dt>+<dd>cannot contain the <code>img</code>, <code>object</code>,+<code>big</code>, <code>small</code>, <code>sub</code>, or <code>+sup</code> elements.</dd>++<dt><code class="tag">button</code></dt>+<dd>cannot contain the <code>input</code>, <code>select</code>,+<code>textarea</code>, <code>label</code>, <code>button</code>,+<code>form</code>, <code>fieldset</code>, <code>iframe</code> or+<code>isindex</code> elements.</dd>+<dt><code class="tag">label</code></dt>+<dd>cannot contain other <code class="tag">label</code> elements.</dd>+<dt><code class="tag">form</code></dt>+<dd>cannot contain other <code>form</code> elements.</dd>+</dl>++<!--OddPage-->+<h1><a name="guidelines" id="guidelines">Appendix C.+HTML Compatibility Guidelines</a></h1>++<p><b>This appendix is informative.</b></p>++<p>This appendix summarizes design guidelines for authors who+wish their XHTML documents to render on existing HTML user+agents.</p>++<h2>C.1 Processing Instructions</h2>+<p>Be aware that processing instructions are rendered on some+user agents. However, also note that when the XML declaration is not included+in a document, the document can only use the default character encodings UTF-8+or UTF-16.</p>++<h2>C.2 Empty Elements</h2>+<p>Include a space before the trailing <code>/</code> and <code>+&gt;</code> of empty elements, e.g. <code class="greenmono">+&lt;br&#160;/&gt;</code>, <code class="greenmono">+&lt;hr&#160;/&gt;</code> and <code class="greenmono">&lt;img+src="karen.jpg" alt="Karen"&#160;/&gt;</code>. Also, use the+minimized tag syntax for empty elements, e.g. <code class=+"greenmono">&lt;br /&gt;</code>, as the alternative syntax <code+class="greenmono">&lt;br&gt;&lt;/br&gt;</code> allowed by XML+gives uncertain results in many existing user agents.</p>++<h2>C.3 Element Minimization and Empty Element Content</h2>+<p>Given an empty instance of an element whose content model is+not <code>EMPTY</code> (for example, an empty title or paragraph)+do not use the minimized form (e.g. use <code class="greenmono">+&lt;p&gt; &lt;/p&gt;</code> and not <code class="greenmono">+&lt;p&#160;/&gt;</code>).</p>++<h2>C.4 Embedded Style Sheets and Scripts</h2>+<p>Use external style sheets if your style sheet uses <code>+&lt;</code> or <code>&amp;</code> or <code>]]&gt;</code> or <code>--</code>. Use+external scripts if your script uses <code>&lt;</code> or <code>+&amp;</code> or <code>]]&gt;</code> or <code>--</code>. Note that XML parsers+are permitted to silently remove the contents of comments. Therefore, the historical+practice of "hiding" scripts and style sheets within comments to make the+documents backward compatible is likely to not work as expected in XML-based+implementations.</p>++<h2>C.5 Line Breaks within Attribute Values</h2>+<p>Avoid line breaks and multiple whitespace characters within+attribute values. These are handled inconsistently by user+agents.</p>++<h2>C.6 Isindex</h2>+<p>Don't include more than one <code>isindex</code> element in+the document <code>head</code>. The <code>isindex</code> element+is deprecated in favor of the <code>input</code> element.</p>++<h2>C.7 The <code>lang</code> and <code>xml:lang</code> Attributes</h2>+<p>Use both the <code>lang</code> and <code>xml:lang</code>+attributes when specifying the language of an element. The value+of the <code>xml:lang</code> attribute takes precedence.</p>++<h2>C.8 Fragment Identifiers</h2>+<p>In XML, <abbr title="Uniform Resource Identifiers">URIs</abbr> [<a href="#ref-rfc2396">RFC2396</a>] that end with fragment identifiers of the form+<code>"#foo"</code> do not refer to elements with an attribute+<code>name="foo"</code>; rather, they refer to elements with an+attribute defined to be of type <code>ID</code>, e.g., the <code>+id</code> attribute in HTML 4. Many existing HTML clients don't+support the use of <code>ID</code>-type attributes in this way,+so identical values may be supplied for both of these attributes to ensure+maximum forward and backward compatibility (e.g., <code class=+"greenmono">&lt;a id="foo" name="foo"&gt;...&lt;/a&gt;</code>).</p>++<p>Further, since the set of+legal values for attributes of type <code>ID</code> is much smaller than+for those of type <code>CDATA</code>, the type of the <code>name</code>+attribute has been changed to <code>NMTOKEN</code>. This attribute is+constrained such that it can only have the same values as type+<code>ID</code>, or as the <code>Name</code> production in XML 1.0 Section+2.5, production 5. Unfortunately, this constraint cannot be expressed in the+XHTML 1.0 DTDs.  Because of this change, care must be taken when+converting existing HTML documents. The values of these attributes+must be unique within the document, valid, and any references to these+fragment identifiers (both+internal and external) must be updated should the values be changed during+conversion.</p>+<p>Finally, note that XHTML 1.0 has deprecated the+<code>name</code> attribute of the <code>a</code>, <code>applet</code>, <code>form</code>, <code>frame</code>, <code>iframe</code>, <code>img</code>, and <code>map</code>+elements, and it will be+removed from XHTML in subsequent versions.</p>++<h2>C.9 Character Encoding</h2>+<p>To specify a character encoding in the document, use both the+encoding attribute specification on the xml declaration (e.g.+<code class="greenmono">&lt;?xml version="1.0"+encoding="EUC-JP"?&gt;</code>) and a meta http-equiv statement+(e.g. <code class="greenmono">&lt;meta http-equiv="Content-type"+content='text/html; charset="EUC-JP"'&#160;/&gt;</code>). The+value of the encoding attribute of the xml processing instruction+takes precedence.</p>++<h2>C.10 Boolean Attributes</h2>+<p>Some HTML user agents are unable to interpret boolean+attributes when these appear in their full (non-minimized) form,+as required by XML 1.0. Note this problem doesn't affect user+agents compliant with HTML 4. The following attributes are+involved: <code>compact</code>, <code>nowrap</code>, <code>+ismap</code>, <code>declare</code>, <code>noshade</code>, <code>+checked</code>, <code>disabled</code>, <code>readonly</code>,+<code>multiple</code>, <code>selected</code>, <code>+noresize</code>, <code>defer</code>.</p>++<h2>C.11 Document Object Model and XHTML</h2>+<p>+The Document Object Model level 1 Recommendation [<a href="#ref-dom">DOM</a>]+defines document object model interfaces for XML and HTML 4. The HTML 4+document object model specifies that HTML element and attribute names are+returned in upper-case. The XML document object model specifies that+element and attribute names are returned in the case they are specified. In+XHTML 1.0, elements and attributes are specified in lower-case. This apparent difference can be+addressed in two ways:+</p>+<ol>+<li>Applications that access XHTML documents served as Internet media type+<code>text/html</code>+via the <abbr title="Document Object Model">DOM</abbr> can use the HTML DOM,+and can rely upon element and attribute names being returned in+upper-case from those interfaces.</li>+<li>Applications that access XHTML documents served as Internet media types+<code>text/xml</code> or <code>application/xml</code>+can also use the XML DOM. Elements and attributes will be returned in lower-case.+Also, some XHTML elements may or may+not appear+in the object tree because they are optional in the content model+(e.g. the <code>tbody</code> element within+<code>table</code>).  This occurs because in HTML 4 some elements were+permitted to be minimized such that their start and end tags are both omitted+(an SGML feature).+This is not possible in XML. Rather than require document authors to insert+extraneous elements, XHTML has made the elements optional.+Applications need to adapt to this+accordingly.</li>+</ol>++<h2>C.12 Using Ampersands in Attribute Values</h2>+<p>+When an attribute value contains an ampersand, it must be expressed as a character+entity reference+(e.g. "<code>&amp;amp;</code>"). For example, when the+<code>href</code> attribute+of the <code>a</code> element refers to a+CGI script that takes parameters, it must be expressed as+<code>http://my.site.dom/cgi-bin/myscript.pl?class=guest&amp;amp;name=user</code>+rather than as+<code>http://my.site.dom/cgi-bin/myscript.pl?class=guest&amp;name=user</code>.+</p>++<h2>C.13 Cascading Style Sheets (CSS) and XHTML</h2>++<p>The Cascading Style Sheets level 2 Recommendation [<a href="#ref-css2">CSS2</a>] defines style+properties which are applied to the parse tree of the HTML or XML+document.  Differences in parsing will produce different visual or+aural results, depending on the selectors used. The following hints+will reduce this effect for documents which are served without+modification as both media types:</p>++<ol>+<li>+CSS style sheets for XHTML should use lower case element and+attribute names.</li>+++<li>In tables, the tbody element will be inferred by the parser of an+HTML user agent, but not by the parser of an XML user agent. Therefore+you should always explicitly add a tbody element if it is referred to+in a CSS selector.</li>++<li>Within the XHTML name space, user agents are expected to+recognize the "id" attribute as an attribute of type ID.+Therefore, style sheets should be able to continue using the+shorthand "#" selector syntax even if the user agent does not read+the DTD.</li>++<li>Within the XHTML name space, user agents are expected to+recognize the "class" attribute. Therefore, style sheets should be+able to continue using the shorthand "." selector syntax.</li>++<li>+CSS defines different conformance rules for HTML and XML documents;+be aware that the HTML rules apply to XHTML documents delivered as+HTML and the XML rules apply to XHTML documents delivered as XML.</li>+</ol>+<!--OddPage-->+<h1><a name="acks" id="acks">Appendix D.+Acknowledgements</a></h1>++<p><b>This appendix is informative.</b></p>++<p>This specification was written with the participation of the+members of the W3C HTML working group:</p>++<dl>+<dd>Steven Pemberton, CWI (HTML Working Group Chair)<br />+Murray Altheim, Sun Microsystems<br />+Daniel Austin, AskJeeves (CNET: The Computer Network through July 1999)<br />+Frank Boumphrey, HTML Writers Guild<br />+John Burger, Mitre<br />+Andrew W. Donoho, IBM<br />+Sam Dooley, IBM<br />+Klaus Hofrichter, GMD<br />+Philipp Hoschka, W3C<br />+Masayasu Ishikawa, W3C<br />+Warner ten Kate, Philips Electronics<br />+Peter King, Phone.com<br />+Paula Klante, JetForm<br />+Shin'ichi Matsui, Panasonic (W3C visiting engineer through September 1999)<br />+Shane McCarron, Applied Testing and Technology (The Open Group through August+1999)<br />+Ann Navarro, HTML Writers Guild<br />+Zach Nies, Quark<br />+Dave Raggett, W3C/HP (W3C lead for HTML)<br />+Patrick Schmitz, Microsoft<br />+Sebastian Schnitzenbaumer, Stack Overflow<br />+Peter Stark, Phone.com<br />+Chris Wilson, Microsoft<br />+Ted Wugofski, Gateway 2000<br />+Dan Zigmond, WebTV Networks</dd>+</dl>++<!--OddPage-->+<h1><a name="refs" id="refs">Appendix E. References</a></h1>++<p><b>This appendix is informative.</b></p>++<dl>++<dt><a name="ref-css2" id="ref-css2"><b>[CSS2]</b></a></dt>++<dd><a href="http://www.w3.org/TR/1998/REC-CSS2-19980512">"Cascading Style Sheets, level 2 (CSS2) Specification"</a>, B.+Bos, H. W. Lie, C. Lilley, I. Jacobs, 12 May 1998.<br />+Latest version available at: <a href="http://www.w3.org/TR/REC-CSS2">+http://www.w3.org/TR/REC-CSS2</a></dd>++<dt><a name="ref-dom" id="ref-dom"><b>[DOM]</b></a></dt>++<dd><a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001">"Document Object Model (DOM) Level 1 Specification"</a>, Lauren+Wood <i>et al.</i>, 1 October 1998.<br />+Latest version available at: <a href="http://www.w3.org/TR/REC-DOM-Level-1">+http://www.w3.org/TR/REC-DOM-Level-1</a></dd>++<dt><a name="ref-html4" id="ref-html4"><b>[HTML]</b></a></dt>++<dd><a href="http://www.w3.org/TR/1999/REC-html401-19991224">"HTML 4.01 Specification"</a>, D. Raggett, A. Le&#160;Hors, I.+Jacobs, 24 December 1999.<br />+Latest version available at: <a href="http://www.w3.org/TR/html401">+http://www.w3.org/TR/html401</a></dd>++<dt><a name="ref-posix" id="ref-posix"><b>[POSIX.1]</b></a></dt>++<dd>"ISO/IEC 9945-1:1990 Information Technology - Portable+Operating System Interface (POSIX) - Part 1: System Application+Program Interface (API) [C Language]", Institute of Electrical+and Electronics Engineers, Inc, 1990.</dd>++<dt><a name="ref-rfc2046" id="ref-rfc2046"><b>+[RFC2046]</b></a></dt>++<dd><a href="http://www.ietf.org/rfc/rfc2046.txt">"RFC2046: Multipurpose Internet Mail Extensions (MIME) Part+Two: Media Types"</a>, N. Freed and N. Borenstein, November+1996.<br />+Available at <a href="http://www.ietf.org/rfc/rfc2046.txt">+http://www.ietf.org/rfc/rfc2046.txt</a>. Note that this RFC+obsoletes RFC1521, RFC1522, and RFC1590.</dd>++<dt><a name="ref-rfc2119" id="ref-rfc2119"><b>+[RFC2119]</b></a></dt>++<dd><a href="http://www.ietf.org/rfc/rfc2119.txt">"RFC2119: Key words for use in RFCs to Indicate Requirement+Levels"</a>, S. Bradner, March 1997.<br />+Available at: <a href="http://www.ietf.org/rfc/rfc2119.txt">+http://www.ietf.org/rfc/rfc2119.txt</a></dd>++<dt><a name="ref-rfc2376" id="ref-rfc2376"><b>+[RFC2376]</b></a></dt>++<dd><a href="http://www.ietf.org/rfc/rfc2376.txt">"RFC2376: XML Media Types"</a>, E. Whitehead, M. Murata, July+1998.<br />+Available at: <a href="http://www.ietf.org/rfc/rfc2376.txt">+http://www.ietf.org/rfc/rfc2376.txt</a></dd>++<dt><a name="ref-rfc2396" id="ref-rfc2396"><b>+[RFC2396]</b></a></dt>++<dd><a href="http://www.ietf.org/rfc/rfc2396.txt">"RFC2396: Uniform Resource Identifiers (URI): Generic+Syntax"</a>, T. Berners-Lee, R. Fielding, L. Masinter, August+1998.<br />+This document updates RFC1738 and RFC1808.<br />+Available at: <a href="http://www.ietf.org/rfc/rfc2396.txt">+http://www.ietf.org/rfc/rfc2396.txt</a></dd>++<dt><a name="ref-xml" id="ref-xml"><b>[XML]</b></a></dt>++<dd><a href="http://www.w3.org/TR/1998/REC-xml-19980210">"Extensible Markup Language (XML) 1.0 Specification"</a>, T.+Bray, J. Paoli, C. M. Sperberg-McQueen, 10 February 1998.<br />+Latest version available at: <a href="http://www.w3.org/TR/REC-xml">+http://www.w3.org/TR/REC-xml</a></dd>++<dt><a name="ref-xmlns" id="ref-xmlns"><b>[XMLNAMES]</b></a></dt>++<dd><a href="http://www.w3.org/TR/1999/REC-xml-names-19990114">"Namespaces in XML"</a>, T. Bray, D. Hollander, A. Layman, 14+January 1999.<br />+XML namespaces provide a simple method for qualifying names used+in XML documents by associating them with namespaces identified+by URI.<br />+Latest version available at: <a href="http://www.w3.org/TR/REC-xml-names">+http://www.w3.org/TR/REC-xml-names</a></dd>++</dl>+<p><a href="http://www.w3.org/WAI/WCAG1AAA-Conformance"+title="Explanation of Level Triple-A Conformance">+<img height="32" width="88"+src="http://www.w3.org/WAI/wcag1AAA.gif"+alt="Level Triple-A conformance icon, W3C-WAI Web Content Accessibility Guidelines 1.0" /></a></p>+<div class="navbar">+  <hr />+  <a href="#toc">table of contents</a>+</div>+</body>+</html>+
+ examples/xhtml/xhtml1-frameset.dtd view
@@ -0,0 +1,1225 @@+<!--+   Extensible HTML version 1.0 Frameset DTD++   This is the same as HTML 4.0 Frameset except for+   changes due to the differences between XML and SGML.++   Namespace = http://www.w3.org/1999/xhtml++   For further information, see: http://www.w3.org/TR/xhtml1++   Copyright (c) 1998-2000 W3C (MIT, INRIA, Keio),+   All Rights Reserved. ++   This DTD module is identified by the PUBLIC and SYSTEM identifiers:++   PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"+   SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"++   $Revision: 1.1 $+   $Date: 2002/10/01 13:47:08 $++-->++<!--================ Character mnemonic entities =========================-->++<!ENTITY % HTMLlat1 PUBLIC+   "-//W3C//ENTITIES Latin 1 for XHTML//EN"+   "xhtml-lat1.ent">+%HTMLlat1;++<!ENTITY % HTMLsymbol PUBLIC+   "-//W3C//ENTITIES Symbols for XHTML//EN"+   "xhtml-symbol.ent">+%HTMLsymbol;++<!ENTITY % HTMLspecial PUBLIC+   "-//W3C//ENTITIES Special for XHTML//EN"+   "xhtml-special.ent">+%HTMLspecial;++<!--================== Imported Names ====================================-->++<!ENTITY % ContentType "CDATA">+    <!-- media type, as per [RFC2045] -->++<!ENTITY % ContentTypes "CDATA">+    <!-- comma-separated list of media types, as per [RFC2045] -->++<!ENTITY % Charset "CDATA">+    <!-- a character encoding, as per [RFC2045] -->++<!ENTITY % Charsets "CDATA">+    <!-- a space separated list of character encodings, as per [RFC2045] -->++<!ENTITY % LanguageCode "NMTOKEN">+    <!-- a language code, as per [RFC1766] -->++<!ENTITY % Character "CDATA">+    <!-- a single character from [ISO10646] -->++<!ENTITY % Number "CDATA">+    <!-- one or more digits -->++<!ENTITY % LinkTypes "CDATA">+    <!-- space-separated list of link types -->++<!ENTITY % MediaDesc "CDATA">+    <!-- single or comma-separated list of media descriptors -->++<!ENTITY % URI "CDATA">+    <!-- a Uniform Resource Identifier, see [RFC2396] -->++<!ENTITY % UriList "CDATA">+    <!-- a space separated list of Uniform Resource Identifiers -->++<!ENTITY % Datetime "CDATA">+    <!-- date and time information. ISO date format -->++<!ENTITY % Script "CDATA">+    <!-- script expression -->++<!ENTITY % StyleSheet "CDATA">+    <!-- style sheet data -->++<!ENTITY % Text "CDATA">+    <!-- used for titles etc. -->++<!ENTITY % FrameTarget "NMTOKEN">+    <!-- render in this frame -->++<!ENTITY % Length "CDATA">+    <!-- nn for pixels or nn% for percentage length -->++<!ENTITY % MultiLength "CDATA">+    <!-- pixel, percentage, or relative -->++<!ENTITY % MultiLengths "CDATA">+    <!-- comma-separated list of MultiLength -->++<!ENTITY % Pixels "CDATA">+    <!-- integer representing length in pixels -->++<!-- these are used for image maps -->++<!ENTITY % Shape "(rect|circle|poly|default)">++<!ENTITY % Coords "CDATA">+    <!-- comma separated list of lengths -->++<!-- used for object, applet, img, input and iframe -->+<!ENTITY % ImgAlign "(top|middle|bottom|left|right)">++<!-- a color using sRGB: #RRGGBB as Hex values -->+<!ENTITY % Color "CDATA">++<!-- There are also 16 widely known color names with their sRGB values:++    Black  = #000000    Green  = #008000+    Silver = #C0C0C0    Lime   = #00FF00+    Gray   = #808080    Olive  = #808000+    White  = #FFFFFF    Yellow = #FFFF00+    Maroon = #800000    Navy   = #000080+    Red    = #FF0000    Blue   = #0000FF+    Purple = #800080    Teal   = #008080+    Fuchsia= #FF00FF    Aqua   = #00FFFF+-->++<!--=================== Generic Attributes ===============================-->++<!-- core attributes common to most elements+  id       document-wide unique id+  class    space separated list of classes+  style    associated style info+  title    advisory title/amplification+-->+<!ENTITY % coreattrs+ "id          ID             #IMPLIED+  class       CDATA          #IMPLIED+  style       %StyleSheet;   #IMPLIED+  title       %Text;         #IMPLIED"+  >++<!-- internationalization attributes+  lang        language code (backwards compatible)+  xml:lang    language code (as per XML 1.0 spec)+  dir         direction for weak/neutral text+-->+<!ENTITY % i18n+ "lang        %LanguageCode; #IMPLIED+  xml:lang    %LanguageCode; #IMPLIED+  dir         (ltr|rtl)      #IMPLIED"+  >++<!-- attributes for common UI events+  onclick     a pointer button was clicked+  ondblclick  a pointer button was double clicked+  onmousedown a pointer button was pressed down+  onmouseup   a pointer button was released+  onmousemove a pointer was moved onto the element+  onmouseout  a pointer was moved away from the element+  onkeypress  a key was pressed and released+  onkeydown   a key was pressed down+  onkeyup     a key was released+-->+<!ENTITY % events+ "onclick     %Script;       #IMPLIED+  ondblclick  %Script;       #IMPLIED+  onmousedown %Script;       #IMPLIED+  onmouseup   %Script;       #IMPLIED+  onmouseover %Script;       #IMPLIED+  onmousemove %Script;       #IMPLIED+  onmouseout  %Script;       #IMPLIED+  onkeypress  %Script;       #IMPLIED+  onkeydown   %Script;       #IMPLIED+  onkeyup     %Script;       #IMPLIED"+  >++<!-- attributes for elements that can get the focus+  accesskey   accessibility key character+  tabindex    position in tabbing order+  onfocus     the element got the focus+  onblur      the element lost the focus+-->+<!ENTITY % focus+ "accesskey   %Character;    #IMPLIED+  tabindex    %Number;       #IMPLIED+  onfocus     %Script;       #IMPLIED+  onblur      %Script;       #IMPLIED"+  >++<!ENTITY % attrs "%coreattrs; %i18n; %events;">++<!-- text alignment for p, div, h1-h6. The default is+     align="left" for ltr headings, "right" for rtl -->++<!ENTITY % TextAlign "align (left|center|right) #IMPLIED">++<!--=================== Text Elements ====================================-->++<!ENTITY % special+   "br | span | bdo |object | applet | img | map | iframe">++<!ENTITY % fontstyle "tt | i | b | big | small | u+                      | s | strike |font | basefont">++<!ENTITY % phrase "em | strong | dfn | code | q | sub | sup |+                   samp | kbd | var | cite | abbr | acronym">++<!ENTITY % inline.forms "input | select | textarea | label | button">++<!-- these can occur at block or inline level -->+<!ENTITY % misc "ins | del | script | noscript">++<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">++<!-- %Inline; covers inline or "text-level" elements -->+<!ENTITY % Inline "(#PCDATA | %inline; | %misc;)*">++<!--================== Block level elements ==============================-->++<!ENTITY % heading "h1|h2|h3|h4|h5|h6">+<!ENTITY % lists "ul | ol | dl | menu | dir">+<!ENTITY % blocktext "pre | hr | blockquote | address | center">++<!ENTITY % block+    "p | %heading; | div | %lists; | %blocktext; | isindex | fieldset | table">++<!ENTITY % Block "(%block; | form | %misc;)*">++<!-- %Flow; mixes Block and Inline and is used for list items etc. -->+<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">++<!--================== Content models for exclusions =====================-->++<!-- a elements use %Inline; excluding a -->++<!ENTITY % a.content+   "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc;)*">++<!-- pre uses %Inline excluding img, object, applet, big, small,+     sub, sup, font, or basefont -->++<!ENTITY % pre.content+   "(#PCDATA | a | br | span | bdo | map | tt | i | b | u | s |+      %phrase; | %inline.forms;)*">++<!-- form uses %Flow; excluding form -->++<!ENTITY % form.content "(#PCDATA | %block; | %inline; | %misc;)*">++<!-- button uses %Flow; but excludes a, form, form controls, iframe -->++<!ENTITY % button.content+   "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |+      table | br | span | bdo | object | applet | img | map |+      %fontstyle; | %phrase; | %misc;)*">++<!--================ Document Structure ==================================-->++<!-- the namespace URI designates the document profile -->++<!ELEMENT html (head, frameset)>+<!ATTLIST html+  %i18n;+  xmlns       %URI;          #FIXED 'http://www.w3.org/1999/xhtml'+  >++<!--================ Document Head =======================================-->++<!ENTITY % head.misc "(script|style|meta|link|object|isindex)*">++<!-- content model is %head.misc; combined with a single+     title and an optional base element in any order -->++<!ELEMENT head (%head.misc;,+     ((title, %head.misc;, (base, %head.misc;)?) |+      (base, %head.misc;, (title, %head.misc;))))>++<!ATTLIST head+  %i18n;+  profile     %URI;          #IMPLIED+  >++<!-- The title element is not considered part of the flow of text.+       It should be displayed, for example as the page header or+       window title. Exactly one title is required per document.+    -->+<!ELEMENT title (#PCDATA)>+<!ATTLIST title %i18n;>++<!-- document base URI -->++<!ELEMENT base EMPTY>+<!ATTLIST base+  href        %URI;          #IMPLIED+  target      %FrameTarget;  #IMPLIED+  >++<!-- generic metainformation -->+<!ELEMENT meta EMPTY>+<!ATTLIST meta+  %i18n;+  http-equiv  CDATA          #IMPLIED+  name        CDATA          #IMPLIED+  content     CDATA          #REQUIRED+  scheme      CDATA          #IMPLIED+  >++<!--+  Relationship values can be used in principle:++   a) for document specific toolbars/menus when used+      with the link element in document head e.g.+        start, contents, previous, next, index, end, help+   b) to link to a separate style sheet (rel="stylesheet")+   c) to make a link to a script (rel="script")+   d) by stylesheets to control how collections of+      html nodes are rendered into printed documents+   e) to make a link to a printable version of this document+      e.g. a PostScript or PDF version (rel="alternate" media="print")+-->++<!ELEMENT link EMPTY>+<!ATTLIST link+  %attrs;+  charset     %Charset;      #IMPLIED+  href        %URI;          #IMPLIED+  hreflang    %LanguageCode; #IMPLIED+  type        %ContentType;  #IMPLIED+  rel         %LinkTypes;    #IMPLIED+  rev         %LinkTypes;    #IMPLIED+  media       %MediaDesc;    #IMPLIED+  target      %FrameTarget;  #IMPLIED+  >++<!-- style info, which may include CDATA sections -->+<!ELEMENT style (#PCDATA)>+<!ATTLIST style+  %i18n;+  type        %ContentType;  #REQUIRED+  media       %MediaDesc;    #IMPLIED+  title       %Text;         #IMPLIED+  xml:space   (preserve)     #FIXED 'preserve'+  >++<!-- script statements, which may include CDATA sections -->+<!ELEMENT script (#PCDATA)>+<!ATTLIST script+  charset     %Charset;      #IMPLIED+  type        %ContentType;  #REQUIRED+  language    CDATA          #IMPLIED+  src         %URI;          #IMPLIED+  defer       (defer)        #IMPLIED+  xml:space   (preserve)     #FIXED 'preserve'+  >++<!-- alternate content container for non script-based rendering -->++<!ELEMENT noscript %Flow;>+<!ATTLIST noscript+  %attrs;+  >++<!--======================= Frames =======================================-->++<!-- only one noframes element permitted per document -->++<!ELEMENT frameset (frameset|frame|noframes)*>+<!ATTLIST frameset+  %coreattrs;+  rows        %MultiLengths; #IMPLIED+  cols        %MultiLengths; #IMPLIED+  onload      %Script;       #IMPLIED+  onunload    %Script;       #IMPLIED+  >++<!-- reserved frame names start with "_" otherwise starts with letter -->++<!-- tiled window within frameset -->++<!ELEMENT frame EMPTY>+<!ATTLIST frame+  %coreattrs;+  longdesc    %URI;          #IMPLIED+  name        NMTOKEN        #IMPLIED+  src         %URI;          #IMPLIED+  frameborder (1|0)          "1"+  marginwidth %Pixels;       #IMPLIED+  marginheight %Pixels;      #IMPLIED+  noresize    (noresize)     #IMPLIED+  scrolling   (yes|no|auto)  "auto"+  >++<!-- inline subwindow -->++<!ELEMENT iframe %Flow;>+<!ATTLIST iframe+  %coreattrs;+  longdesc    %URI;          #IMPLIED+  name        NMTOKEN        #IMPLIED+  src         %URI;          #IMPLIED+  frameborder (1|0)          "1"+  marginwidth %Pixels;       #IMPLIED+  marginheight %Pixels;      #IMPLIED+  scrolling   (yes|no|auto)  "auto"+  align       %ImgAlign;     #IMPLIED+  height      %Length;       #IMPLIED+  width       %Length;       #IMPLIED+  >++<!-- alternate content container for non frame-based rendering -->++<!ELEMENT noframes (body)>+<!ATTLIST noframes+  %attrs;+  >++<!--=================== Document Body ====================================-->++<!ELEMENT body %Flow;>+<!ATTLIST body+  %attrs;+  onload      %Script;       #IMPLIED+  onunload    %Script;       #IMPLIED+  background  %URI;          #IMPLIED+  bgcolor     %Color;        #IMPLIED+  text        %Color;        #IMPLIED+  link        %Color;        #IMPLIED+  vlink       %Color;        #IMPLIED+  alink       %Color;        #IMPLIED+  >++<!ELEMENT div %Flow;>  <!-- generic language/style container -->+<!ATTLIST div+  %attrs;+  %TextAlign;+  >++<!--=================== Paragraphs =======================================-->++<!ELEMENT p %Inline;>+<!ATTLIST p+  %attrs;+  %TextAlign;+  >++<!--=================== Headings =========================================-->++<!--+  There are six levels of headings from h1 (the most important)+  to h6 (the least important).+-->++<!ELEMENT h1  %Inline;>+<!ATTLIST h1+  %attrs;+  %TextAlign;+  >++<!ELEMENT h2 %Inline;>+<!ATTLIST h2+  %attrs;+  %TextAlign;+  >++<!ELEMENT h3 %Inline;>+<!ATTLIST h3+  %attrs;+  %TextAlign;+  >++<!ELEMENT h4 %Inline;>+<!ATTLIST h4+  %attrs;+  %TextAlign;+  >++<!ELEMENT h5 %Inline;>+<!ATTLIST h5+  %attrs;+  %TextAlign;+  >++<!ELEMENT h6 %Inline;>+<!ATTLIST h6+  %attrs;+  %TextAlign;+  >++<!--=================== Lists ============================================-->++<!-- Unordered list bullet styles -->++<!ENTITY % ULStyle "(disc|square|circle)">++<!-- Unordered list -->++<!ELEMENT ul (li)+>+<!ATTLIST ul+  %attrs;+  type        %ULStyle;     #IMPLIED+  compact     (compact)     #IMPLIED+  >++<!-- Ordered list numbering style++    1   arabic numbers      1, 2, 3, ...+    a   lower alpha         a, b, c, ...+    A   upper alpha         A, B, C, ...+    i   lower roman         i, ii, iii, ...+    I   upper roman         I, II, III, ...++    The style is applied to the sequence number which by default+    is reset to 1 for the first list item in an ordered list.+-->+<!ENTITY % OLStyle "CDATA">++<!-- Ordered (numbered) list -->++<!ELEMENT ol (li)+>+<!ATTLIST ol+  %attrs;+  type        %OLStyle;      #IMPLIED+  compact     (compact)      #IMPLIED+  start       %Number;       #IMPLIED+  >++<!-- single column list (DEPRECATED) --> +<!ELEMENT menu (li)+>+<!ATTLIST menu+  %attrs;+  compact     (compact)     #IMPLIED+  >++<!-- multiple column list (DEPRECATED) --> +<!ELEMENT dir (li)+>+<!ATTLIST dir+  %attrs;+  compact     (compact)     #IMPLIED+  >++<!-- LIStyle is constrained to: "(%ULStyle;|%OLStyle;)" -->+<!ENTITY % LIStyle "CDATA">++<!-- list item -->++<!ELEMENT li %Flow;>+<!ATTLIST li+  %attrs;+  type        %LIStyle;      #IMPLIED+  value       %Number;       #IMPLIED+  >++<!-- definition lists - dt for term, dd for its definition -->++<!ELEMENT dl (dt|dd)+>+<!ATTLIST dl+  %attrs;+  compact     (compact)      #IMPLIED+  >++<!ELEMENT dt %Inline;>+<!ATTLIST dt+  %attrs;+  >++<!ELEMENT dd %Flow;>+<!ATTLIST dd+  %attrs;+  >++<!--=================== Address ==========================================-->++<!-- information on author -->++<!ELEMENT address %Inline;>+<!ATTLIST address+  %attrs;+  >++<!--=================== Horizontal Rule ==================================-->++<!ELEMENT hr EMPTY>+<!ATTLIST hr+  %attrs;+  align       (left|center|right) #IMPLIED+  noshade     (noshade)      #IMPLIED+  size        %Pixels;       #IMPLIED+  width       %Length;       #IMPLIED+  >++<!--=================== Preformatted Text ================================-->++<!-- content is %Inline; excluding +        "img|object|applet|big|small|sub|sup|font|basefont" -->++<!ELEMENT pre %pre.content;>+<!ATTLIST pre+  %attrs;+  width       %Number;      #IMPLIED+  xml:space   (preserve)    #FIXED 'preserve'+  >++<!--=================== Block-like Quotes ================================-->++<!ELEMENT blockquote %Flow;>+<!ATTLIST blockquote+  %attrs;+  cite        %URI;          #IMPLIED+  >++<!--=================== Text alignment ===================================-->++<!-- center content -->+<!ELEMENT center %Flow;>+<!ATTLIST center+  %attrs;+  >++<!--=================== Inserted/Deleted Text ============================-->+++<!--+  ins/del are allowed in block and inline content, but its+  inappropriate to include block content within an ins element+  occurring in inline content.+-->+<!ELEMENT ins %Flow;>+<!ATTLIST ins+  %attrs;+  cite        %URI;          #IMPLIED+  datetime    %Datetime;     #IMPLIED+  >++<!ELEMENT del %Flow;>+<!ATTLIST del+  %attrs;+  cite        %URI;          #IMPLIED+  datetime    %Datetime;     #IMPLIED+  >++<!--================== The Anchor Element ================================-->++<!-- content is %Inline; except that anchors shouldn't be nested -->++<!ELEMENT a %a.content;>+<!ATTLIST a+  %attrs;+  charset     %Charset;      #IMPLIED+  type        %ContentType;  #IMPLIED+  name        NMTOKEN        #IMPLIED+  href        %URI;          #IMPLIED+  hreflang    %LanguageCode; #IMPLIED+  rel         %LinkTypes;    #IMPLIED+  rev         %LinkTypes;    #IMPLIED+  accesskey   %Character;    #IMPLIED+  shape       %Shape;        "rect"+  coords      %Coords;       #IMPLIED+  tabindex    %Number;       #IMPLIED+  onfocus     %Script;       #IMPLIED+  onblur      %Script;       #IMPLIED+  target      %FrameTarget;  #IMPLIED+  >++<!--===================== Inline Elements ================================-->++<!ELEMENT span %Inline;> <!-- generic language/style container -->+<!ATTLIST span+  %attrs;+  >++<!ELEMENT bdo %Inline;>  <!-- I18N BiDi over-ride -->+<!ATTLIST bdo+  %coreattrs;+  %events;+  lang        %LanguageCode; #IMPLIED+  xml:lang    %LanguageCode; #IMPLIED+  dir         (ltr|rtl)      #REQUIRED+  >++<!ELEMENT br EMPTY>   <!-- forced line break -->+<!ATTLIST br+  %coreattrs;+  clear       (left|all|right|none) "none"+  >++<!ELEMENT em %Inline;>   <!-- emphasis -->+<!ATTLIST em %attrs;>++<!ELEMENT strong %Inline;>   <!-- strong emphasis -->+<!ATTLIST strong %attrs;>++<!ELEMENT dfn %Inline;>   <!-- definitional -->+<!ATTLIST dfn %attrs;>++<!ELEMENT code %Inline;>   <!-- program code -->+<!ATTLIST code %attrs;>++<!ELEMENT samp %Inline;>   <!-- sample -->+<!ATTLIST samp %attrs;>++<!ELEMENT kbd %Inline;>  <!-- something user would type -->+<!ATTLIST kbd %attrs;>++<!ELEMENT var %Inline;>   <!-- variable -->+<!ATTLIST var %attrs;>++<!ELEMENT cite %Inline;>   <!-- citation -->+<!ATTLIST cite %attrs;>++<!ELEMENT abbr %Inline;>   <!-- abbreviation -->+<!ATTLIST abbr %attrs;>++<!ELEMENT acronym %Inline;>   <!-- acronym -->+<!ATTLIST acronym %attrs;>++<!ELEMENT q %Inline;>   <!-- inlined quote -->+<!ATTLIST q+   %attrs;+  cite        %URI;          #IMPLIED+   >++<!ELEMENT sub %Inline;> <!-- subscript -->+<!ATTLIST sub %attrs;>++<!ELEMENT sup %Inline;> <!-- superscript -->+<!ATTLIST sup %attrs;>++<!ELEMENT tt %Inline;>   <!-- fixed pitch font -->+<!ATTLIST tt %attrs;>++<!ELEMENT i %Inline;>   <!-- italic font -->+<!ATTLIST i %attrs;>++<!ELEMENT b %Inline;>   <!-- bold font -->+<!ATTLIST b %attrs;>++<!ELEMENT big %Inline;>   <!-- bigger font -->+<!ATTLIST big %attrs;>++<!ELEMENT small %Inline;>   <!-- smaller font -->+<!ATTLIST small %attrs;>++<!ELEMENT u %Inline;>   <!-- underline -->+<!ATTLIST u %attrs;>++<!ELEMENT s %Inline;>   <!-- strike-through -->+<!ATTLIST s %attrs;>++<!ELEMENT strike %Inline;>   <!-- strike-through -->+<!ATTLIST strike %attrs;>++<!ELEMENT basefont EMPTY>  <!-- base font size -->+<!ATTLIST basefont+  id          ID             #IMPLIED+  size        CDATA          #REQUIRED+  color       %Color;        #IMPLIED+  face        CDATA          #IMPLIED+  >++<!ELEMENT font %Inline;> <!-- local change to font -->+<!ATTLIST font+  %coreattrs;+  %i18n;+  size        CDATA          #IMPLIED+  color       %Color;        #IMPLIED+  face        CDATA          #IMPLIED+  >++<!--==================== Object ======================================-->+<!--+  object is used to embed objects as part of HTML pages.+  param elements should precede other content. Parameters+  can also be expressed as attribute/value pairs on the+  object element itself when brevity is desired.+-->++<!ELEMENT object (#PCDATA | param | %block; | form |%inline; | %misc;)*>+<!ATTLIST object+  %attrs;+  declare     (declare)      #IMPLIED+  classid     %URI;          #IMPLIED+  codebase    %URI;          #IMPLIED+  data        %URI;          #IMPLIED+  type        %ContentType;  #IMPLIED+  codetype    %ContentType;  #IMPLIED+  archive     %UriList;      #IMPLIED+  standby     %Text;         #IMPLIED+  height      %Length;       #IMPLIED+  width       %Length;       #IMPLIED+  usemap      %URI;          #IMPLIED+  name        NMTOKEN        #IMPLIED+  tabindex    %Number;       #IMPLIED+  align       %ImgAlign;     #IMPLIED+  border      %Pixels;       #IMPLIED+  hspace      %Pixels;       #IMPLIED+  vspace      %Pixels;       #IMPLIED+  >++<!--+  param is used to supply a named property value.+  In XML it would seem natural to follow RDF and support an+  abbreviated syntax where the param elements are replaced+  by attribute value pairs on the object start tag.+-->+<!ELEMENT param EMPTY>+<!ATTLIST param+  id          ID             #IMPLIED+  name        CDATA          #REQUIRED+  value       CDATA          #IMPLIED+  valuetype   (data|ref|object) "data"+  type        %ContentType;  #IMPLIED+  >++<!--=================== Java applet ==================================-->+<!--+  One of code or object attributes must be present.+  Place param elements before other content.+-->+<!ELEMENT applet (#PCDATA | param | %block; | form | %inline; | %misc;)*>+<!ATTLIST applet+  %coreattrs;+  codebase    %URI;          #IMPLIED+  archive     CDATA          #IMPLIED+  code        CDATA          #IMPLIED+  object      CDATA          #IMPLIED+  alt         %Text;         #IMPLIED+  name        NMTOKEN        #IMPLIED+  width       %Length;       #REQUIRED+  height      %Length;       #REQUIRED+  align       %ImgAlign;     #IMPLIED+  hspace      %Pixels;       #IMPLIED+  vspace      %Pixels;       #IMPLIED+  >++<!--=================== Images ===========================================-->++<!--+   To avoid accessibility problems for people who aren't+   able to see the image, you should provide a text+   description using the alt and longdesc attributes.+   In addition, avoid the use of server-side image maps.+-->++<!ELEMENT img EMPTY>+<!ATTLIST img+  %attrs;+  src         %URI;          #REQUIRED+  alt         %Text;         #REQUIRED+  name        NMTOKEN        #IMPLIED+  longdesc    %URI;          #IMPLIED+  height      %Length;       #IMPLIED+  width       %Length;       #IMPLIED+  usemap      %URI;          #IMPLIED+  ismap       (ismap)        #IMPLIED+  align       %ImgAlign;     #IMPLIED+  border      %Pixels;       #IMPLIED+  hspace      %Pixels;       #IMPLIED+  vspace      %Pixels;       #IMPLIED+  >++<!-- usemap points to a map element which may be in this document+  or an external document, although the latter is not widely supported -->++<!--================== Client-side image maps ============================-->++<!-- These can be placed in the same document or grouped in a+     separate document although this isn't yet widely supported -->++<!ELEMENT map ((%block; | form | %misc;)+ | area+)>+<!ATTLIST map+  %i18n;+  %events;+  id          ID             #REQUIRED+  class       CDATA          #IMPLIED+  style       %StyleSheet;   #IMPLIED+  title       %Text;         #IMPLIED+  name        NMTOKEN        #IMPLIED+  >++<!ELEMENT area EMPTY>+<!ATTLIST area+  %attrs;+  shape       %Shape;        "rect"+  coords      %Coords;       #IMPLIED+  href        %URI;          #IMPLIED+  nohref      (nohref)       #IMPLIED+  alt         %Text;         #REQUIRED+  tabindex    %Number;       #IMPLIED+  accesskey   %Character;    #IMPLIED+  onfocus     %Script;       #IMPLIED+  onblur      %Script;       #IMPLIED+  target      %FrameTarget;  #IMPLIED+  >++<!--================ Forms ===============================================-->++<!ELEMENT form %form.content;>   <!-- forms shouldn't be nested -->++<!ATTLIST form+  %attrs;+  action      %URI;          #REQUIRED+  method      (get|post)     "get"+  name        NMTOKEN        #IMPLIED+  enctype     %ContentType;  "application/x-www-form-urlencoded"+  onsubmit    %Script;       #IMPLIED+  onreset     %Script;       #IMPLIED+  accept      %ContentTypes; #IMPLIED+  accept-charset %Charsets;  #IMPLIED+  target      %FrameTarget;  #IMPLIED+  >++<!--+  Each label must not contain more than ONE field+  Label elements shouldn't be nested.+-->+<!ELEMENT label %Inline;>+<!ATTLIST label+  %attrs;+  for         IDREF          #IMPLIED+  accesskey   %Character;    #IMPLIED+  onfocus     %Script;       #IMPLIED+  onblur      %Script;       #IMPLIED+  >++<!ENTITY % InputType+  "(text | password | checkbox |+    radio | submit | reset |+    file | hidden | image | button)"+   >++<!-- the name attribute is required for all but submit & reset -->++<!ELEMENT input EMPTY>     <!-- form control -->+<!ATTLIST input+  %attrs;+  type        %InputType;    "text"+  name        CDATA          #IMPLIED+  value       CDATA          #IMPLIED+  checked     (checked)      #IMPLIED+  disabled    (disabled)     #IMPLIED+  readonly    (readonly)     #IMPLIED+  size        CDATA          #IMPLIED+  maxlength   %Number;       #IMPLIED+  src         %URI;          #IMPLIED+  alt         CDATA          #IMPLIED+  usemap      %URI;          #IMPLIED+  tabindex    %Number;       #IMPLIED+  accesskey   %Character;    #IMPLIED+  onfocus     %Script;       #IMPLIED+  onblur      %Script;       #IMPLIED+  onselect    %Script;       #IMPLIED+  onchange    %Script;       #IMPLIED+  accept      %ContentTypes; #IMPLIED+  align       %ImgAlign;     #IMPLIED+  >++<!ELEMENT select (optgroup|option)+>  <!-- option selector -->+<!ATTLIST select+  %attrs;+  name        CDATA          #IMPLIED+  size        %Number;       #IMPLIED+  multiple    (multiple)     #IMPLIED+  disabled    (disabled)     #IMPLIED+  tabindex    %Number;       #IMPLIED+  onfocus     %Script;       #IMPLIED+  onblur      %Script;       #IMPLIED+  onchange    %Script;       #IMPLIED+  >++<!ELEMENT optgroup (option)+>   <!-- option group -->+<!ATTLIST optgroup+  %attrs;+  disabled    (disabled)     #IMPLIED+  label       %Text;         #REQUIRED+  >++<!ELEMENT option (#PCDATA)>     <!-- selectable choice -->+<!ATTLIST option+  %attrs;+  selected    (selected)     #IMPLIED+  disabled    (disabled)     #IMPLIED+  label       %Text;         #IMPLIED+  value       CDATA          #IMPLIED+  >++<!ELEMENT textarea (#PCDATA)>     <!-- multi-line text field -->+<!ATTLIST textarea+  %attrs;+  name        CDATA          #IMPLIED+  rows        %Number;       #REQUIRED+  cols        %Number;       #REQUIRED+  disabled    (disabled)     #IMPLIED+  readonly    (readonly)     #IMPLIED+  tabindex    %Number;       #IMPLIED+  accesskey   %Character;    #IMPLIED+  onfocus     %Script;       #IMPLIED+  onblur      %Script;       #IMPLIED+  onselect    %Script;       #IMPLIED+  onchange    %Script;       #IMPLIED+  >++<!--+  The fieldset element is used to group form fields.+  Only one legend element should occur in the content+  and if present should only be preceded by whitespace.+-->+<!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>+<!ATTLIST fieldset+  %attrs;+  >++<!ENTITY % LAlign "(top|bottom|left|right)">++<!ELEMENT legend %Inline;>     <!-- fieldset label -->+<!ATTLIST legend+  %attrs;+  accesskey   %Character;    #IMPLIED+  align       %LAlign;       #IMPLIED+  >++<!--+ Content is %Flow; excluding a, form, form controls, iframe+--> +<!ELEMENT button %button.content;>  <!-- push button -->+<!ATTLIST button+  %attrs;+  name        CDATA          #IMPLIED+  value       CDATA          #IMPLIED+  type        (button|submit|reset) "submit"+  disabled    (disabled)     #IMPLIED+  tabindex    %Number;       #IMPLIED+  accesskey   %Character;    #IMPLIED+  onfocus     %Script;       #IMPLIED+  onblur      %Script;       #IMPLIED+  >++<!-- single-line text input control (DEPRECATED) -->+<!ELEMENT isindex EMPTY>+<!ATTLIST isindex+  %coreattrs;+  %i18n;+  prompt      %Text;         #IMPLIED+  >++<!--======================= Tables =======================================-->++<!-- Derived from IETF HTML table standard, see [RFC1942] -->++<!--+ The border attribute sets the thickness of the frame around the+ table. The default units are screen pixels.++ The frame attribute specifies which parts of the frame around+ the table should be rendered. The values are not the same as+ CALS to avoid a name clash with the valign attribute.+-->+<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">++<!--+ The rules attribute defines which rules to draw between cells:++ If rules is absent then assume:+     "none" if border is absent or border="0" otherwise "all"+-->++<!ENTITY % TRules "(none | groups | rows | cols | all)">+  +<!-- horizontal placement of table relative to document -->+<!ENTITY % TAlign "(left|center|right)">++<!-- horizontal alignment attributes for cell contents++  char        alignment char, e.g. char=":"+  charoff     offset for alignment char+-->+<!ENTITY % cellhalign+  "align      (left|center|right|justify|char) #IMPLIED+   char       %Character;    #IMPLIED+   charoff    %Length;       #IMPLIED"+  >++<!-- vertical alignment attributes for cell contents -->+<!ENTITY % cellvalign+  "valign     (top|middle|bottom|baseline) #IMPLIED"+  >++<!ELEMENT table+     (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>+<!ELEMENT caption  %Inline;>+<!ELEMENT thead    (tr)+>+<!ELEMENT tfoot    (tr)+>+<!ELEMENT tbody    (tr)+>+<!ELEMENT colgroup (col)*>+<!ELEMENT col      EMPTY>+<!ELEMENT tr       (th|td)+>+<!ELEMENT th       %Flow;>+<!ELEMENT td       %Flow;>++<!ATTLIST table+  %attrs;+  summary     %Text;         #IMPLIED+  width       %Length;       #IMPLIED+  border      %Pixels;       #IMPLIED+  frame       %TFrame;       #IMPLIED+  rules       %TRules;       #IMPLIED+  cellspacing %Length;       #IMPLIED+  cellpadding %Length;       #IMPLIED+  align       %TAlign;       #IMPLIED+  bgcolor     %Color;        #IMPLIED+  >++<!ENTITY % CAlign "(top|bottom|left|right)">++<!ATTLIST caption+  %attrs;+  align       %CAlign;       #IMPLIED+  >++<!--+colgroup groups a set of col elements. It allows you to group+several semantically related columns together.+-->+<!ATTLIST colgroup+  %attrs;+  span        %Number;       "1"+  width       %MultiLength;  #IMPLIED+  %cellhalign;+  %cellvalign;+  >++<!--+ col elements define the alignment properties for cells in+ one or more columns.++ The width attribute specifies the width of the columns, e.g.++     width=64        width in screen pixels+     width=0.5*      relative width of 0.5++ The span attribute causes the attributes of one+ col element to apply to more than one column.+-->+<!ATTLIST col+  %attrs;+  span        %Number;       "1"+  width       %MultiLength;  #IMPLIED+  %cellhalign;+  %cellvalign;+  >++<!--+    Use thead to duplicate headers when breaking table+    across page boundaries, or for static headers when+    tbody sections are rendered in scrolling panel.++    Use tfoot to duplicate footers when breaking table+    across page boundaries, or for static footers when+    tbody sections are rendered in scrolling panel.++    Use multiple tbody sections when rules are needed+    between groups of table rows.+-->+<!ATTLIST thead+  %attrs;+  %cellhalign;+  %cellvalign;+  >++<!ATTLIST tfoot+  %attrs;+  %cellhalign;+  %cellvalign;+  >++<!ATTLIST tbody+  %attrs;+  %cellhalign;+  %cellvalign;+  >++<!ATTLIST tr+  %attrs;+  %cellhalign;+  %cellvalign;+  bgcolor     %Color;        #IMPLIED+  >++<!-- Scope is simpler than headers attribute for common tables -->+<!ENTITY % Scope "(row|col|rowgroup|colgroup)">++<!-- th is for headers, td for data and for cells acting as both -->++<!ATTLIST th+  %attrs;+  abbr        %Text;         #IMPLIED+  axis        CDATA          #IMPLIED+  headers     IDREFS         #IMPLIED+  scope       %Scope;        #IMPLIED+  rowspan     %Number;       "1"+  colspan     %Number;       "1"+  %cellhalign;+  %cellvalign;+  nowrap      (nowrap)       #IMPLIED+  bgcolor     %Color;        #IMPLIED+  width       %Pixels;       #IMPLIED+  height      %Pixels;       #IMPLIED+  >++<!ATTLIST td+  %attrs;+  abbr        %Text;         #IMPLIED+  axis        CDATA          #IMPLIED+  headers     IDREFS         #IMPLIED+  scope       %Scope;        #IMPLIED+  rowspan     %Number;       "1"+  colspan     %Number;       "1"+  %cellhalign;+  %cellvalign;+  nowrap      (nowrap)       #IMPLIED+  bgcolor     %Color;        #IMPLIED+  width       %Pixels;       #IMPLIED+  height      %Pixels;       #IMPLIED+  >+
+ examples/xhtml/xhtml1-strict.dtd view
@@ -0,0 +1,988 @@+<!--+   Extensible HTML version 1.0 Strict DTD++   This is the same as HTML 4.0 Strict except for+   changes due to the differences between XML and SGML.++   Namespace = http://www.w3.org/1999/xhtml++   For further information, see: http://www.w3.org/TR/xhtml1++   Copyright (c) 1998-2000 W3C (MIT, INRIA, Keio),+   All Rights Reserved. ++   This DTD module is identified by the PUBLIC and SYSTEM identifiers:++   PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"+   SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"++   $Revision: 1.1 $+   $Date: 2002/10/01 13:47:08 $++-->++<!--================ Character mnemonic entities =========================-->++<!ENTITY % HTMLlat1 PUBLIC+   "-//W3C//ENTITIES Latin 1 for XHTML//EN"+   "xhtml-lat1.ent">+%HTMLlat1;++<!ENTITY % HTMLsymbol PUBLIC+   "-//W3C//ENTITIES Symbols for XHTML//EN"+   "xhtml-symbol.ent">+%HTMLsymbol;++<!ENTITY % HTMLspecial PUBLIC+   "-//W3C//ENTITIES Special for XHTML//EN"+   "xhtml-special.ent">+%HTMLspecial;++<!--================== Imported Names ====================================-->++<!ENTITY % ContentType "CDATA">+    <!-- media type, as per [RFC2045] -->++<!ENTITY % ContentTypes "CDATA">+    <!-- comma-separated list of media types, as per [RFC2045] -->++<!ENTITY % Charset "CDATA">+    <!-- a character encoding, as per [RFC2045] -->++<!ENTITY % Charsets "CDATA">+    <!-- a space separated list of character encodings, as per [RFC2045] -->++<!ENTITY % LanguageCode "NMTOKEN">+    <!-- a language code, as per [RFC1766] -->++<!ENTITY % Character "CDATA">+    <!-- a single character from [ISO10646] -->++<!ENTITY % Number "CDATA">+    <!-- one or more digits -->++<!ENTITY % LinkTypes "CDATA">+    <!-- space-separated list of link types -->++<!ENTITY % MediaDesc "CDATA">+    <!-- single or comma-separated list of media descriptors -->++<!ENTITY % URI "CDATA">+    <!-- a Uniform Resource Identifier, see [RFC2396] -->++<!ENTITY % UriList "CDATA">+    <!-- a space separated list of Uniform Resource Identifiers -->++<!ENTITY % Datetime "CDATA">+    <!-- date and time information. ISO date format -->++<!ENTITY % Script "CDATA">+    <!-- script expression -->++<!ENTITY % StyleSheet "CDATA">+    <!-- style sheet data -->++<!ENTITY % Text "CDATA">+    <!-- used for titles etc. -->++<!ENTITY % FrameTarget "NMTOKEN">+    <!-- render in this frame -->++<!ENTITY % Length "CDATA">+    <!-- nn for pixels or nn% for percentage length -->++<!ENTITY % MultiLength "CDATA">+    <!-- pixel, percentage, or relative -->++<!ENTITY % MultiLengths "CDATA">+    <!-- comma-separated list of MultiLength -->++<!ENTITY % Pixels "CDATA">+    <!-- integer representing length in pixels -->++<!-- these are used for image maps -->++<!ENTITY % Shape "(rect|circle|poly|default)">++<!ENTITY % Coords "CDATA">+    <!-- comma separated list of lengths -->++<!--=================== Generic Attributes ===============================-->++<!-- core attributes common to most elements+  id       document-wide unique id+  class    space separated list of classes+  style    associated style info+  title    advisory title/amplification+-->+<!ENTITY % coreattrs+ "id          ID             #IMPLIED+  class       CDATA          #IMPLIED+  style       %StyleSheet;   #IMPLIED+  title       %Text;         #IMPLIED"+  >++<!-- internationalization attributes+  lang        language code (backwards compatible)+  xml:lang    language code (as per XML 1.0 spec)+  dir         direction for weak/neutral text+-->+<!ENTITY % i18n+ "lang        %LanguageCode; #IMPLIED+  xml:lang    %LanguageCode; #IMPLIED+  dir         (ltr|rtl)      #IMPLIED"+  >++<!-- attributes for common UI events+  onclick     a pointer button was clicked+  ondblclick  a pointer button was double clicked+  onmousedown a pointer button was pressed down+  onmouseup   a pointer button was released+  onmousemove a pointer was moved onto the element+  onmouseout  a pointer was moved away from the element+  onkeypress  a key was pressed and released+  onkeydown   a key was pressed down+  onkeyup     a key was released+-->+<!ENTITY % events+ "onclick     %Script;       #IMPLIED+  ondblclick  %Script;       #IMPLIED+  onmousedown %Script;       #IMPLIED+  onmouseup   %Script;       #IMPLIED+  onmouseover %Script;       #IMPLIED+  onmousemove %Script;       #IMPLIED+  onmouseout  %Script;       #IMPLIED+  onkeypress  %Script;       #IMPLIED+  onkeydown   %Script;       #IMPLIED+  onkeyup     %Script;       #IMPLIED"+  >++<!-- attributes for elements that can get the focus+  accesskey   accessibility key character+  tabindex    position in tabbing order+  onfocus     the element got the focus+  onblur      the element lost the focus+-->+<!ENTITY % focus+ "accesskey   %Character;    #IMPLIED+  tabindex    %Number;       #IMPLIED+  onfocus     %Script;       #IMPLIED+  onblur      %Script;       #IMPLIED"+  >++<!ENTITY % attrs "%coreattrs; %i18n; %events;">++<!--=================== Text Elements ====================================-->++<!ENTITY % special+   "br | span | bdo | object | img | map">++<!ENTITY % fontstyle "tt | i | b | big | small">++<!ENTITY % phrase "em | strong | dfn | code | q | sub | sup |+                   samp | kbd | var | cite | abbr | acronym">++<!ENTITY % inline.forms "input | select | textarea | label | button">++<!-- these can occur at block or inline level -->+<!ENTITY % misc "ins | del | script | noscript">++<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">++<!-- %Inline; covers inline or "text-level" elements -->+<!ENTITY % Inline "(#PCDATA | %inline; | %misc;)*">++<!--================== Block level elements ==============================-->++<!ENTITY % heading "h1|h2|h3|h4|h5|h6">+<!ENTITY % lists "ul | ol | dl">+<!ENTITY % blocktext "pre | hr | blockquote | address">++<!ENTITY % block+     "p | %heading; | div | %lists; | %blocktext; | fieldset | table">++<!ENTITY % Block "(%block; | form | %misc;)*">++<!-- %Flow; mixes Block and Inline and is used for list items etc. -->+<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">++<!--================== Content models for exclusions =====================-->++<!-- a elements use %Inline; excluding a -->++<!ENTITY % a.content+   "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc;)*">++<!-- pre uses %Inline excluding img, object, big, small, sup or sup -->++<!ENTITY % pre.content+   "(#PCDATA | a | br | span | bdo | map | tt | i | b |+      %phrase; | %inline.forms;)*">++<!-- form uses %Block; excluding form -->++<!ENTITY % form.content "(%block; | %misc;)*">++<!-- button uses %Flow; but excludes a, form and form controls -->++<!ENTITY % button.content+   "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |+    table | %special; | %fontstyle; | %phrase; | %misc;)*">++<!--================ Document Structure ==================================-->++<!-- the namespace URI designates the document profile -->++<!ELEMENT html (head, body)>+<!ATTLIST html+  %i18n;+  xmlns       %URI;          #FIXED 'http://www.w3.org/1999/xhtml'+  >++<!--================ Document Head =======================================-->++<!ENTITY % head.misc "(script|style|meta|link|object)*">++<!-- content model is %head.misc; combined with a single+     title and an optional base element in any order -->++<!ELEMENT head (%head.misc;,+     ((title, %head.misc;, (base, %head.misc;)?) |+      (base, %head.misc;, (title, %head.misc;))))>++<!ATTLIST head+  %i18n;+  profile     %URI;          #IMPLIED+  >++<!-- The title element is not considered part of the flow of text.+       It should be displayed, for example as the page header or+       window title. Exactly one title is required per document.+    -->+<!ELEMENT title (#PCDATA)>+<!ATTLIST title %i18n;>++<!-- document base URI -->++<!ELEMENT base EMPTY>+<!ATTLIST base+  href        %URI;          #IMPLIED+  >++<!-- generic metainformation -->+<!ELEMENT meta EMPTY>+<!ATTLIST meta+  %i18n;+  http-equiv  CDATA          #IMPLIED+  name        CDATA          #IMPLIED+  content     CDATA          #REQUIRED+  scheme      CDATA          #IMPLIED+  >++<!--+  Relationship values can be used in principle:++   a) for document specific toolbars/menus when used+      with the link element in document head e.g.+        start, contents, previous, next, index, end, help+   b) to link to a separate style sheet (rel="stylesheet")+   c) to make a link to a script (rel="script")+   d) by stylesheets to control how collections of+      html nodes are rendered into printed documents+   e) to make a link to a printable version of this document+      e.g. a PostScript or PDF version (rel="alternate" media="print")+-->++<!ELEMENT link EMPTY>+<!ATTLIST link+  %attrs;+  charset     %Charset;      #IMPLIED+  href        %URI;          #IMPLIED+  hreflang    %LanguageCode; #IMPLIED+  type        %ContentType;  #IMPLIED+  rel         %LinkTypes;    #IMPLIED+  rev         %LinkTypes;    #IMPLIED+  media       %MediaDesc;    #IMPLIED+  >++<!-- style info, which may include CDATA sections -->+<!ELEMENT style (#PCDATA)>+<!ATTLIST style+  %i18n;+  type        %ContentType;  #REQUIRED+  media       %MediaDesc;    #IMPLIED+  title       %Text;         #IMPLIED+  xml:space   (preserve)     #FIXED 'preserve'+  >++<!-- script statements, which may include CDATA sections -->+<!ELEMENT script (#PCDATA)>+<!ATTLIST script+  charset     %Charset;      #IMPLIED+  type        %ContentType;  #REQUIRED+  src         %URI;          #IMPLIED+  defer       (defer)        #IMPLIED+  xml:space   (preserve)     #FIXED 'preserve'+  >++<!-- alternate content container for non script-based rendering -->++<!ELEMENT noscript %Block;>+<!ATTLIST noscript+  %attrs;+  >++<!--=================== Document Body ====================================-->++<!ELEMENT body %Block;>+<!ATTLIST body+  %attrs;+  onload          %Script;   #IMPLIED+  onunload        %Script;   #IMPLIED+  >++<!ELEMENT div %Flow;>  <!-- generic language/style container -->+<!ATTLIST div+  %attrs;+  >++<!--=================== Paragraphs =======================================-->++<!ELEMENT p %Inline;>+<!ATTLIST p+  %attrs;+  >++<!--=================== Headings =========================================-->++<!--+  There are six levels of headings from h1 (the most important)+  to h6 (the least important).+-->++<!ELEMENT h1  %Inline;>+<!ATTLIST h1+   %attrs;+   >++<!ELEMENT h2 %Inline;>+<!ATTLIST h2+   %attrs;+   >++<!ELEMENT h3 %Inline;>+<!ATTLIST h3+   %attrs;+   >++<!ELEMENT h4 %Inline;>+<!ATTLIST h4+   %attrs;+   >++<!ELEMENT h5 %Inline;>+<!ATTLIST h5+   %attrs;+   >++<!ELEMENT h6 %Inline;>+<!ATTLIST h6+   %attrs;+   >++<!--=================== Lists ============================================-->++<!-- Unordered list -->++<!ELEMENT ul (li)+>+<!ATTLIST ul+  %attrs;+  >++<!-- Ordered (numbered) list -->++<!ELEMENT ol (li)+>+<!ATTLIST ol+  %attrs;+  >++<!-- list item -->++<!ELEMENT li %Flow;>+<!ATTLIST li+  %attrs;+  >++<!-- definition lists - dt for term, dd for its definition -->++<!ELEMENT dl (dt|dd)+>+<!ATTLIST dl+  %attrs;+  >++<!ELEMENT dt %Inline;>+<!ATTLIST dt+  %attrs;+  >++<!ELEMENT dd %Flow;>+<!ATTLIST dd+  %attrs;+  >++<!--=================== Address ==========================================-->++<!-- information on author -->++<!ELEMENT address %Inline;>+<!ATTLIST address+  %attrs;+  >++<!--=================== Horizontal Rule ==================================-->++<!ELEMENT hr EMPTY>+<!ATTLIST hr+  %attrs;+  >++<!--=================== Preformatted Text ================================-->++<!-- content is %Inline; excluding "img|object|big|small|sub|sup" -->++<!ELEMENT pre %pre.content;>+<!ATTLIST pre+  %attrs;+  xml:space (preserve) #FIXED 'preserve'+  >++<!--=================== Block-like Quotes ================================-->++<!ELEMENT blockquote %Block;>+<!ATTLIST blockquote+  %attrs;+  cite        %URI;          #IMPLIED+  >++<!--=================== Inserted/Deleted Text ============================-->++<!--+  ins/del are allowed in block and inline content, but its+  inappropriate to include block content within an ins element+  occurring in inline content.+-->+<!ELEMENT ins %Flow;>+<!ATTLIST ins+  %attrs;+  cite        %URI;          #IMPLIED+  datetime    %Datetime;     #IMPLIED+  >++<!ELEMENT del %Flow;>+<!ATTLIST del+  %attrs;+  cite        %URI;          #IMPLIED+  datetime    %Datetime;     #IMPLIED+  >++<!--================== The Anchor Element ================================-->++<!-- content is %Inline; except that anchors shouldn't be nested -->++<!ELEMENT a %a.content;>+<!ATTLIST a+  %attrs;+  charset     %Charset;      #IMPLIED+  type        %ContentType;  #IMPLIED+  name        NMTOKEN        #IMPLIED+  href        %URI;          #IMPLIED+  hreflang    %LanguageCode; #IMPLIED+  rel         %LinkTypes;    #IMPLIED+  rev         %LinkTypes;    #IMPLIED+  accesskey   %Character;    #IMPLIED+  shape       %Shape;        "rect"+  coords      %Coords;       #IMPLIED+  tabindex    %Number;       #IMPLIED+  onfocus     %Script;       #IMPLIED+  onblur      %Script;       #IMPLIED+  >++<!--===================== Inline Elements ================================-->++<!ELEMENT span %Inline;> <!-- generic language/style container -->+<!ATTLIST span+  %attrs;+  >++<!ELEMENT bdo %Inline;>  <!-- I18N BiDi over-ride -->+<!ATTLIST bdo+  %coreattrs;+  %events;+  lang        %LanguageCode; #IMPLIED+  xml:lang    %LanguageCode; #IMPLIED+  dir         (ltr|rtl)      #REQUIRED+  >++<!ELEMENT br EMPTY>   <!-- forced line break -->+<!ATTLIST br+  %coreattrs;+  >++<!ELEMENT em %Inline;>   <!-- emphasis -->+<!ATTLIST em %attrs;>++<!ELEMENT strong %Inline;>   <!-- strong emphasis -->+<!ATTLIST strong %attrs;>++<!ELEMENT dfn %Inline;>   <!-- definitional -->+<!ATTLIST dfn %attrs;>++<!ELEMENT code %Inline;>   <!-- program code -->+<!ATTLIST code %attrs;>++<!ELEMENT samp %Inline;>   <!-- sample -->+<!ATTLIST samp %attrs;>++<!ELEMENT kbd %Inline;>  <!-- something user would type -->+<!ATTLIST kbd %attrs;>++<!ELEMENT var %Inline;>   <!-- variable -->+<!ATTLIST var %attrs;>++<!ELEMENT cite %Inline;>   <!-- citation -->+<!ATTLIST cite %attrs;>++<!ELEMENT abbr %Inline;>   <!-- abbreviation -->+<!ATTLIST abbr %attrs;>++<!ELEMENT acronym %Inline;>   <!-- acronym -->+<!ATTLIST acronym %attrs;>++<!ELEMENT q %Inline;>   <!-- inlined quote -->+<!ATTLIST q+  %attrs;+  cite        %URI;          #IMPLIED+  >++<!ELEMENT sub %Inline;> <!-- subscript -->+<!ATTLIST sub %attrs;>++<!ELEMENT sup %Inline;> <!-- superscript -->+<!ATTLIST sup %attrs;>++<!ELEMENT tt %Inline;>   <!-- fixed pitch font -->+<!ATTLIST tt %attrs;>++<!ELEMENT i %Inline;>   <!-- italic font -->+<!ATTLIST i %attrs;>++<!ELEMENT b %Inline;>   <!-- bold font -->+<!ATTLIST b %attrs;>++<!ELEMENT big %Inline;>   <!-- bigger font -->+<!ATTLIST big %attrs;>++<!ELEMENT small %Inline;>   <!-- smaller font -->+<!ATTLIST small %attrs;>++<!--==================== Object ======================================-->+<!--+  object is used to embed objects as part of HTML pages.+  param elements should precede other content. Parameters+  can also be expressed as attribute/value pairs on the+  object element itself when brevity is desired.+-->++<!ELEMENT object (#PCDATA | param | %block; | form | %inline; | %misc;)*>+<!ATTLIST object+  %attrs;+  declare     (declare)      #IMPLIED+  classid     %URI;          #IMPLIED+  codebase    %URI;          #IMPLIED+  data        %URI;          #IMPLIED+  type        %ContentType;  #IMPLIED+  codetype    %ContentType;  #IMPLIED+  archive     %UriList;      #IMPLIED+  standby     %Text;         #IMPLIED+  height      %Length;       #IMPLIED+  width       %Length;       #IMPLIED+  usemap      %URI;          #IMPLIED+  name        NMTOKEN        #IMPLIED+  tabindex    %Number;       #IMPLIED+  >++<!--+  param is used to supply a named property value.+  In XML it would seem natural to follow RDF and support an+  abbreviated syntax where the param elements are replaced+  by attribute value pairs on the object start tag.+-->+<!ELEMENT param EMPTY>+<!ATTLIST param+  id          ID             #IMPLIED+  name        CDATA          #IMPLIED+  value       CDATA          #IMPLIED+  valuetype   (data|ref|object) "data"+  type        %ContentType;  #IMPLIED+  >++<!--=================== Images ===========================================-->++<!--+   To avoid accessibility problems for people who aren't+   able to see the image, you should provide a text+   description using the alt and longdesc attributes.+   In addition, avoid the use of server-side image maps.+   Note that in this DTD there is no name attribute. That+   is only available in the transitional and frameset DTD.+-->++<!ELEMENT img EMPTY>+<!ATTLIST img+  %attrs;+  src         %URI;          #REQUIRED+  alt         %Text;         #REQUIRED+  longdesc    %URI;          #IMPLIED+  height      %Length;       #IMPLIED+  width       %Length;       #IMPLIED+  usemap      %URI;          #IMPLIED+  ismap       (ismap)        #IMPLIED+  >++<!-- usemap points to a map element which may be in this document+  or an external document, although the latter is not widely supported -->++<!--================== Client-side image maps ============================-->++<!-- These can be placed in the same document or grouped in a+     separate document although this isn't yet widely supported -->++<!ELEMENT map ((%block; | form | %misc;)+ | area+)>+<!ATTLIST map+  %i18n;+  %events;+  id          ID             #REQUIRED+  class       CDATA          #IMPLIED+  style       %StyleSheet;   #IMPLIED+  title       %Text;         #IMPLIED+  name        NMTOKEN        #IMPLIED+  >++<!ELEMENT area EMPTY>+<!ATTLIST area+  %attrs;+  shape       %Shape;        "rect"+  coords      %Coords;       #IMPLIED+  href        %URI;          #IMPLIED+  nohref      (nohref)       #IMPLIED+  alt         %Text;         #REQUIRED+  tabindex    %Number;       #IMPLIED+  accesskey   %Character;    #IMPLIED+  onfocus     %Script;       #IMPLIED+  onblur      %Script;       #IMPLIED+  >++<!--================ Forms ===============================================-->+<!ELEMENT form %form.content;>   <!-- forms shouldn't be nested -->++<!ATTLIST form+  %attrs;+  action      %URI;          #REQUIRED+  method      (get|post)     "get"+  enctype     %ContentType;  "application/x-www-form-urlencoded"+  onsubmit    %Script;       #IMPLIED+  onreset     %Script;       #IMPLIED+  accept      %ContentTypes; #IMPLIED+  accept-charset %Charsets;  #IMPLIED+  >++<!--+  Each label must not contain more than ONE field+  Label elements shouldn't be nested.+-->+<!ELEMENT label %Inline;>+<!ATTLIST label+  %attrs;+  for         IDREF          #IMPLIED+  accesskey   %Character;    #IMPLIED+  onfocus     %Script;       #IMPLIED+  onblur      %Script;       #IMPLIED+  >++<!ENTITY % InputType+  "(text | password | checkbox |+    radio | submit | reset |+    file | hidden | image | button)"+   >++<!-- the name attribute is required for all but submit & reset -->++<!ELEMENT input EMPTY>     <!-- form control -->+<!ATTLIST input+  %attrs;+  type        %InputType;    "text"+  name        CDATA          #IMPLIED+  value       CDATA          #IMPLIED+  checked     (checked)      #IMPLIED+  disabled    (disabled)     #IMPLIED+  readonly    (readonly)     #IMPLIED+  size        CDATA          #IMPLIED+  maxlength   %Number;       #IMPLIED+  src         %URI;          #IMPLIED+  alt         CDATA          #IMPLIED+  usemap      %URI;          #IMPLIED+  tabindex    %Number;       #IMPLIED+  accesskey   %Character;    #IMPLIED+  onfocus     %Script;       #IMPLIED+  onblur      %Script;       #IMPLIED+  onselect    %Script;       #IMPLIED+  onchange    %Script;       #IMPLIED+  accept      %ContentTypes; #IMPLIED+  >++<!ELEMENT select (optgroup|option)+>  <!-- option selector -->+<!ATTLIST select+  %attrs;+  name        CDATA          #IMPLIED+  size        %Number;       #IMPLIED+  multiple    (multiple)     #IMPLIED+  disabled    (disabled)     #IMPLIED+  tabindex    %Number;       #IMPLIED+  onfocus     %Script;       #IMPLIED+  onblur      %Script;       #IMPLIED+  onchange    %Script;       #IMPLIED+  >++<!ELEMENT optgroup (option)+>   <!-- option group -->+<!ATTLIST optgroup+  %attrs;+  disabled    (disabled)     #IMPLIED+  label       %Text;         #REQUIRED+  >++<!ELEMENT option (#PCDATA)>     <!-- selectable choice -->+<!ATTLIST option+  %attrs;+  selected    (selected)     #IMPLIED+  disabled    (disabled)     #IMPLIED+  label       %Text;         #IMPLIED+  value       CDATA          #IMPLIED+  >++<!ELEMENT textarea (#PCDATA)>     <!-- multi-line text field -->+<!ATTLIST textarea+  %attrs;+  name        CDATA          #IMPLIED+  rows        %Number;       #REQUIRED+  cols        %Number;       #REQUIRED+  disabled    (disabled)     #IMPLIED+  readonly    (readonly)     #IMPLIED+  tabindex    %Number;       #IMPLIED+  accesskey   %Character;    #IMPLIED+  onfocus     %Script;       #IMPLIED+  onblur      %Script;       #IMPLIED+  onselect    %Script;       #IMPLIED+  onchange    %Script;       #IMPLIED+  >++<!--+  The fieldset element is used to group form fields.+  Only one legend element should occur in the content+  and if present should only be preceded by whitespace.+-->+<!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>+<!ATTLIST fieldset+  %attrs;+  >++<!ELEMENT legend %Inline;>     <!-- fieldset label -->+<!ATTLIST legend+  %attrs;+  accesskey   %Character;    #IMPLIED+  >++<!--+ Content is %Flow; excluding a, form and form controls+--> +<!ELEMENT button %button.content;>  <!-- push button -->+<!ATTLIST button+  %attrs;+  name        CDATA          #IMPLIED+  value       CDATA          #IMPLIED+  type        (button|submit|reset) "submit"+  disabled    (disabled)     #IMPLIED+  tabindex    %Number;       #IMPLIED+  accesskey   %Character;    #IMPLIED+  onfocus     %Script;       #IMPLIED+  onblur      %Script;       #IMPLIED+  >++<!--======================= Tables =======================================-->++<!-- Derived from IETF HTML table standard, see [RFC1942] -->++<!--+ The border attribute sets the thickness of the frame around the+ table. The default units are screen pixels.++ The frame attribute specifies which parts of the frame around+ the table should be rendered. The values are not the same as+ CALS to avoid a name clash with the valign attribute.+-->+<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">++<!--+ The rules attribute defines which rules to draw between cells:++ If rules is absent then assume:+     "none" if border is absent or border="0" otherwise "all"+-->++<!ENTITY % TRules "(none | groups | rows | cols | all)">+  +<!-- horizontal placement of table relative to document -->+<!ENTITY % TAlign "(left|center|right)">++<!-- horizontal alignment attributes for cell contents++  char        alignment char, e.g. char=':'+  charoff     offset for alignment char+-->+<!ENTITY % cellhalign+  "align      (left|center|right|justify|char) #IMPLIED+   char       %Character;    #IMPLIED+   charoff    %Length;       #IMPLIED"+  >++<!-- vertical alignment attributes for cell contents -->+<!ENTITY % cellvalign+  "valign     (top|middle|bottom|baseline) #IMPLIED"+  >++<!ELEMENT table+     (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>+<!ELEMENT caption  %Inline;>+<!ELEMENT thead    (tr)+>+<!ELEMENT tfoot    (tr)+>+<!ELEMENT tbody    (tr)+>+<!ELEMENT colgroup (col)*>+<!ELEMENT col      EMPTY>+<!ELEMENT tr       (th|td)+>+<!ELEMENT th       %Flow;>+<!ELEMENT td       %Flow;>++<!ATTLIST table+  %attrs;+  summary     %Text;         #IMPLIED+  width       %Length;       #IMPLIED+  border      %Pixels;       #IMPLIED+  frame       %TFrame;       #IMPLIED+  rules       %TRules;       #IMPLIED+  cellspacing %Length;       #IMPLIED+  cellpadding %Length;       #IMPLIED+  >++<!ENTITY % CAlign "(top|bottom|left|right)">++<!ATTLIST caption+  %attrs;+  >++<!--+colgroup groups a set of col elements. It allows you to group+several semantically related columns together.+-->+<!ATTLIST colgroup+  %attrs;+  span        %Number;       "1"+  width       %MultiLength;  #IMPLIED+  %cellhalign;+  %cellvalign;+  >++<!--+ col elements define the alignment properties for cells in+ one or more columns.++ The width attribute specifies the width of the columns, e.g.++     width=64        width in screen pixels+     width=0.5*      relative width of 0.5++ The span attribute causes the attributes of one+ col element to apply to more than one column.+-->+<!ATTLIST col+  %attrs;+  span        %Number;       "1"+  width       %MultiLength;  #IMPLIED+  %cellhalign;+  %cellvalign;+  >++<!--+    Use thead to duplicate headers when breaking table+    across page boundaries, or for static headers when+    tbody sections are rendered in scrolling panel.++    Use tfoot to duplicate footers when breaking table+    across page boundaries, or for static footers when+    tbody sections are rendered in scrolling panel.++    Use multiple tbody sections when rules are needed+    between groups of table rows.+-->+<!ATTLIST thead+  %attrs;+  %cellhalign;+  %cellvalign;+  >++<!ATTLIST tfoot+  %attrs;+  %cellhalign;+  %cellvalign;+  >++<!ATTLIST tbody+  %attrs;+  %cellhalign;+  %cellvalign;+  >++<!ATTLIST tr+  %attrs;+  %cellhalign;+  %cellvalign;+  >+++<!-- Scope is simpler than headers attribute for common tables -->+<!ENTITY % Scope "(row|col|rowgroup|colgroup)">++<!-- th is for headers, td for data and for cells acting as both -->++<!ATTLIST th+  %attrs;+  abbr        %Text;         #IMPLIED+  axis        CDATA          #IMPLIED+  headers     IDREFS         #IMPLIED+  scope       %Scope;        #IMPLIED+  rowspan     %Number;       "1"+  colspan     %Number;       "1"+  %cellhalign;+  %cellvalign;+  >++<!ATTLIST td+  %attrs;+  abbr        %Text;         #IMPLIED+  axis        CDATA          #IMPLIED+  headers     IDREFS         #IMPLIED+  scope       %Scope;        #IMPLIED+  rowspan     %Number;       "1"+  colspan     %Number;       "1"+  %cellhalign;+  %cellvalign;+  >+
+ examples/xhtml/xhtml1-transitional.dtd view
@@ -0,0 +1,1196 @@+<!--+   Extensible HTML version 1.0 Transitional DTD++   This is the same as HTML 4.0 Transitional except for+   changes due to the differences between XML and SGML.++   Namespace = http://www.w3.org/1999/xhtml++   For further information, see: http://www.w3.org/TR/xhtml1++   Copyright (c) 1998-2000 W3C (MIT, INRIA, Keio),+   All Rights Reserved. ++   This DTD module is identified by the PUBLIC and SYSTEM identifiers:++   PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"+   SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"++   $Revision: 1.1 $+   $Date: 2002/10/01 13:47:08 $++-->++<!--================ Character mnemonic entities =========================-->++<!ENTITY % HTMLlat1 PUBLIC+   "-//W3C//ENTITIES Latin 1 for XHTML//EN"+   "xhtml-lat1.ent">+%HTMLlat1;++<!ENTITY % HTMLsymbol PUBLIC+   "-//W3C//ENTITIES Symbols for XHTML//EN"+   "xhtml-symbol.ent">+%HTMLsymbol;++<!ENTITY % HTMLspecial PUBLIC+   "-//W3C//ENTITIES Special for XHTML//EN"+   "xhtml-special.ent">+%HTMLspecial;++<!--================== Imported Names ====================================-->++<!ENTITY % ContentType "CDATA">+    <!-- media type, as per [RFC2045] -->++<!ENTITY % ContentTypes "CDATA">+    <!-- comma-separated list of media types, as per [RFC2045] -->++<!ENTITY % Charset "CDATA">+    <!-- a character encoding, as per [RFC2045] -->++<!ENTITY % Charsets "CDATA">+    <!-- a space separated list of character encodings, as per [RFC2045] -->++<!ENTITY % LanguageCode "NMTOKEN">+    <!-- a language code, as per [RFC1766] -->++<!ENTITY % Character "CDATA">+    <!-- a single character from [ISO10646] -->++<!ENTITY % Number "CDATA">+    <!-- one or more digits -->++<!ENTITY % LinkTypes "CDATA">+    <!-- space-separated list of link types -->++<!ENTITY % MediaDesc "CDATA">+    <!-- single or comma-separated list of media descriptors -->++<!ENTITY % URI "CDATA">+    <!-- a Uniform Resource Identifier, see [RFC2396] -->++<!ENTITY % UriList "CDATA">+    <!-- a space separated list of Uniform Resource Identifiers -->++<!ENTITY % Datetime "CDATA">+    <!-- date and time information. ISO date format -->++<!ENTITY % Script "CDATA">+    <!-- script expression -->++<!ENTITY % StyleSheet "CDATA">+    <!-- style sheet data -->++<!ENTITY % Text "CDATA">+    <!-- used for titles etc. -->++<!ENTITY % FrameTarget "NMTOKEN">+    <!-- render in this frame -->++<!ENTITY % Length "CDATA">+    <!-- nn for pixels or nn% for percentage length -->++<!ENTITY % MultiLength "CDATA">+    <!-- pixel, percentage, or relative -->++<!ENTITY % MultiLengths "CDATA">+    <!-- comma-separated list of MultiLength -->++<!ENTITY % Pixels "CDATA">+    <!-- integer representing length in pixels -->++<!-- these are used for image maps -->++<!ENTITY % Shape "(rect|circle|poly|default)">++<!ENTITY % Coords "CDATA">+    <!-- comma separated list of lengths -->++<!-- used for object, applet, img, input and iframe -->+<!ENTITY % ImgAlign "(top|middle|bottom|left|right)">++<!-- a color using sRGB: #RRGGBB as Hex values -->+<!ENTITY % Color "CDATA">++<!-- There are also 16 widely known color names with their sRGB values:++    Black  = #000000    Green  = #008000+    Silver = #C0C0C0    Lime   = #00FF00+    Gray   = #808080    Olive  = #808000+    White  = #FFFFFF    Yellow = #FFFF00+    Maroon = #800000    Navy   = #000080+    Red    = #FF0000    Blue   = #0000FF+    Purple = #800080    Teal   = #008080+    Fuchsia= #FF00FF    Aqua   = #00FFFF+-->++<!--=================== Generic Attributes ===============================-->++<!-- core attributes common to most elements+  id       document-wide unique id+  class    space separated list of classes+  style    associated style info+  title    advisory title/amplification+-->+<!ENTITY % coreattrs+ "id          ID             #IMPLIED+  class       CDATA          #IMPLIED+  style       %StyleSheet;   #IMPLIED+  title       %Text;         #IMPLIED"+  >++<!-- internationalization attributes+  lang        language code (backwards compatible)+  xml:lang    language code (as per XML 1.0 spec)+  dir         direction for weak/neutral text+-->+<!ENTITY % i18n+ "lang        %LanguageCode; #IMPLIED+  xml:lang    %LanguageCode; #IMPLIED+  dir         (ltr|rtl)      #IMPLIED"+  >++<!-- attributes for common UI events+  onclick     a pointer button was clicked+  ondblclick  a pointer button was double clicked+  onmousedown a pointer button was pressed down+  onmouseup   a pointer button was released+  onmousemove a pointer was moved onto the element+  onmouseout  a pointer was moved away from the element+  onkeypress  a key was pressed and released+  onkeydown   a key was pressed down+  onkeyup     a key was released+-->+<!ENTITY % events+ "onclick     %Script;       #IMPLIED+  ondblclick  %Script;       #IMPLIED+  onmousedown %Script;       #IMPLIED+  onmouseup   %Script;       #IMPLIED+  onmouseover %Script;       #IMPLIED+  onmousemove %Script;       #IMPLIED+  onmouseout  %Script;       #IMPLIED+  onkeypress  %Script;       #IMPLIED+  onkeydown   %Script;       #IMPLIED+  onkeyup     %Script;       #IMPLIED"+  >++<!-- attributes for elements that can get the focus+  accesskey   accessibility key character+  tabindex    position in tabbing order+  onfocus     the element got the focus+  onblur      the element lost the focus+-->+<!ENTITY % focus+ "accesskey   %Character;    #IMPLIED+  tabindex    %Number;       #IMPLIED+  onfocus     %Script;       #IMPLIED+  onblur      %Script;       #IMPLIED"+  >++<!ENTITY % attrs "%coreattrs; %i18n; %events;">++<!-- text alignment for p, div, h1-h6. The default is+     align="left" for ltr headings, "right" for rtl -->++<!ENTITY % TextAlign "align (left|center|right) #IMPLIED">++<!--=================== Text Elements ====================================-->++<!ENTITY % special+   "br | span | bdo | object | applet | img | map | iframe">++<!ENTITY % fontstyle "tt | i | b | big | small | u+                      | s | strike |font | basefont">++<!ENTITY % phrase "em | strong | dfn | code | q | sub | sup |+                   samp | kbd | var | cite | abbr | acronym">++<!ENTITY % inline.forms "input | select | textarea | label | button">++<!-- these can occur at block or inline level -->+<!ENTITY % misc "ins | del | script | noscript">++<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">++<!-- %Inline; covers inline or "text-level" elements -->+<!ENTITY % Inline "(#PCDATA | %inline; | %misc;)*">++<!--================== Block level elements ==============================-->++<!ENTITY % heading "h1|h2|h3|h4|h5|h6">+<!ENTITY % lists "ul | ol | dl | menu | dir">+<!ENTITY % blocktext "pre | hr | blockquote | address | center | noframes">++<!ENTITY % block+    "p | %heading; | div | %lists; | %blocktext; | isindex |fieldset | table">++<!ENTITY % Block "(%block; | form | %misc;)*">++<!-- %Flow; mixes Block and Inline and is used for list items etc. -->+<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">++<!--================== Content models for exclusions =====================-->++<!-- a elements use %Inline; excluding a -->++<!ENTITY % a.content+   "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc;)*">++<!-- pre uses %Inline excluding img, object, applet, big, small,+     sub, sup, font, or basefont -->++<!ENTITY % pre.content+   "(#PCDATA | a | br | span | bdo | map | tt | i | b | u | s |+      %phrase; | %inline.forms;)*">++<!-- form uses %Flow; excluding form -->++<!ENTITY % form.content "(#PCDATA | %block; | %inline; | %misc;)*">++<!-- button uses %Flow; but excludes a, form, form controls, iframe -->++<!ENTITY % button.content+   "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |+      table | br | span | bdo | object | applet | img | map |+      %fontstyle; | %phrase; | %misc;)*">++<!--================ Document Structure ==================================-->++<!-- the namespace URI designates the document profile -->++<!ELEMENT html (head, body)>+<!ATTLIST html+  %i18n;+  xmlns       %URI;          #FIXED 'http://www.w3.org/1999/xhtml'+  >++<!--================ Document Head =======================================-->++<!ENTITY % head.misc "(script|style|meta|link|object|isindex)*">++<!-- content model is %head.misc; combined with a single+     title and an optional base element in any order -->++<!ELEMENT head (%head.misc;,+     ((title, %head.misc;, (base, %head.misc;)?) |+      (base, %head.misc;, (title, %head.misc;))))>++<!ATTLIST head+  %i18n;+  profile     %URI;          #IMPLIED+  >++<!-- The title element is not considered part of the flow of text.+       It should be displayed, for example as the page header or+       window title. Exactly one title is required per document.+    -->+<!ELEMENT title (#PCDATA)>+<!ATTLIST title %i18n;>++<!-- document base URI -->++<!ELEMENT base EMPTY>+<!ATTLIST base+  href        %URI;          #IMPLIED+  target      %FrameTarget;  #IMPLIED+  >++<!-- generic metainformation -->+<!ELEMENT meta EMPTY>+<!ATTLIST meta+  %i18n;+  http-equiv  CDATA          #IMPLIED+  name        CDATA          #IMPLIED+  content     CDATA          #REQUIRED+  scheme      CDATA          #IMPLIED+  >++<!--+  Relationship values can be used in principle:++   a) for document specific toolbars/menus when used+      with the link element in document head e.g.+        start, contents, previous, next, index, end, help+   b) to link to a separate style sheet (rel="stylesheet")+   c) to make a link to a script (rel="script")+   d) by stylesheets to control how collections of+      html nodes are rendered into printed documents+   e) to make a link to a printable version of this document+      e.g. a PostScript or PDF version (rel="alternate" media="print")+-->++<!ELEMENT link EMPTY>+<!ATTLIST link+  %attrs;+  charset     %Charset;      #IMPLIED+  href        %URI;          #IMPLIED+  hreflang    %LanguageCode; #IMPLIED+  type        %ContentType;  #IMPLIED+  rel         %LinkTypes;    #IMPLIED+  rev         %LinkTypes;    #IMPLIED+  media       %MediaDesc;    #IMPLIED+  target      %FrameTarget;  #IMPLIED+  >++<!-- style info, which may include CDATA sections -->+<!ELEMENT style (#PCDATA)>+<!ATTLIST style+  %i18n;+  type        %ContentType;  #REQUIRED+  media       %MediaDesc;    #IMPLIED+  title       %Text;         #IMPLIED+  xml:space   (preserve)     #FIXED 'preserve'+  >++<!-- script statements, which may include CDATA sections -->+<!ELEMENT script (#PCDATA)>+<!ATTLIST script+  charset     %Charset;      #IMPLIED+  type        %ContentType;  #REQUIRED+  language    CDATA          #IMPLIED+  src         %URI;          #IMPLIED+  defer       (defer)        #IMPLIED+  xml:space   (preserve)     #FIXED 'preserve'+  >++<!-- alternate content container for non script-based rendering -->++<!ELEMENT noscript %Flow;>+<!ATTLIST noscript+  %attrs;+  >++<!--======================= Frames =======================================-->++<!-- inline subwindow -->++<!ELEMENT iframe %Flow;>+<!ATTLIST iframe+  %coreattrs;+  longdesc    %URI;          #IMPLIED+  name        NMTOKEN        #IMPLIED+  src         %URI;          #IMPLIED+  frameborder (1|0)          "1"+  marginwidth %Pixels;       #IMPLIED+  marginheight %Pixels;      #IMPLIED+  scrolling   (yes|no|auto)  "auto"+  align       %ImgAlign;     #IMPLIED+  height      %Length;       #IMPLIED+  width       %Length;       #IMPLIED+  >++<!-- alternate content container for non frame-based rendering -->++<!ELEMENT noframes %Flow;>+<!ATTLIST noframes+  %attrs;+  >++<!--=================== Document Body ====================================-->++<!ELEMENT body %Flow;>+<!ATTLIST body+  %attrs;+  onload      %Script;       #IMPLIED+  onunload    %Script;       #IMPLIED+  background  %URI;          #IMPLIED+  bgcolor     %Color;        #IMPLIED+  text        %Color;        #IMPLIED+  link        %Color;        #IMPLIED+  vlink       %Color;        #IMPLIED+  alink       %Color;        #IMPLIED+  >++<!ELEMENT div %Flow;>  <!-- generic language/style container -->+<!ATTLIST div+  %attrs;+  %TextAlign;+  >++<!--=================== Paragraphs =======================================-->++<!ELEMENT p %Inline;>+<!ATTLIST p+  %attrs;+  %TextAlign;+  >++<!--=================== Headings =========================================-->++<!--+  There are six levels of headings from h1 (the most important)+  to h6 (the least important).+-->++<!ELEMENT h1  %Inline;>+<!ATTLIST h1+  %attrs;+  %TextAlign;+  >++<!ELEMENT h2 %Inline;>+<!ATTLIST h2+  %attrs;+  %TextAlign;+  >++<!ELEMENT h3 %Inline;>+<!ATTLIST h3+  %attrs;+  %TextAlign;+  >++<!ELEMENT h4 %Inline;>+<!ATTLIST h4+  %attrs;+  %TextAlign;+  >++<!ELEMENT h5 %Inline;>+<!ATTLIST h5+  %attrs;+  %TextAlign;+  >++<!ELEMENT h6 %Inline;>+<!ATTLIST h6+  %attrs;+  %TextAlign;+  >++<!--=================== Lists ============================================-->++<!-- Unordered list bullet styles -->++<!ENTITY % ULStyle "(disc|square|circle)">++<!-- Unordered list -->++<!ELEMENT ul (li)+>+<!ATTLIST ul+  %attrs;+  type        %ULStyle;     #IMPLIED+  compact     (compact)     #IMPLIED+  >++<!-- Ordered list numbering style++    1   arabic numbers      1, 2, 3, ...+    a   lower alpha         a, b, c, ...+    A   upper alpha         A, B, C, ...+    i   lower roman         i, ii, iii, ...+    I   upper roman         I, II, III, ...++    The style is applied to the sequence number which by default+    is reset to 1 for the first list item in an ordered list.+-->+<!ENTITY % OLStyle "CDATA">++<!-- Ordered (numbered) list -->++<!ELEMENT ol (li)+>+<!ATTLIST ol+  %attrs;+  type        %OLStyle;      #IMPLIED+  compact     (compact)      #IMPLIED+  start       %Number;       #IMPLIED+  >++<!-- single column list (DEPRECATED) --> +<!ELEMENT menu (li)+>+<!ATTLIST menu+  %attrs;+  compact     (compact)     #IMPLIED+  >++<!-- multiple column list (DEPRECATED) --> +<!ELEMENT dir (li)+>+<!ATTLIST dir+  %attrs;+  compact     (compact)     #IMPLIED+  >++<!-- LIStyle is constrained to: "(%ULStyle;|%OLStyle;)" -->+<!ENTITY % LIStyle "CDATA">++<!-- list item -->++<!ELEMENT li %Flow;>+<!ATTLIST li+  %attrs;+  type        %LIStyle;      #IMPLIED+  value       %Number;       #IMPLIED+  >++<!-- definition lists - dt for term, dd for its definition -->++<!ELEMENT dl (dt|dd)+>+<!ATTLIST dl+  %attrs;+  compact     (compact)      #IMPLIED+  >++<!ELEMENT dt %Inline;>+<!ATTLIST dt+  %attrs;+  >++<!ELEMENT dd %Flow;>+<!ATTLIST dd+  %attrs;+  >++<!--=================== Address ==========================================-->++<!-- information on author -->++<!ELEMENT address %Inline;>+<!ATTLIST address+  %attrs;+  >++<!--=================== Horizontal Rule ==================================-->++<!ELEMENT hr EMPTY>+<!ATTLIST hr+  %attrs;+  align       (left|center|right) #IMPLIED+  noshade     (noshade)      #IMPLIED+  size        %Pixels;       #IMPLIED+  width       %Length;       #IMPLIED+  >++<!--=================== Preformatted Text ================================-->++<!-- content is %Inline; excluding +        "img|object|applet|big|small|sub|sup|font|basefont" -->++<!ELEMENT pre %pre.content;>+<!ATTLIST pre+  %attrs;+  width       %Number;      #IMPLIED+  xml:space   (preserve)    #FIXED 'preserve'+  >++<!--=================== Block-like Quotes ================================-->++<!ELEMENT blockquote %Flow;>+<!ATTLIST blockquote+  %attrs;+  cite        %URI;          #IMPLIED+  >++<!--=================== Text alignment ===================================-->++<!-- center content -->+<!ELEMENT center %Flow;>+<!ATTLIST center+  %attrs;+  >++<!--=================== Inserted/Deleted Text ============================-->++<!--+  ins/del are allowed in block and inline content, but its+  inappropriate to include block content within an ins element+  occurring in inline content.+-->+<!ELEMENT ins %Flow;>+<!ATTLIST ins+  %attrs;+  cite        %URI;          #IMPLIED+  datetime    %Datetime;     #IMPLIED+  >++<!ELEMENT del %Flow;>+<!ATTLIST del+  %attrs;+  cite        %URI;          #IMPLIED+  datetime    %Datetime;     #IMPLIED+  >++<!--================== The Anchor Element ================================-->++<!-- content is %Inline; except that anchors shouldn't be nested -->++<!ELEMENT a %a.content;>+<!ATTLIST a+  %attrs;+  charset     %Charset;      #IMPLIED+  type        %ContentType;  #IMPLIED+  name        NMTOKEN        #IMPLIED+  href        %URI;          #IMPLIED+  hreflang    %LanguageCode; #IMPLIED+  rel         %LinkTypes;    #IMPLIED+  rev         %LinkTypes;    #IMPLIED+  accesskey   %Character;    #IMPLIED+  shape       %Shape;        "rect"+  coords      %Coords;       #IMPLIED+  tabindex    %Number;       #IMPLIED+  onfocus     %Script;       #IMPLIED+  onblur      %Script;       #IMPLIED+  target      %FrameTarget;  #IMPLIED+  >++<!--===================== Inline Elements ================================-->++<!ELEMENT span %Inline;> <!-- generic language/style container -->+<!ATTLIST span+  %attrs;+  >++<!ELEMENT bdo %Inline;>  <!-- I18N BiDi over-ride -->+<!ATTLIST bdo+  %coreattrs;+  %events;+  lang        %LanguageCode; #IMPLIED+  xml:lang    %LanguageCode; #IMPLIED+  dir         (ltr|rtl)      #REQUIRED+  >++<!ELEMENT br EMPTY>   <!-- forced line break -->+<!ATTLIST br+  %coreattrs;+  clear       (left|all|right|none) "none"+  >++<!ELEMENT em %Inline;>   <!-- emphasis -->+<!ATTLIST em %attrs;>++<!ELEMENT strong %Inline;>   <!-- strong emphasis -->+<!ATTLIST strong %attrs;>++<!ELEMENT dfn %Inline;>   <!-- definitional -->+<!ATTLIST dfn %attrs;>++<!ELEMENT code %Inline;>   <!-- program code -->+<!ATTLIST code %attrs;>++<!ELEMENT samp %Inline;>   <!-- sample -->+<!ATTLIST samp %attrs;>++<!ELEMENT kbd %Inline;>  <!-- something user would type -->+<!ATTLIST kbd %attrs;>++<!ELEMENT var %Inline;>   <!-- variable -->+<!ATTLIST var %attrs;>++<!ELEMENT cite %Inline;>   <!-- citation -->+<!ATTLIST cite %attrs;>++<!ELEMENT abbr %Inline;>   <!-- abbreviation -->+<!ATTLIST abbr %attrs;>++<!ELEMENT acronym %Inline;>   <!-- acronym -->+<!ATTLIST acronym %attrs;>++<!ELEMENT q %Inline;>   <!-- inlined quote -->+<!ATTLIST q+  %attrs;+  cite        %URI;          #IMPLIED+  >++<!ELEMENT sub %Inline;> <!-- subscript -->+<!ATTLIST sub %attrs;>++<!ELEMENT sup %Inline;> <!-- superscript -->+<!ATTLIST sup %attrs;>++<!ELEMENT tt %Inline;>   <!-- fixed pitch font -->+<!ATTLIST tt %attrs;>++<!ELEMENT i %Inline;>   <!-- italic font -->+<!ATTLIST i %attrs;>++<!ELEMENT b %Inline;>   <!-- bold font -->+<!ATTLIST b %attrs;>++<!ELEMENT big %Inline;>   <!-- bigger font -->+<!ATTLIST big %attrs;>++<!ELEMENT small %Inline;>   <!-- smaller font -->+<!ATTLIST small %attrs;>++<!ELEMENT u %Inline;>   <!-- underline -->+<!ATTLIST u %attrs;>++<!ELEMENT s %Inline;>   <!-- strike-through -->+<!ATTLIST s %attrs;>++<!ELEMENT strike %Inline;>   <!-- strike-through -->+<!ATTLIST strike %attrs;>++<!ELEMENT basefont EMPTY>  <!-- base font size -->+<!ATTLIST basefont+  id          ID             #IMPLIED+  size        CDATA          #REQUIRED+  color       %Color;        #IMPLIED+  face        CDATA          #IMPLIED+  >++<!ELEMENT font %Inline;> <!-- local change to font -->+<!ATTLIST font+  %coreattrs;+  %i18n;+  size        CDATA          #IMPLIED+  color       %Color;        #IMPLIED+  face        CDATA          #IMPLIED+  >++<!--==================== Object ======================================-->+<!--+  object is used to embed objects as part of HTML pages.+  param elements should precede other content. Parameters+  can also be expressed as attribute/value pairs on the+  object element itself when brevity is desired.+-->++<!ELEMENT object (#PCDATA | param | %block; | form | %inline; | %misc;)*>+<!ATTLIST object+  %attrs;+  declare     (declare)      #IMPLIED+  classid     %URI;          #IMPLIED+  codebase    %URI;          #IMPLIED+  data        %URI;          #IMPLIED+  type        %ContentType;  #IMPLIED+  codetype    %ContentType;  #IMPLIED+  archive     %UriList;      #IMPLIED+  standby     %Text;         #IMPLIED+  height      %Length;       #IMPLIED+  width       %Length;       #IMPLIED+  usemap      %URI;          #IMPLIED+  name        NMTOKEN        #IMPLIED+  tabindex    %Number;       #IMPLIED+  align       %ImgAlign;     #IMPLIED+  border      %Pixels;       #IMPLIED+  hspace      %Pixels;       #IMPLIED+  vspace      %Pixels;       #IMPLIED+  >++<!--+  param is used to supply a named property value.+  In XML it would seem natural to follow RDF and support an+  abbreviated syntax where the param elements are replaced+  by attribute value pairs on the object start tag.+-->+<!ELEMENT param EMPTY>+<!ATTLIST param+  id          ID             #IMPLIED+  name        CDATA          #REQUIRED+  value       CDATA          #IMPLIED+  valuetype   (data|ref|object) "data"+  type        %ContentType;  #IMPLIED+  >++<!--=================== Java applet ==================================-->+<!--+  One of code or object attributes must be present.+  Place param elements before other content.+-->+<!ELEMENT applet (#PCDATA | param | %block; | form | %inline; | %misc;)*>+<!ATTLIST applet+  %coreattrs;+  codebase    %URI;          #IMPLIED+  archive     CDATA          #IMPLIED+  code        CDATA          #IMPLIED+  object      CDATA          #IMPLIED+  alt         %Text;         #IMPLIED+  name        NMTOKEN        #IMPLIED+  width       %Length;       #REQUIRED+  height      %Length;       #REQUIRED+  align       %ImgAlign;     #IMPLIED+  hspace      %Pixels;       #IMPLIED+  vspace      %Pixels;       #IMPLIED+  >++<!--=================== Images ===========================================-->++<!--+   To avoid accessibility problems for people who aren't+   able to see the image, you should provide a text+   description using the alt and longdesc attributes.+   In addition, avoid the use of server-side image maps.+-->++<!ELEMENT img EMPTY>+<!ATTLIST img+  %attrs;+  src         %URI;          #REQUIRED+  alt         %Text;         #REQUIRED+  name        NMTOKEN        #IMPLIED+  longdesc    %URI;          #IMPLIED+  height      %Length;       #IMPLIED+  width       %Length;       #IMPLIED+  usemap      %URI;          #IMPLIED+  ismap       (ismap)        #IMPLIED+  align       %ImgAlign;     #IMPLIED+  border      %Length;       #IMPLIED+  hspace      %Pixels;       #IMPLIED+  vspace      %Pixels;       #IMPLIED+  >++<!-- usemap points to a map element which may be in this document+  or an external document, although the latter is not widely supported -->++<!--================== Client-side image maps ============================-->++<!-- These can be placed in the same document or grouped in a+     separate document although this isn't yet widely supported -->++<!ELEMENT map ((%block; | form | %misc;)+ | area+)>+<!ATTLIST map+  %i18n;+  %events;+  id          ID             #REQUIRED+  class       CDATA          #IMPLIED+  style       %StyleSheet;   #IMPLIED+  title       %Text;         #IMPLIED+  name        CDATA          #IMPLIED+  >++<!ELEMENT area EMPTY>+<!ATTLIST area+  %attrs;+  shape       %Shape;        "rect"+  coords      %Coords;       #IMPLIED+  href        %URI;          #IMPLIED+  nohref      (nohref)       #IMPLIED+  alt         %Text;         #REQUIRED+  tabindex    %Number;       #IMPLIED+  accesskey   %Character;    #IMPLIED+  onfocus     %Script;       #IMPLIED+  onblur      %Script;       #IMPLIED+  target      %FrameTarget;  #IMPLIED+  >++<!--================ Forms ===============================================-->++<!ELEMENT form %form.content;>   <!-- forms shouldn't be nested -->++<!ATTLIST form+  %attrs;+  action      %URI;          #REQUIRED+  method      (get|post)     "get"+  name        NMTOKEN        #IMPLIED+  enctype     %ContentType;  "application/x-www-form-urlencoded"+  onsubmit    %Script;       #IMPLIED+  onreset     %Script;       #IMPLIED+  accept      %ContentTypes; #IMPLIED+  accept-charset %Charsets;  #IMPLIED+  target      %FrameTarget;  #IMPLIED+  >++<!--+  Each label must not contain more than ONE field+  Label elements shouldn't be nested.+-->+<!ELEMENT label %Inline;>+<!ATTLIST label+  %attrs;+  for         IDREF          #IMPLIED+  accesskey   %Character;    #IMPLIED+  onfocus     %Script;       #IMPLIED+  onblur      %Script;       #IMPLIED+  >++<!ENTITY % InputType+  "(text | password | checkbox |+    radio | submit | reset |+    file | hidden | image | button)"+   >++<!-- the name attribute is required for all but submit & reset -->++<!ELEMENT input EMPTY>     <!-- form control -->+<!ATTLIST input+  %attrs;+  type        %InputType;    "text"+  name        CDATA          #IMPLIED+  value       CDATA          #IMPLIED+  checked     (checked)      #IMPLIED+  disabled    (disabled)     #IMPLIED+  readonly    (readonly)     #IMPLIED+  size        CDATA          #IMPLIED+  maxlength   %Number;       #IMPLIED+  src         %URI;          #IMPLIED+  alt         CDATA          #IMPLIED+  usemap      %URI;          #IMPLIED+  tabindex    %Number;       #IMPLIED+  accesskey   %Character;    #IMPLIED+  onfocus     %Script;       #IMPLIED+  onblur      %Script;       #IMPLIED+  onselect    %Script;       #IMPLIED+  onchange    %Script;       #IMPLIED+  accept      %ContentTypes; #IMPLIED+  align       %ImgAlign;     #IMPLIED+  >++<!ELEMENT select (optgroup|option)+>  <!-- option selector -->+<!ATTLIST select+  %attrs;+  name        CDATA          #IMPLIED+  size        %Number;       #IMPLIED+  multiple    (multiple)     #IMPLIED+  disabled    (disabled)     #IMPLIED+  tabindex    %Number;       #IMPLIED+  onfocus     %Script;       #IMPLIED+  onblur      %Script;       #IMPLIED+  onchange    %Script;       #IMPLIED+  >++<!ELEMENT optgroup (option)+>   <!-- option group -->+<!ATTLIST optgroup+  %attrs;+  disabled    (disabled)     #IMPLIED+  label       %Text;         #REQUIRED+  >++<!ELEMENT option (#PCDATA)>     <!-- selectable choice -->+<!ATTLIST option+  %attrs;+  selected    (selected)     #IMPLIED+  disabled    (disabled)     #IMPLIED+  label       %Text;         #IMPLIED+  value       CDATA          #IMPLIED+  >++<!ELEMENT textarea (#PCDATA)>     <!-- multi-line text field -->+<!ATTLIST textarea+  %attrs;+  name        CDATA          #IMPLIED+  rows        %Number;       #REQUIRED+  cols        %Number;       #REQUIRED+  disabled    (disabled)     #IMPLIED+  readonly    (readonly)     #IMPLIED+  tabindex    %Number;       #IMPLIED+  accesskey   %Character;    #IMPLIED+  onfocus     %Script;       #IMPLIED+  onblur      %Script;       #IMPLIED+  onselect    %Script;       #IMPLIED+  onchange    %Script;       #IMPLIED+  >++<!--+  The fieldset element is used to group form fields.+  Only one legend element should occur in the content+  and if present should only be preceded by whitespace.+-->+<!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>+<!ATTLIST fieldset+  %attrs;+  >++<!ENTITY % LAlign "(top|bottom|left|right)">++<!ELEMENT legend %Inline;>     <!-- fieldset label -->+<!ATTLIST legend+  %attrs;+  accesskey   %Character;    #IMPLIED+  align       %LAlign;       #IMPLIED+  >++<!--+ Content is %Flow; excluding a, form, form controls, iframe+--> +<!ELEMENT button %button.content;>  <!-- push button -->+<!ATTLIST button+  %attrs;+  name        CDATA          #IMPLIED+  value       CDATA          #IMPLIED+  type        (button|submit|reset) "submit"+  disabled    (disabled)     #IMPLIED+  tabindex    %Number;       #IMPLIED+  accesskey   %Character;    #IMPLIED+  onfocus     %Script;       #IMPLIED+  onblur      %Script;       #IMPLIED+  >++<!-- single-line text input control (DEPRECATED) -->+<!ELEMENT isindex EMPTY>+<!ATTLIST isindex+  %coreattrs;+  %i18n;+  prompt      %Text;         #IMPLIED+  >++<!--======================= Tables =======================================-->++<!-- Derived from IETF HTML table standard, see [RFC1942] -->++<!--+ The border attribute sets the thickness of the frame around the+ table. The default units are screen pixels.++ The frame attribute specifies which parts of the frame around+ the table should be rendered. The values are not the same as+ CALS to avoid a name clash with the valign attribute.+-->+<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">++<!--+ The rules attribute defines which rules to draw between cells:++ If rules is absent then assume:+     "none" if border is absent or border="0" otherwise "all"+-->++<!ENTITY % TRules "(none | groups | rows | cols | all)">+  +<!-- horizontal placement of table relative to document -->+<!ENTITY % TAlign "(left|center|right)">++<!-- horizontal alignment attributes for cell contents++  char        alignment char, e.g. char=':'+  charoff     offset for alignment char+-->+<!ENTITY % cellhalign+  "align      (left|center|right|justify|char) #IMPLIED+   char       %Character;    #IMPLIED+   charoff    %Length;       #IMPLIED"+  >++<!-- vertical alignment attributes for cell contents -->+<!ENTITY % cellvalign+  "valign     (top|middle|bottom|baseline) #IMPLIED"+  >++<!ELEMENT table+     (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>+<!ELEMENT caption  %Inline;>+<!ELEMENT thead    (tr)+>+<!ELEMENT tfoot    (tr)+>+<!ELEMENT tbody    (tr)+>+<!ELEMENT colgroup (col)*>+<!ELEMENT col      EMPTY>+<!ELEMENT tr       (th|td)+>+<!ELEMENT th       %Flow;>+<!ELEMENT td       %Flow;>++<!ATTLIST table+  %attrs;+  summary     %Text;         #IMPLIED+  width       %Length;       #IMPLIED+  border      %Pixels;       #IMPLIED+  frame       %TFrame;       #IMPLIED+  rules       %TRules;       #IMPLIED+  cellspacing %Length;       #IMPLIED+  cellpadding %Length;       #IMPLIED+  align       %TAlign;       #IMPLIED+  bgcolor     %Color;        #IMPLIED+  >++<!ENTITY % CAlign "(top|bottom|left|right)">++<!ATTLIST caption+  %attrs;+  align       %CAlign;       #IMPLIED+  >++<!--+colgroup groups a set of col elements. It allows you to group+several semantically related columns together.+-->+<!ATTLIST colgroup+  %attrs;+  span        %Number;       "1"+  width       %MultiLength;  #IMPLIED+  %cellhalign;+  %cellvalign;+  >++<!--+ col elements define the alignment properties for cells in+ one or more columns.++ The width attribute specifies the width of the columns, e.g.++     width=64        width in screen pixels+     width=0.5*      relative width of 0.5++ The span attribute causes the attributes of one+ col element to apply to more than one column.+-->+<!ATTLIST col+  %attrs;+  span        %Number;       "1"+  width       %MultiLength;  #IMPLIED+  %cellhalign;+  %cellvalign;+  >++<!--+    Use thead to duplicate headers when breaking table+    across page boundaries, or for static headers when+    tbody sections are rendered in scrolling panel.++    Use tfoot to duplicate footers when breaking table+    across page boundaries, or for static footers when+    tbody sections are rendered in scrolling panel.++    Use multiple tbody sections when rules are needed+    between groups of table rows.+-->+<!ATTLIST thead+  %attrs;+  %cellhalign;+  %cellvalign;+  >++<!ATTLIST tfoot+  %attrs;+  %cellhalign;+  %cellvalign;+  >++<!ATTLIST tbody+  %attrs;+  %cellhalign;+  %cellvalign;+  >++<!ATTLIST tr+  %attrs;+  %cellhalign;+  %cellvalign;+  bgcolor     %Color;        #IMPLIED+  >++<!-- Scope is simpler than headers attribute for common tables -->+<!ENTITY % Scope "(row|col|rowgroup|colgroup)">++<!-- th is for headers, td for data and for cells acting as both -->++<!ATTLIST th+  %attrs;+  abbr        %Text;         #IMPLIED+  axis        CDATA          #IMPLIED+  headers     IDREFS         #IMPLIED+  scope       %Scope;        #IMPLIED+  rowspan     %Number;       "1"+  colspan     %Number;       "1"+  %cellhalign;+  %cellvalign;+  nowrap      (nowrap)       #IMPLIED+  bgcolor     %Color;        #IMPLIED+  width       %Pixels;       #IMPLIED+  height      %Pixels;       #IMPLIED+  >++<!ATTLIST td+  %attrs;+  abbr        %Text;         #IMPLIED+  axis        CDATA          #IMPLIED+  headers     IDREFS         #IMPLIED+  scope       %Scope;        #IMPLIED+  rowspan     %Number;       "1"+  colspan     %Number;       "1"+  %cellhalign;+  %cellvalign;+  nowrap      (nowrap)       #IMPLIED+  bgcolor     %Color;        #IMPLIED+  width       %Pixels;       #IMPLIED+  height      %Pixels;       #IMPLIED+  >+
+ hxt.cabal view
@@ -0,0 +1,135 @@+-- arch-tag: Haskell XML Toolbox main description file+name: hxt+version: 7.1+license: OtherLicense+license-file: LICENCE+category: Text+maintainer: Uwe Schmidt <uwe@fh-wedel.de>+stability: stable+synopsis: A collection of tools for processing XML with Haskell. +description:  The Haskell XML Toolbox bases on the ideas of HaXml and HXML, but introduces a more general approach for processing XML with Haskell. The Haskell XML Toolbox uses a generic data model for representing XML documents, including the DTD subset and the document subset, in Haskell. This data model makes it possible to use filter functions as a uniform design of XML processing applications. The whole XML parser including the validator parts was implemented using this design. Libraries with filters and combinators are provided for processing the generic data model.+homepage: http://www.fh-wedel.de/~si/HXmlToolbox/index.html+copyright: Copyright (c) 2005 Uwe Schmidt+-- tested-with: ghc-6.4.2, ghc-6.6+-- exposed: True+exposed-modules:+  Control.Arrow.ArrowIf,+  Control.Arrow.ArrowIO,+  Control.Arrow.ArrowList,+  Control.Arrow.ArrowState,+  Control.Arrow.ArrowStrict,+  Control.Arrow.ArrowTree,+  Control.Arrow.IOListArrow,+  Control.Arrow.IOStateListArrow,+  Control.Arrow.ListArrow,+  Control.Arrow.ListArrows,+  Control.Arrow.StateListArrow,+  Control.Monad.MonadStateIO,+  Control.Strategies.DeepSeq,+  Data.AssocList,+  Data.NavTree,+  Data.Tree.Class,+  Data.Tree.NTree.Filter,+  Data.Tree.NTree.TypeDefs,+  System.PipeOpen,+  Text.XML.HXT.Arrow,+  Text.XML.HXT.Arrow.DocumentInput,+  Text.XML.HXT.Arrow.DocumentOutput,+  Text.XML.HXT.Arrow.DOMInterface,+  Text.XML.HXT.Arrow.DTDProcessing,+  Text.XML.HXT.Arrow.Edit,+  Text.XML.HXT.Arrow.GeneralEntitySubstitution,+  Text.XML.HXT.Arrow.Namespace,+  Text.XML.HXT.Arrow.ParserInterface+  Text.XML.HXT.Arrow.ProcessDocument,+  Text.XML.HXT.Arrow.ReadDocument,+  Text.XML.HXT.Arrow.WriteDocument,+  Text.XML.HXT.Arrow.XmlArrow,+  Text.XML.HXT.Arrow.XmlIOStateArrow,+  Text.XML.HXT.Arrow.XmlNode,+  Text.XML.HXT.Arrow.XmlNodeSet,+  Text.XML.HXT.DOM,+  Text.XML.HXT.DOM.EditFilters,+  Text.XML.HXT.DOM.FormatXmlTree,+  Text.XML.HXT.DOM.Namespace,+  Text.XML.HXT.DOM.NamespaceFilter,+  Text.XML.HXT.DOM.NamespacePredicates,+  Text.XML.HXT.DOM.TypeDefs,+  Text.XML.HXT.DOM.Unicode,+  Text.XML.HXT.DOM.Util,+  Text.XML.HXT.DOM.XmlKeywords,+  Text.XML.HXT.DOM.XmlOptions,+  Text.XML.HXT.DOM.XmlState,+  Text.XML.HXT.DOM.XmlTree,+  Text.XML.HXT.DOM.XmlTreeFilter,+  Text.XML.HXT.DOM.XmlTreeFunctions,+  Text.XML.HXT.DOM.XmlTreeTypes,+  Text.XML.HXT.IO.GetFILE,+  Text.XML.HXT.IO.GetHTTPCurl,+  Text.XML.HXT.IO.GetHTTPNative,+  Text.XML.HXT.Parser,+  Text.XML.HXT.Parser.DefaultURI,+  Text.XML.HXT.Parser.DTDProcessing,+  Text.XML.HXT.Parser.HtmlParsec,+  Text.XML.HXT.Parser.HtmlParser,+  Text.XML.HXT.Parser.MainFunctions,+  Text.XML.HXT.Parser.ProtocolHandler,+  Text.XML.HXT.Parser.ProtocolHandlerFile,+  Text.XML.HXT.Parser.ProtocolHandlerHttpCurl,+  Text.XML.HXT.Parser.ProtocolHandlerHttpNative,+  Text.XML.HXT.Parser.ProtocolHandlerHttpNativeOrCurl,+  Text.XML.HXT.Parser.ProtocolHandlerUtil,+  Text.XML.HXT.Parser.XmlCharParser,+  Text.XML.HXT.Parser.XmlDTDParser,+  Text.XML.HXT.Parser.XmlDTDTokenParser,+  Text.XML.HXT.Parser.XmlInput,+  Text.XML.HXT.Parser.XmlOutput,+  Text.XML.HXT.Parser.XmlParsec,+  Text.XML.HXT.Parser.XmlParser,+  Text.XML.HXT.Parser.XmlTokenParser,+  Text.XML.HXT.Validator.AttributeValueValidation,+  Text.XML.HXT.Validator.DocTransformation,+  Text.XML.HXT.Validator.DocValidation,+  Text.XML.HXT.Validator.DTDValidation,+  Text.XML.HXT.Validator.IdValidation,+  Text.XML.HXT.Validator.RE,+  Text.XML.HXT.Validator.Validation,+  Text.XML.HXT.Validator.ValidationFilter,+  Text.XML.HXT.Validator.XmlRE,+  Text.XML.HXT.XPath,+  Text.XML.HXT.XPath.NavTree,+  Text.XML.HXT.XPath.XPathArithmetic,+  Text.XML.HXT.XPath.XPathDataTypes,+  Text.XML.HXT.XPath.XPathEval,+  Text.XML.HXT.XPath.XPathFct,+  Text.XML.HXT.XPath.XPathKeywords,+  Text.XML.HXT.XPath.XPathParser,+  Text.XML.HXT.XPath.XPathToNodeSet,+  Text.XML.HXT.XPath.XPathToString,+  Text.XML.HXT.XSLT.Application,+  Text.XML.HXT.XSLT.Common,+  Text.XML.HXT.XSLT.Compilation,+  Text.XML.HXT.XSLT.CompiledStylesheet,+  Text.XML.HXT.XSLT.Names,+  Text.XML.HXT.XSLT.XsltArrows,+  Text.XML.HXT.RelaxNG,+  Text.XML.HXT.RelaxNG.CreatePattern,+  Text.XML.HXT.RelaxNG.DataTypeLibMysql,+  Text.XML.HXT.RelaxNG.DataTypeLibraries,+  Text.XML.HXT.RelaxNG.DataTypeLibUtils,+  Text.XML.HXT.RelaxNG.DataTypeLibW3C,+  Text.XML.HXT.RelaxNG.DataTypes,+  Text.XML.HXT.RelaxNG.PatternFunctions,+  Text.XML.HXT.RelaxNG.PatternToString,+  Text.XML.HXT.RelaxNG.SchemaGrammar,+  Text.XML.HXT.RelaxNG.Schema,+  Text.XML.HXT.RelaxNG.Simplification,+  Text.XML.HXT.RelaxNG.Utils,+  Text.XML.HXT.RelaxNG.Validation,+  Text.XML.HXT.RelaxNG.Validator+hs-source-dirs: src+ghc-options: -Wall -O2 -fglasgow-exts+-- import-dirs: /usr/lib/ghc-6.4.2/hxt/imports+-- library-dirs: /usr/lib/ghc-6.4.2/hxt+-- hs-libraries: HShxt+build-depends: base, haskell98, parsec, HTTP, HUnit, network
+ src/Control/Arrow/ArrowIO.hs view
@@ -0,0 +1,71 @@+-- ------------------------------------------------------------++{- |+   Module     : Control.Arrow.ArrowIO+   Copyright  : Copyright (C) 2005 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: ArrowIO.hs,v 1.6 2005/09/02 17:09:39 hxml Exp $++Lifting of IO actions to arrows++-}++-- ------------------------------------------------------------++module Control.Arrow.ArrowIO+    ( ArrowIO(..)+    , ArrowIOIf(..)+    )+where++import Control.Arrow++-- | the interface for converting an IO action into an arrow++class Arrow a => ArrowIO a where++    -- | construct an arrow from an IO action+    arrIO		:: (b -> IO c) -> a b c++    -- | construct an arrow from an IO action without any parameter+    arrIO0		:: IO c -> a b c+    arrIO0 f		= arrIO (const f)++    -- | construction of a 2 argument arrow from a binary IO action+    -- |+    -- | example: @ a1 &&& a2 >>> arr2 f @++    arrIO2		:: (b1 -> b2 -> IO c) -> a (b1, b2) c+    arrIO2 f		= arrIO (\ ~(x1, x2) -> f x1 x2)++    -- | construction of a 3 argument arrow from a 3-ary IO action+    -- |+    -- | example: @ a1 &&& a2 &&& a3 >>> arr3 f @++    arrIO3		:: (b1 -> b2 -> b3 -> IO c) -> a (b1, (b2, b3)) c+    arrIO3 f		= arrIO (\ ~(x1, ~(x2, x3)) -> f x1 x2 x3)++    -- | construction of a 4 argument arrow from a 4-ary IO action+    -- |+    -- | example: @ a1 &&& a2 &&& a3 &&& a4 >>> arr4 f @++    arrIO4		:: (b1 -> b2 -> b3 -> b4 -> IO c) -> a (b1, (b2, (b3, b4))) c+    arrIO4 f		= arrIO (\ ~(x1, ~(x2, ~(x3, x4))) -> f x1 x2 x3 x4)+++-- | the interface for converting an IO predicate into a list arrow++class (Arrow a, ArrowIO a) => ArrowIOIf a where++    -- | builds an arrow from an IO predicate+    --+    -- if the predicate holds, the single list containing the input is returned, else the empty list,+    -- similar to 'Control.Arrow.ArrowList.isA'++    isIOA		:: (b -> IO Bool) -> a b b++-- ------------------------------------------------------------
+ src/Control/Arrow/ArrowIf.hs view
@@ -0,0 +1,153 @@+-- ------------------------------------------------------------++{- |+   Module     : Control.Arrow.ArrowIf+   Copyright  : Copyright (C) 2005 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: ArrowIf.hs,v 1.8 2006/05/04 14:17:53 hxml Exp $++Conditionals for List Arrows++This module defines conditional combinators for list arrows.++The empty list as result represents False, none empty lists True.++-}++-- ------------------------------------------------------------++module Control.Arrow.ArrowIf+    ( module Control.Arrow.ArrowIf+    )+where++import Control.Arrow+import Control.Arrow.ArrowList++import Data.List+    ( partition )++-- ------------------------------------------------------------++-- | The interface for arrows as conditionals.+--+-- Requires list arrows because False is represented as empty list, True as none empty lists.+--+-- Only 'ifA' and 'orElse' don't have default implementations++class ArrowList a => ArrowIf a where++    -- | if lifted to arrows++    ifA			:: a b c -> a b d -> a b d -> a b d++    -- | shortcut: @ ifP p = ifA (isA p) @++    ifP			:: (b -> Bool) -> a b d -> a b d -> a b d+    ifP p		= ifA (isA p)++    -- | negation: @ neg f = ifA f none this @++    neg			:: a b c -> a b b+    neg	f		= ifA f none this++    -- | @ f \`when\` g @ : when the predicate g holds, f is applied, else the identity filter this++    when		:: a b b -> a b c -> a b b+    f `when` g		= ifA g f this++    -- | shortcut: @ f \`whenP\` p = f \`when\` (isA p) @++    whenP		:: a b b -> (b -> Bool) -> a b b+    f `whenP` g		= ifP g f this++    -- | @ f \`whenNot\` g @ : when the predicate g does not hold, f is applied, else the identity filter this++    whenNot		:: a b b -> a b c -> a b b+    f `whenNot` g	= ifA g this f++    -- | like 'whenP'++    whenNotP		:: a b b -> (b -> Bool) -> a b b+    f `whenNotP` g	= ifP g this f++    -- | @ g \`guards\` f @ : when the predicate g holds, f is applied, else none++    guards		:: a b c -> a b d -> a b d+    f `guards` g	= ifA f g none++    -- | like 'whenP'++    guardsP		:: (b -> Bool) -> a b d -> a b d+    f `guardsP` g	= ifP f g none++    -- | @ f \`containing\` g @ : keep only those results from f for which g holds+    --+    -- definition: @ f \`containing\` g = f >>> g \`guards\` this @++    containing		:: a b c -> a c d -> a b c+    f `containing` g	= f >>> g `guards` this++    -- | @ f \`notContaining\` g @ : keep only those results from f for which g does not hold+    --+    -- definition: @ f \`notContaining\` g = f >>> ifA g none this @++    notContaining	:: a b c -> a c d -> a b c+    f `notContaining` g	= f >>> ifA g none this++    -- | @ f \`orElse\` g @ : directional choice: if f succeeds, the result of f is the result, else g is applied+    orElse		:: a b c -> a b c -> a b c++    -- | generalisation of 'orElse' for multi way branches like in case expressions.+    --+    -- An auxiliary data type 'IfThen' with an infix constructor ':->' is used for writing multi way branches+    --+    -- example: @ choiceA [ p1 :-> e1, p2 :-> e2, this :-> default ] @+    choiceA		:: [IfThen (a b c) (a b d)] -> a b d+    choiceA 		= foldr ifA' none+			  where+			  ifA' (g :-> f) = ifA g f+++    -- | tag a value with Left or Right, if arrow has success, input is tagged with Left, else with Right+    tagA		:: a b c -> a b (Either b b)+    tagA p		= ifA p (arr Left) (arr Right)+++    -- | split a list value with an arrow and returns a pair of lists.+    -- This is the arrow version of 'span'. The arrow is deterministic.+    --+    -- example: @ runLA (spanA (isA (\/= \'-\'))) \"abc-def\" @ gives @ [(\"abc\",\"-def\")] @ as result++    spanA		:: a b b -> a [b] ([b],[b])+    spanA p		= ifA ( arrL (take 1) >>> p )+			  ( arr head &&& (arr tail >>> spanA p)+			    >>>+			    arr (\ ~(x, ~(xs,ys)) -> (x : xs, ys))+			  )+                          ( arr (\ l -> ([],l)) )++    -- | partition a list of values into a pair of lists+    --+    -- This is the arrow Version of 'Data.List.partition'++    partitionA		:: a b b -> a [b] ([b],[b])+    partitionA	p	= listA ( arrL id >>> tagA p )+			  >>^+			  ( (\ ~(l1, l2) -> (unTag l1, unTag l2) ) . partition (isLeft) )+	                  where+			  isLeft (Left _) = True+			  isLeft _        = False+			  unTag	= map (either id id)++-- ------------------------------------------------------------++-- | an auxiliary data type for 'choiceA'++data IfThen a b	= a :-> b++-- ------------------------------------------------------------
+ src/Control/Arrow/ArrowList.hs view
@@ -0,0 +1,318 @@+-- ------------------------------------------------------------++{- |+   Module     : Control.Arrow.ArrowList+   Copyright  : Copyright (C) 2005 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: ArrowList.hs,v 1.11 2006/06/01 12:59:04 hxml Exp $++The List Arrow Class++This module defines the interface for list arrows.++A list arrow is a function, that gives a list of results+for a given argument. A single element result represents a normal function.+An empty list oven indicates, the function is undefined for the given argument.+The empty list may also represent False, none empty lists True.+A list with more than one element gives all results for a nondeterministic function.++-}++-- ------------------------------------------------------------++module Control.Arrow.ArrowList+    ( ArrowList(..)+    )+where++import Control.Arrow++infixl 8 >>., >.++infixl 2 $<, $<<, $<<<, $<<<<+infixl 2 $<$++-- ------------------------------------------------------------++-- | The interface for list arrows+--+-- Only 'mkA', 'arr2A', 'isA' '(>>.)' don't have default implementations++class (Arrow a, ArrowPlus a, ArrowZero a, ArrowApply a) => ArrowList a where++    -- | construction of a 2 argument arrow from a binary function+    -- |+    -- | example: @ a1 &&& a2 >>> arr2 f @++    arr2		:: (b1 -> b2 -> c) -> a (b1, b2) c+    arr2		= arr . uncurry++    -- | construction of a 3 argument arrow from a 3-ary function+    -- |+    -- | example: @ a1 &&& a2 &&& a3 >>> arr3 f @++    arr3		:: (b1 -> b2 -> b3 -> c) -> a (b1, (b2, b3)) c+    arr3 f		= arr (\ ~(x1, ~(x2, x3)) -> f x1 x2 x3)++    -- | construction of a 4 argument arrow from a 4-ary function+    -- |+    -- | example: @ a1 &&& a2 &&& a3 &&& a4 >>> arr4 f @++    arr4		:: (b1 -> b2 -> b3 -> b4 -> c) -> a (b1, (b2, (b3, b4))) c+    arr4 f		= arr (\ ~(x1, ~(x2, ~(x3, x4))) -> f x1 x2 x3 x4)++    -- | construction of a 2 argument arrow from a singe argument arrow++    arr2A		:: (b -> a c d) -> a (b, c) d++    -- | constructor for a list arrow from a function with a list as result++    arrL		:: (b -> [c]) -> a b c++    -- | constructor for a list arrow with 2 arguments++    arr2L		:: (b -> c -> [d]) -> a (b, c) d+    arr2L		= arrL . uncurry++    -- | constructor for a const arrow: @ constA = arr . const @++    constA		:: c -> a b c+    constA		= arr . const++    -- | constructor for a const arrow: @ constL = arrL . const @++    constL		:: [c] -> a b c+    constL		= arrL . const++    -- | builds an arrow from a predicate.+    -- If the predicate holds, the single list containing the input is returned, else the empty list++    isA			:: (b -> Bool) -> a b b++    -- | combinator for converting the result of a list arrow into another list+    --+    -- example: @ foo >>. reverse @ reverses the the result of foo+    --+    -- example: @ foo >>. take 1 @ constructs a deterministic version of foo by deleting all further results++    (>>.)		:: a b c -> ([c] -> [d]) -> a b d++    -- | combinator for converting the result of an arrow into a single element result++    (>.)		:: a b c -> ([c] ->  d ) -> a b d+    af >. f		= af >>. ((:[]) . f)++    -- | combinator for converting an arrow into a determinstic version with all results collected in a single element list+    --+    -- @ listA af = af >>. (:[]) @+    --+    -- this is useful when the list of results computed by an arrow must be manipulated (e.g. sorted)+    --+    -- example for sorting the results of a filter+    --+    -- > collectAndSort         :: a b c -> a b c+    -- >+    -- > collectAndSort collect = listA collect >>> arrL sort++    listA		:: a b c -> a b [c]+    listA af		= af >>.  (:[])++    -- | the identity arrow, alias for returnA++    this		:: a b b+    this		= returnA++    -- | the zero arrow, alias for zeroArrow++    none		:: a b c+    none		= zeroArrow++    -- | converts an arrow, that may fail, into an arrow that always succeeds+    --+    -- example: @ withDefault none \"abc\" @ is equivalent to @ constA \"abc\" @++    withDefault		:: a b c -> c -> a b c+    withDefault	a d	= a >>. \ x -> if null x then [d] else x++    -- | makes a list arrow deterministic, the number of results is at most 1+    --+    -- definition+    --+    -- > single f = f >>. take 1+    --+    -- examples with strings:+    --+    -- > runLA ( single none ) "x" == []+    -- > runLA ( single this ) "x" == ["x"]+    -- > runLA ( single+    -- >         (constA "y"+    -- >          <+> this ) ) "x" == ["y"]++    single		:: a b c -> a b c+    single f		= f >>. take 1++    -- | compute an arrow from the input and apply the arrow to this input+    --+    -- definition: @ (f &&& this) >>> app @+    --+    -- in a point free style, there is no way to use an argument in 2 places,+    -- this is a combinator for simulating this. first the argument is used to compute an arrow,+    -- then this new arrow is applied to the input+    --+    -- applyA coresponds to: @ apply f x = let g = f x in g x @+    --+    -- see also: '$<', '$<<', '$<<<', '$<<<<', '$<$'++    applyA		:: a b (a b c) -> a b c+    applyA f            = (f &&& this) >>> app++    -- | compute the parameter for an arrow with extra parameters from the input+    -- and apply the arrow for all parameter values to the input+    --+    -- a kind of \"function call\" for arrows, useful for joining arrows+    --+    -- > infixl 2 ($<)+    --+    -- definition:+    --+    -- > g $< f = applyA (f >>> arr g)+    --+    -- if @f@ fails, the whole arrow fails, e.g. @ g \$\< none == none @+    --+    -- if @f@ computes n values and @g@ is deterministic, the whole arrow computes n values+    --+    -- examples with simple list arrows with strings+    --+    -- > prefixString   :: String -> a String String+    -- > prefixString s =  arr (s++)+    -- >+    -- > runLA ( prefixString $< none           ) "x" == []+    -- > runLA ( prefixString $< constA "y"     ) "x" == ["yx"]+    -- > runLA ( prefixString $< this           ) "x" == ["xx"]+    -- > runLA ( prefixString $< constA "y"+    -- >                         <+> constA "z" ) "x" == ["yx","zx"]+    -- > runLA ( prefixString $< constA "y"+    -- >                         <+> this+    -- >                         <+> constA "z" ) "x" == ["yx","xx","zx"]+    --+    -- see also: 'applyA', '$<<', '$<<<', '$<<<<', '$<$'++    ($<)		:: (c -> a b d) -> a b c -> a b d+    g $< f		= applyA (f >>> arr g)++    -- | binary version of '$<'+    --+    -- example with simple list arrows with strings+    --+    -- > infixString    :: String -> String -> a String String+    -- > infixString s1 s2+    -- >                = arr (\ s -> s1 ++ s ++ s2)+    -- >+    -- > runLA ( infixString $<< constA "y" &&& constA "z" ) "x" = ["yxz"]+    -- > runLA ( infixString $<< this &&& this             ) "x" = ["xxx"]+    -- > runLA ( infixString $<< constA "y"+    -- >                         &&& (constA "z" <+> this) ) "x" = ["yxz", "yxx"]++    ($<<)		:: (c1 -> c2 -> a b d) -> a b (c1, c2) -> a b d+    f $<< g		= applyA (g >>> arr2 f)++    -- | version of '$<' for arrows with 3 extra parameters+    --+    -- typical usage+    --+    -- > f $<<< g1 &&& g2 &&& g3++    ($<<<)		:: (c1 -> c2 -> c3 -> a b d) -> a b (c1, (c2, c3)) -> a b d+    f $<<< g		= applyA (g >>> arr3 f)++    -- | version of '$<' for arrows with 4 extra parameters+    --+    -- typical usage+    --+    -- > f $<<<< g1 &&& g2 &&& g3 &&& g4++    ($<<<<)		:: (c1 -> c2 -> c3 -> c4 -> a b d) -> a b (c1, (c2, (c3, c4))) -> a b d+    f $<<<< g		= applyA (g >>> arr4 f)++    -- | compute the parameter for an arrow @f@ with an extra parameter by an arrow @g@+    -- and apply all the results from @g@ sequentially to the input+    --+    -- > infixl 2 ($<$)+    --+    -- typical usage:+    --+    -- > g :: a b c+    -- > g = ...+    -- >+    -- > f :: c -> a b b+    -- > f x = ... x ...+    -- >+    -- > f $<$ g+    --+    -- @f@ computes the extra parameters for @g@ from the input of type @b@ and @g@ is applied with this+    -- parameter to the input. This allows programming in a point wise style in @g@, which becomes+    -- neccessary, when a value is needed more than once.+    --+    -- this combinator is useful, when transforming a single value (document) step by step,+    -- with @g@ for collecting the data for all steps, and @f@ for transforming the input step by step+    --+    -- if @g@ is deterministic (computes exactly one result),+    -- @ g $\<$ f == g $\< f @ holds+    --+    -- if @g@ fails, @ f $<$ g == this @+    --+    -- if @g@ computes more than one result, @f@ is applied sequentially to the input for every result from @g@+    --+    -- examples with simple list arrows with strings+    --+    -- > prefixString   :: String -> a String String+    -- > prefixString s =  arr (s++)+    -- >+    -- > runLA ( prefixString $<$ none                      ) "x" == ["x"]+    -- > runLA ( prefixString $<$ constA "y"                ) "x" == ["yx"]+    -- > runLA ( prefixString $<$ constA "y" <+> constA "z" ) "x" == ["zyx"]+    -- > runLA ( prefixString $<$ constA "y" <+> this+    -- >                          <+> constA "z"            ) "x" == ["zxyx"]+    --+    -- example with two extra parameter+    --+    -- > g1 :: a b c1+    -- > g2 :: a b c2+    -- >+    -- > f          :: (c1, c2) -> a b b+    -- > f (x1, x2) =  ... x1 ... x2 ... +    -- >+    -- > f $<$ g1 &&& g2+    --+    -- see also: 'applyA', '$<'++    ($<$)		:: (c -> (a b b)) -> a b c -> a b b+    g $<$ f		= applyA (listA (f >>> arr g) >>> arr seqA)++    -- | useful only for arrows with side effects: perform applies an arrow to the input+    -- ignores the result and returns the input+    --+    -- example: @ ... >>> perform someTraceArrow >>> ... @++    perform		:: a b c -> a b b+    perform f		= listA f &&& this >>> arr snd++    -- | generalization of arrow combinator '<+>'+    --+    -- definition: @ catA = foldl (<+>) none @++    catA		:: [a b c] -> a b c+    catA		= foldl (<+>) none++    -- | generalization of arrow combinator '>>>'+    --+    -- definition: @ seqA = foldl (>>>) this @++    seqA		:: [a b b] -> a b b+    seqA		= foldl (>>>) this++-- ------------------------------------------------------------
+ src/Control/Arrow/ArrowState.hs view
@@ -0,0 +1,79 @@+-- ------------------------------------------------------------++{- |+   Module     : Control.Arrow.ArrowState+   Copyright  : Copyright (C) 2005 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: ArrowState.hs,v 1.5 2005/09/02 17:09:39 hxml Exp $++   Arrows for managing an explicit state++   State arrows work similar to state monads.+   A state value is threaded through the application of arrows.++-}++-- ------------------------------------------------------------++module Control.Arrow.ArrowState+    ( ArrowState(..)+    )+where++import Control.Arrow++-- | The interface for accessing and changing the state component.+--+-- Multi parameter classes and functional dependencies are required.++class Arrow a => ArrowState s a | a -> s where++    -- | change the state of a state arrow by applying a function+    -- for computing a new state from the old and the arrow input.+    -- Result is the arrow input++    changeState		:: (s -> b -> s) -> a b b++    -- | access the state with a function using the arrow input+    -- as data for selecting state components.++    accessState		:: (s -> b -> c) -> a b c++    -- | read the complete state, ignore arrow input+    --+    -- definition: @ getState = accessState (\\ s x -> s) @ ++    getState		:: a b s+    getState		= accessState (\ s _x -> s)++    -- | overwrite the old state+    --+    -- definition: @ setState = changeState (\\ s x -> x) @+    setState		:: a s s+    setState		= changeState (\ _s x -> x)	-- changeState (const id)++    -- | change state (and ignore input) and return new state+    --+    -- convenience function,+    -- usefull for generating e.g. unique identifiers:+    --+    -- example with SLA state list arrows+    --+    -- > newId :: SLA Int b String+    -- > newId = nextState (+1)+    -- >         >>>+    -- >         arr (('#':) . show)+    -- > +    -- > runSLA 0 (newId <+> newId <+> newId) undefined+    -- >   = ["#1", "#2", "#3"]++    nextState		:: (s -> s) -> a b s+    nextState sf	= changeState (\s -> const (sf s))+			  >>>+			  getState++-- ------------------------------------------------------------
+ src/Control/Arrow/ArrowStrict.hs view
@@ -0,0 +1,34 @@+-- ------------------------------------------------------------++{- |+   Module     : Control.Arrow.ArrowStrict+   Copyright  : Copyright (C) 2005 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id$++   Arrows for complete evaluation of result++-}++-- ------------------------------------------------------------++module Control.Arrow.ArrowStrict+where++import Control.Arrow+import Control.Strategies.DeepSeq++-- |+-- complete evaluation of an arrow result using 'Control.Strategies.DeepSeq.deepSeq'+-- and 'Control.Strategies.DeepSeq.strict'+--+-- this is sometimes useful for preventing space leaks, especially after reading+-- and validation of a document, all DTD stuff is not longer in use and can be+-- recycled by the GC.++strictA	:: (Arrow a, DeepSeq b) => a b b+strictA	= arr strict
+ src/Control/Arrow/ArrowTree.hs view
@@ -0,0 +1,291 @@+-- ------------------------------------------------------------++{- |+   Module     : Control.Arrow.ArrowTree+   Copyright  : Copyright (C) 2005 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: ArrowTree.hs,v 1.12 2006/11/30 16:05:24 hxml Exp $++List arrows for tree processing.++Trees that implement the "Data.Tree.Class" interface, can be processed+with these arrows.++-}++-- ------------------------------------------------------------++module Control.Arrow.ArrowTree+    ( ArrowTree(..)+    , Tree+    )+where++import Data.Tree.Class (Tree)+import qualified Data.Tree.Class as T hiding (Tree)++import Control.Arrow+import Control.Arrow.ArrowList+import Control.Arrow.ArrowIf++infixl 5 />, </++-- ------------------------------------------------------------++-- | The interface for tree arrows+--+-- all functions have default implementations++class (ArrowPlus a, ArrowIf a) => ArrowTree a where++    -- | select the children of the root of a tree++    getChildren		:: Tree t => a (t b) (t b)+    getChildren		= arrL T.getChildren++    -- | select the attribute of the root of a tree++    getNode		:: Tree t => a (t b) b+    getNode		= arr T.getNode++    -- | substitute the children of the root of a tree++    setChildren		:: Tree t =>            [t b] -> a (t b) (t b)+    setChildren cs	= arr (T.setChildren cs)++    -- | substitute the attribute of the root of a tree++    setNode		:: Tree t =>                b -> a (t b) (t b)+    setNode n		= arr (T.setNode n)++    -- | edit the children of the root of a tree++    changeChildren	:: Tree t => ([t b] -> [t b]) -> a (t b) (t b)+    changeChildren csf	= arr (T.changeChildren csf)++    -- | edit the attribute of the root of a tree++    changeNode		:: Tree t =>        (b  -> b) -> a (t b) (t b)+    changeNode nf	= arr (T.changeNode nf)++								-- compound arrows++    -- | apply an arrow element wise to all children of the root of a tree+    -- collect these results and substitute the children with this result+    --+    -- example: @ processChildren isText @ deletes all subtrees, for which isText does not hold+    --+    -- example: @ processChildren (none \`when\` isCmt) @ removes all children, for which isCmt holds++    processChildren	:: Tree t => a (t b) (t b) -> a (t b) (t b)+    processChildren f	= listA (getChildren >>> f)		-- new children, deterministic filter: single element result+			  &&&+			  this					-- pair with root+			  >>>+			  arr2 T.setChildren			-- apply binary filter++    -- | similar to processChildren, but the new children are computed by processing+    -- the whole input tree+    --+    -- example: @ replaceChildren (deep isText) @ selects all subtrees for which isText holds+    -- and substitutes the children component of the root node with this list++    replaceChildren	:: Tree t => a (t b) (t b) -> a (t b) (t b)+    replaceChildren f	= listA f				-- compute new children+			  &&&+			  this+			  >>>+			  arr2 T.setChildren++    -- |+    -- pronounced \"slash\", meaning g inside f+    --+    -- defined as @ f \/> g = f >>> getChildren >>> g @+    --+    -- example: @ hasName \"html\" \/> hasName \"body\" \/> hasName \"h1\" @+    --+    -- This expression selects+    -- all \"h1\" elements in the \"body\" element of an \"html\" element, an expression, that+    -- corresponds 1-1 to the XPath selection path \"html\/body\/h1\" ++    (/>)		:: Tree t => a (t b) (t b) -> a (t b) (t b) -> a (t b) (t b)+    f /> g		= f >>> getChildren >>> g+++    -- |+    -- pronounced \"outside\" meaning f containing g+    --+    -- defined as @ f <\/ g = f \`containing\` (getChildren >>> g) @++    (</)		:: Tree t => a (t b) (t b) -> a (t b) (t b) -> a (t b) (t b)+    f </ g		= f `containing` (getChildren >>> g)+++    -- | recursively searches a whole tree for subtrees, for which a predicate holds.+    -- The search is performed top down. When a tree is found, this becomes an element of the result+    -- list. The tree found is not further examined for any subtress, for which the predicate also could hold.+    -- See 'multi' for this kind of search.+    --+    -- example: @ deep isHtmlTable @ selects all top level table elements in a document+    -- (with an appropriate definition for isHtmlTable) but no tables occuring within a table cell.++    deep		:: Tree t => a (t b) (t b) -> a (t b) (t b)+    deep f		= f					-- success when applying f+			  `orElse`+			  (getChildren >>> deep f)		-- seach children+++    -- | recursively searches a whole tree for subrees, for which a predicate holds.+    -- The search is performed bottom up.+    --+    -- example: @ deepest isHtmlTable @ selects all innermost table elements in a document+    -- but no table elements containing tables. See 'deep' and 'multi' for other search strategies.++    deepest		:: Tree t => a (t b) (t b) -> a (t b) (t b)+    deepest f		= (getChildren >>> deepest f)		-- seach children+			  `orElse`+			  f					-- no success: apply f to root+++    -- | recursively searches a whole tree for subtrees, for which a predicate holds.+    -- The search is performed top down. All nodes of the tree are searched, even within the+    -- subtrees of trees for which the predicate holds.+    --+    -- example: @ multy isHtmlTable @ selects all table elements, even nested ones.++    multi		:: Tree t => a (t b) c -> a (t b) c+    multi f		= f					-- combine result for root+			  <+>+			  (getChildren >>> multi f)		-- with result for all descendants++    -- | recursively transforms a whole tree by applying an arrow to all subtrees,+    -- this is done bottom up depth first, leaves first, root as last tree+    --+    -- example: @ processBottomUp (getChildren \`when\` isHtmlFont) @ removes all font tags in a HTML document, even nested ones+    -- (with an appropriate definition of isHtmlFont)++    processBottomUp	:: Tree t => a (t b) (t b) -> a (t b) (t b)+    processBottomUp f	= processChildren (processBottomUp f)	-- process all descendants first+			  >>>+			  f					-- then process root++    -- | similar to 'processBottomUp', but recursively transforms a whole tree by applying an arrow to all subtrees+    -- with a top down depth first traversal strategie. In many cases 'processBottomUp' and 'processTopDown'+    -- give same results.++    processTopDown	:: Tree t => a (t b) (t b) -> a (t b) (t b)+    processTopDown f	= f					-- first process root+			  >>>+			  processChildren (processTopDown f)	-- then process all descendants of new root+++    -- | recursively transforms a whole tree by applying an arrow to all subtrees,+    -- but transformation stops when a predicte does not hold for a subtree,+    -- leaves are transformed first++    processBottomUpWhenNot+			:: Tree t => a (t b) (t b) -> a (t b) (t b) -> a (t b) (t b)+    processBottomUpWhenNot f p+			= ( processChildren (processBottomUpWhenNot f p)+			    >>>+			    f+			  ) `whenNot` p++    -- | recursively transforms a whole tree by applying an arrow to all subtrees,+    -- but transformation stops when a tree is successfully transformed.+    -- the transformation is done top down+    --+    -- example: @ processTopDownUntil (isHtmlTable \`guards\` tranformTable) @+    -- transforms all top level table elements into something else, but inner tables remain unchanged++    processTopDownUntil	:: Tree t => a (t b) (t b) -> a (t b) (t b)+    processTopDownUntil f+			= f+			  `orElse`+			  processChildren (processTopDownUntil f)++    -- | computes a list of trees by applying an arrow to the input+    -- and inserts this list in front of index i in the list of children+    --+    -- example: @ insertChildrenAt 0 (deep isCmt) @ selects all subtrees for which isCmt holds+    -- and copies theses in front of the existing children++    insertChildrenAt	:: Tree t =>           Int -> a (t b) (t b) -> a (t b) (t b)+    insertChildrenAt i f+			= listA f &&& this >>> arr2 insertAt+			  where+			  insertAt newcs+			      = T.changeChildren (\ cs -> let+						          (cs1, cs2) = splitAt i cs+						          in+						          cs1 ++ newcs ++ cs2+						 )++    -- | similar to 'insertChildrenAt', but the insertion position is searched with a predicate++    insertChildrenAfter	:: Tree t => a (t b) (t b) -> a (t b) (t b) -> a (t b) (t b)+    insertChildrenAfter p f+			= replaceChildren+			  ( ( ( listA getChildren+				>>>+				spanA p+			      )+			      &&&+			      listA f+			    )+			    >>> arr2L (\ (xs1, xs2) xs -> xs1 ++ xs ++ xs2)+			  )+			  +    -- | an arrow for inserting a whole subtree with some holes in it (a template)+    -- into a document. The holes can be filled with contents from the input.+    --+    -- Example+    --+    -- > insertTreeTemplateTest	:: ArrowXml a => a b XmlTree+    -- > insertTreeTemplateTest+    -- >     = doc+    -- >       >>>+    -- >       insertTemplate template pattern+    -- >     where+    -- >     doc								-- the input data+    -- > 	= constA "<x><y>The Title</y><z>The content</z></x>"+    -- > 	  >>> xread+    -- >     template								-- the output template with 2 holes: xxx and yyy+    -- > 	= constA "<html><head><title>xxx</title></head><body><h1>yyy</h1></body></html>"+    -- > 	  >>> xread+    -- >     pattern+    -- > 	= [ hasText (== "xxx")						-- fill the xxx hole with the input contents from element "x/y"+    -- > 	    :-> ( getChildren >>> hasName "y" >>> deep isText )+    -- > +    -- > 	  , hasText (== "yyy")						-- fill the yyy hole with the input contents from element "x/z"+    -- > 	    :-> ( getChildren >>> hasName "z" >>> getChildren )+    -- > 	  ]+    --+    -- computes the XML tree for the following document+    --+    -- > "<html><head><title>The Title</title></head><body><h1>The content</h1></body></html>"++    insertTreeTemplate	:: Tree t =>+			   a (t b) (t b) ->					-- the the template+			   [IfThen (a (t b) c) (a (t b) (t b))] ->		-- the list of nodes in the template to be substituted+			   a (t b) (t b)+    insertTreeTemplate template choices+	= insertTree $< this+	  where+	  insertTree t+	      = template					-- swap input and template+		>>>+		processTemplate+	      where+	      processTemplate+		  = choiceA choices'				-- check whether node is a "hole" within the template+		    `orElse`+		    processChildren processTemplate		-- else descent into template tree+	      choices'+		  = map feedTree choices			-- modify choices, such that the input is feed into the action arrows+	      feedTree (cond :-> action)+		  = cond :-> (constA t >>> action)		-- the real input becomes the input at the holes
+ src/Control/Arrow/IOListArrow.hs view
@@ -0,0 +1,119 @@+-- ------------------------------------------------------------++{- |+   Module     : Control.Arrow.IOListArrow+   Copyright  : Copyright (C) 2005 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: IOListArrow.hs,v 1.6 2005/09/02 17:09:39 hxml Exp $++Implementation of pure list arrows with io++-}++-- ------------------------------------------------------------++module Control.Arrow.IOListArrow+    ( IOLA(..)+    )+where++import Control.Arrow+import Control.Arrow.ArrowList+import Control.Arrow.ArrowIf+import Control.Arrow.ArrowTree+import Control.Arrow.ArrowIO++-- ------------------------------------------------------------++-- | list arrow combined with IO monad++newtype IOLA a b = IOLA { runIOLA :: a -> IO [b] }++instance Arrow IOLA where+    arr f		= IOLA $ \ x -> return [f x]++    IOLA f >>> IOLA g	= IOLA $ \ x -> do+					ys <- f x+					zs <- sequence . map g $ ys+					return (concat zs)++    first (IOLA f)	= IOLA $ \ ~(x1, x2) -> do+					        ys1 <- f x1+					        return [ (y1, x2) | y1 <- ys1 ]++    -- just for efficiency+    second (IOLA g)	= IOLA $ \ ~(x1, x2) -> do+					        ys2 <- g x2+					        return [ (x1, y2) | y2 <- ys2 ]++    -- just for efficiency+    IOLA f *** IOLA g	= IOLA $ \ ~(x1, x2) -> do+						ys1 <- f x1+					        ys2 <- g x2+					        return [ (y1, y2) | y1 <- ys1, y2 <- ys2 ]++    -- just for efficiency+    IOLA f &&& IOLA g	= IOLA $ \ x -> do+					ys1 <- f x+					ys2 <- g x+					return [ (y1, y2) | y1 <- ys1, y2 <- ys2 ]+++instance ArrowZero IOLA where+    zeroArrow		= IOLA $ const (return [])+++instance ArrowPlus IOLA where+    IOLA f <+> IOLA g	= IOLA $ \ x -> do+					rs1 <- f x+					rs2 <- g x+					return (rs1 ++ rs2)+++instance ArrowChoice IOLA where+    left (IOLA f)	= IOLA $ either+			           (\ x -> f x >>= (\ y -> return (map Left y)))+                                   (return . (:[]) . Right)+    right (IOLA f)	= IOLA $ either+                                   (return . (:[]) . Left)+			           (\ x -> f x >>= (\ y -> return (map Right y)))++instance ArrowApply IOLA where+    app			= IOLA $ \ (IOLA f, x) -> f x++instance ArrowList IOLA where+    arrL f		= IOLA $ \ x -> return (f x)+    arr2A f		= IOLA $ \ ~(x, y) -> runIOLA (f x) y+    constA c		= IOLA $ const (return [c])+    isA p		= IOLA $ \x -> return (if p x then [x] else [])+    IOLA f >>. g	= IOLA $ \x -> do+				       ys <- f x+				       return (g ys)+++instance ArrowIf IOLA where+    ifA (IOLA p) ta ea	= IOLA $ \x -> do+				       res <- p x+				       runIOLA (if null res then ea else ta) x+    (IOLA f) `orElse` g+			= IOLA $ \x -> do+				       res <- f x+				       if null res then runIOLA g x else return res++instance ArrowIO IOLA where+    arrIO cmd		= IOLA $ \x -> do+			       	       res <- cmd x+				       return [res]++instance ArrowIOIf IOLA where+    isIOA p		= IOLA $ \x -> do+				       res <- p x+				       return (if res then [x] else [])++instance ArrowTree IOLA++-- ------------------------------------------------------------
+ src/Control/Arrow/IOStateListArrow.hs view
@@ -0,0 +1,179 @@+-- ------------------------------------------------------------++{- |+   Module     : Control.Arrow.IOStateListArrow+   Copyright  : Copyright (C) 2005 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: IOStateListArrow.hs,v 1.7 2005/09/02 17:09:39 hxml Exp $++   Implementation of arrows with IO and a state++-}++-- ------------------------------------------------------------++module Control.Arrow.IOStateListArrow+    ( IOSLA(..)+    , liftSt+    , runSt+    )+where++import Control.Arrow+import Control.Arrow.ArrowList+import Control.Arrow.ArrowIf+import Control.Arrow.ArrowTree+import Control.Arrow.ArrowState+import Control.Arrow.ArrowIO++-- ------------------------------------------------------------++-- | list arrow combined with a state and the IO monad++newtype IOSLA s a b = IOSLA { runIOSLA :: s -> a -> IO (s, [b]) }++instance Arrow (IOSLA s) where+    arr f		= IOSLA $ \ s x -> return (s, [f x])++    IOSLA f >>> IOSLA g	= IOSLA $ \ s x -> do+					   (s1, ys) <- f s x+					   sequence' s1 ys+					   where+					   sequence' s' []	 = return (s', [])+					   sequence' s' (x':xs') = do+								   (s1', ys') <- g s' x'+								   (s2', zs') <- sequence' s1' xs'+								   return (s2', ys' ++ zs')++    first (IOSLA f)	= IOSLA $ \ s (x1, x2) -> do+					           (s', ys1) <- f s x1+					           return (s', [ (y1, x2) | y1 <- ys1 ])++    -- just for efficiency+    second (IOSLA g)	= IOSLA $ \ s (x1, x2) -> do+					          (s', ys2) <- g s x2+					          return (s', [ (x1, y2) | y2 <- ys2 ])++    -- just for efficiency+    IOSLA f *** IOSLA g	= IOSLA $ \ s (x1, x2) -> do+						   (s1, ys1) <- f s  x1+					           (s2, ys2) <- g s1 x2+					           return (s2, [ (y1, y2) | y1 <- ys1, y2 <- ys2 ])++    -- just for efficiency+    IOSLA f &&& IOSLA g	= IOSLA $ \ s x -> do+					   (s1, ys1) <- f s  x+					   (s2, ys2) <- g s1 x+					   return (s2, [ (y1, y2) | y1 <- ys1, y2 <- ys2 ])++++instance ArrowZero (IOSLA s) where+    zeroArrow		= IOSLA $ \ s -> const (return (s, []))+++instance ArrowPlus (IOSLA s) where+    IOSLA f <+> IOSLA g	= IOSLA $ \ s x -> do+					   (s1, rs1) <- f s  x+					   (s2, rs2) <- g s1 x+					   return (s2, rs1 ++ rs2)++instance ArrowChoice (IOSLA s) where+    left (IOSLA f)	= IOSLA $ \ s -> either+			                 (\ x -> do+					         (s1, y) <- f s x+					         return (s1, map Left y)+					 )+                                         (\ x -> return (s, [Right x]))++    right (IOSLA f)	= IOSLA $ \ s -> either+                                         (\ x -> return (s, [Left x]))+			                 (\ x -> do+					         (s1, y) <- f s x+					         return (s1, map Right y)+					 )++instance ArrowApply (IOSLA s) where+    app			= IOSLA $ \ s (IOSLA f, x) -> f s x++instance ArrowList (IOSLA s) where+    arrL f		= IOSLA $ \ s x -> return (s, (f x))+    arr2A f		= IOSLA $ \ s (x, y) -> runIOSLA (f x) s y+    constA c		= IOSLA $ \ s   -> const (return (s, [c]))+    isA p		= IOSLA $ \ s x -> return (s, if p x then [x] else [])+    IOSLA f >>. g	= IOSLA $ \ s x -> do+				           (s1, ys) <- f s x+					   return (s1, g ys)+    -- just for efficency+    perform (IOSLA f)	= IOSLA $ \ s x -> do+					   (s1, _ys) <- f s x+					   return (s1, [x])++instance ArrowIf (IOSLA s) where+    ifA (IOSLA p) ta ea	= IOSLA $ \ s x -> do+				           (s1, res) <- p s x+					   runIOSLA ( if null res+						      then ea+						      else ta+						    ) s1 x++    (IOSLA f) `orElse` g+			= IOSLA $ \ s x -> do+				           r@(s1, res) <- f s x+					   if null res+					      then runIOSLA g s1 x+					      else return r+++instance ArrowIO (IOSLA s) where+    arrIO cmd		= IOSLA $ \ s x -> do+					   res <- cmd x+					   return (s, [res])++instance ArrowIOIf (IOSLA s) where+    isIOA p		= IOSLA $ \ s x -> do+					   res <- p x+					   return (s, if res then [x] else [])++instance ArrowState s (IOSLA s) where+    changeState cf	= IOSLA $ \ s x -> let s' = cf s x in return (seq s' s', [x])+    accessState	af	= IOSLA $ \ s x -> return (s, [af s x])++-- ------------------------------------------------------------++-- |+-- lift the state of an IOSLA arrow to a state with an additional component.+--+-- This is uesful, when running predefined IO arrows, e.g. for document input,+-- in a context with a more complex state component.++liftSt		:: IOSLA s1 b c -> IOSLA (s1, s2) b c+liftSt (IOSLA f)+    = IOSLA $ \ (s1, s2) x -> do+			      (s1', ys) <- f s1 x+			      return ((s1', s2), ys)+++-- |+-- run an arrow with augmented state in the context of a simple state arrow.+-- An initial value for the new state component is needed.+--+-- This is useful, when running an arrow with an extra environment component, e.g.+-- for namespace handling in XML.++runSt		:: s2 -> IOSLA (s1, s2) b c -> IOSLA s1 b c+runSt s2 (IOSLA f)+    = IOSLA $ \ s1 x -> do+			((s1', _s2'), ys) <- f (s1, s2) x+			return (s1', ys)++-- ------------------------------------------------------------++instance ArrowTree (IOSLA s)+++-- ------------------------------------------------------------
+ src/Control/Arrow/ListArrow.hs view
@@ -0,0 +1,106 @@+-- ------------------------------------------------------------++{- |+   Module     : Control.Arrow.ListArrow+   Copyright  : Copyright (C) 2005 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: ListArrow.hs,v 1.7 2006/05/04 14:17:53 hxml Exp $++Implementation of pure list arrows++-}++-- ------------------------------------------------------------++module Control.Arrow.ListArrow+    ( LA(..)+    , fromLA+    )+where++import Control.Arrow+import Control.Arrow.ArrowList+import Control.Arrow.ArrowIf+import Control.Arrow.ArrowTree++import Data.List+    ( partition )++-- ------------------------------------------------------------++-- | pure list arrow data type++newtype LA a b = LA { runLA :: a -> [b] }++instance Arrow LA where+    arr f		= LA $ \ x -> [f x]+    LA f >>> LA g	= LA $ concatMap g . f+    first (LA f)	= LA $ \ ~(x1, x2) -> [ (y1, x2) | y1 <- f x1 ]++    -- just for efficiency++    second (LA g)	= LA $ \ ~(x1, x2) -> [ (x1, y2) | y2 <- g x2 ]+    LA f *** LA g	= LA $ \ ~(x1, x2) -> [ (y1, y2) | y1 <- f x1, y2 <- g x2]+    LA f &&& LA g	= LA $ \ x         -> [ (y1, y2) | y1 <- f x , y2 <- g x ]++instance ArrowZero LA where+    zeroArrow		= LA $ const []+++instance ArrowPlus LA where+    LA f <+> LA g	= LA $ \ x -> f x ++ g x+++instance ArrowChoice LA where+    left  (LA f)	= LA $ either (map Left . f) ((:[]) . Right)+    right (LA f)	= LA $ either ((:[]) . Left) (map Right . f)+    LA f +++ LA g	= LA $ either (map Left . f) (map Right . g)+    LA f ||| LA g	= LA $ either f g+++instance ArrowApply LA where+    app			= LA $ \ (LA f, x) -> f x++instance ArrowList LA where+    arrL			= LA+    arr2A f		= LA $ \ ~(x, y) -> runLA (f x) y+    isA p		= LA $ \ x -> if p x then [x] else []+    LA f >>. g		= LA $ g . f+    withDefault	a d	= a >>. \ x -> if null x then [d] else x+++instance ArrowIf LA where+    ifA (LA p) t e	= LA $ \ x -> runLA ( if null (p x)+					      then e+					      else t+					    ) x++    (LA f) `orElse` (LA g)+			= LA $ \ x -> ( let+					res = f x+					in+					if null res+					then g x+					else res+				      )++    spanA p             = LA $ (:[]) . span (not . null . runLA p)++    partitionA	p	= LA $ (:[]) . partition (not . null . runLA p)++instance ArrowTree LA++-- ------------------------------------------------------------++-- | conversion of pure list arrows into other possibly more complex+-- list arrows++fromLA		:: ArrowList a => LA b c -> a b c+fromLA f	=  arrL (runLA f)++-- ------------------------------------------------------------+
+ src/Control/Arrow/ListArrows.hs view
@@ -0,0 +1,48 @@+-- ------------------------------------------------------------++{- |+   Module     : Control.Arrow.ListArrows+   Copyright  : Copyright (C) 2005 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: ListArrows.hs,v 1.1 2005/09/30 14:41:44 hxml Exp $++Module for importing all list arrows++-}++-- ------------------------------------------------------------++module Control.Arrow.ListArrows+    ( module Control.Arrow			-- arrow classes+    , module Control.Arrow.ArrowStrict+    , module Control.Arrow.ArrowList+    , module Control.Arrow.ArrowIf+    , module Control.Arrow.ArrowState+    , module Control.Arrow.ArrowTree+    , module Control.Arrow.ArrowIO++    , module Control.Arrow.ListArrow		-- arrow types+    , module Control.Arrow.StateListArrow+    , module Control.Arrow.IOListArrow+    , module Control.Arrow.IOStateListArrow+    )+where++import Control.Arrow				-- arrow classes+import Control.Arrow.ArrowStrict+import Control.Arrow.ArrowList+import Control.Arrow.ArrowIf+import Control.Arrow.ArrowState+import Control.Arrow.ArrowTree+import Control.Arrow.ArrowIO++import Control.Arrow.ListArrow			-- arrow types+import Control.Arrow.StateListArrow+import Control.Arrow.IOListArrow+import Control.Arrow.IOStateListArrow++-- ------------------------------------------------------------
+ src/Control/Arrow/StateListArrow.hs view
@@ -0,0 +1,170 @@+-- ------------------------------------------------------------++{- |+   Module     : Control.Arrow.StateListArrow+   Copyright  : Copyright (C) 2005 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: StateListArrow.hs,v 1.7 2005/09/02 17:09:39 hxml Exp $++Implementation of list arrows with a state++-}++-- ------------------------------------------------------------++module Control.Arrow.StateListArrow+    ( SLA(..)+    , fromSLA+    )+where++import Control.Arrow+import Control.Arrow.ArrowList+import Control.Arrow.ArrowIf+import Control.Arrow.ArrowTree+import Control.Arrow.ArrowState++-- ------------------------------------------------------------++-- | list arrow combined with a state++newtype SLA s a b = SLA { runSLA :: s -> a -> (s, [b]) }++instance Arrow (SLA s) where+    arr f		= SLA $ \ s x -> (s, [f x])++    SLA f >>> SLA g	= SLA $ \ s x -> let+					 ~(s1, ys) = f s x+					 sequence' s' []+					     = (s', [])+					 sequence' s' (x':xs')+					     = let+					       ~(s1', ys') = g s' x'+					       ~(s2', zs') = sequence' s1' xs'+					       in+					       (s2', ys' ++ zs')+					 in+					 sequence' s1 ys+	                                 +								 +    first (SLA f)	= SLA $ \ s ~(x1, x2) -> let+						 ~(s', ys1) = f s x1+						 in+						 (s', [ (y1, x2) | y1 <- ys1 ])++    -- just for efficiency+    second (SLA g)	= SLA $ \ s ~(x1, x2) -> let+						 ~(s', ys2) = g s x2+						 in+						 (s', [ (x1, y2) | y2 <- ys2 ])++    -- just for efficiency+    SLA f *** SLA g	= SLA $ \ s ~(x1, x2) -> let+						 ~(s1, ys1) = f s  x1+						 ~(s2, ys2) = g s1 x2+						 in+						 (s2, [ (y1, y2) | y1 <- ys1, y2 <- ys2 ])++    -- just for efficiency+    SLA f &&& SLA g	= SLA $ \ s x -> let+					 ~(s1, ys1) = f s  x+					 ~(s2, ys2) = g s1 x+					 in+					 (s2, [ (y1, y2) | y1 <- ys1, y2 <- ys2 ])+++instance ArrowZero (SLA s) where+    zeroArrow		= SLA $ \ s -> const (s, [])+++instance ArrowPlus (SLA s) where+    SLA f <+> SLA g	= SLA $ \ s x -> let+					 ~(s1, rs1) = f s  x+					 ~(s2, rs2) = g s1 x+					 in+					 (s2, rs1 ++ rs2)++instance ArrowChoice (SLA s) where+    left (SLA f)	= SLA $ \ s -> let+			               lf x = (s1, map Left y)+					      where+					      ~(s1, y) = f s x+                                       rf x = (s, [Right x])+				       in+				       either lf rf++    right (SLA f)	= SLA $ \ s -> let+				       lf x = (s, [Left x])+			               rf x = (s1, map Right y)+					      where+					      ~(s1, y) = f s x+				       in+				       either lf rf+++instance ArrowApply (SLA s) where+    app			= SLA $ \ s (SLA f, x) -> f s x+++instance ArrowList (SLA s) where+    arrL f		= SLA $ \ s x -> (s, (f x))+    arr2A f		= SLA $ \ s ~(x, y) -> runSLA (f x) s y+    constA c		= SLA $ \ s   -> const (s, [c])+    isA p		= SLA $ \ s x -> (s, if p x then [x] else [])+    SLA f >>. g		= SLA $ \ s x -> let+				         ~(s1, ys) = f s x+					 in+					 (s1, g ys)+    -- just for efficency+    perform (SLA f)	= SLA $ \ s x -> let+					 ~(s1, _ys) = f s x+					 in+					 (s1, [x])++instance ArrowIf (SLA s) where+    ifA (SLA p) ta ea	= SLA $ \ s x -> let+				         ~(s1, res) = p s x+					 in+					 runSLA ( if null res+						  then ea+						  else ta+						) s1 x++    (SLA f) `orElse` g+			= SLA $ \ s x ->  let+				          r@(s1, res) = f s x+					  in+					  if null res+					  then runSLA g s1 x+					  else r+++instance ArrowState s (SLA s) where+    changeState cf	= SLA $ \ s x -> (cf s x, [x])+    accessState	af	= SLA $ \ s x -> (s, [af s x])++instance ArrowTree (SLA s)++-- ------------------------------------------------------------++-- | conversion of state list arrows into arbitray other+-- list arrows.+--+-- allows running a state list arrow within another arrow:+--+-- example:+--+-- > ... >>> fromSLA 0 (... setState ... getState ... ) >>> ...+--+-- runs a state arrow with initial state 0 (e..g. an Int) within+-- another arrow sequence++fromSLA		:: ArrowList a => s -> SLA s b c -> a b c+fromSLA s f	=  arrL (snd . (runSLA f s))+++-- ------------------------------------------------------------
+ src/Control/Monad/MonadStateIO.hs view
@@ -0,0 +1,94 @@+-- |+-- general usefull state monad for a local state and IO+--+-- Version : $Id: MonadStateIO.hs,v 1.1 2004/09/02 19:11:55 hxml Exp $+++module Control.Monad.MonadStateIO+    ( module Control.Monad.MonadStateIO+    )+where++import System.IO++-- ------------------------------------------------------------++newtype StateIO state res = STIO { trans :: state -> IO (res, state) }++instance Monad (StateIO state) where+    return v+	= STIO ( \s -> return (v, s))++    STIO cmd >>= f+	= STIO ( \s ->+		  cmd s >>= \ (rl, s') ->+		  (trans . f) rl s'+		)++-- ------------------------------------------------------------+-- |+-- lift IO command to 'StateIO'++io :: IO a -> StateIO state a+io iocmd+    = STIO ( \s ->+	     do+	     a <- iocmd+	     return (a, s)+	   )++-- ------------------------------------------------------------++-- |+-- state inspection command: a \"show\"-like function is applied to the state+-- and the result is written to stderr.++trcState	:: (state -> String) -> StateIO state ()+trcState fct+    = STIO ( \s ->+	      do+	      hPutStr stderr $ fct s+	      return ((), s)+	    )++-- ------------------------------------------------------------+--+-- state access commands++-- |+-- change the state with a given function and return the new state++changeState	:: (state -> state) -> StateIO state state+changeState f+    = STIO ( \s ->+	     let s' = f s+	     in+	     return (s', s')+	    )++-- |+-- set the state++setState	:: state -> StateIO state state+setState s+    = changeState ( \_ -> s )++-- |+-- read the state++getState	:: StateIO state state+getState+    = changeState id++-- ------------------------------------------------------------+-- |+-- run a 'StateIO' command with an initial state++run :: state -> StateIO state res -> IO res+run initialState (STIO cmd)+    = do+      (res, _finalState) <- cmd initialState+      return res+++-- ------------------------------------------------------------
+ src/Control/Strategies/DeepSeq.hs view
@@ -0,0 +1,73 @@+{- |++stolen from comp.lang.functional from Dean Herington++DeepSeq.lhs  --  deep strict evaluation support++The `DeepSeq` class provides a method `deepSeq` that is similar to+`seq` except that it forces deep evaluation of its first argument+before returning its second argument.++Instances of `DeepSeq` are provided for Prelude types.  Other+instances must be supplied by users of this module.++$Id: DeepSeq.lhs,v 1.5 2002/04/01 20:58:24 heringto Exp $+-}++module Control.Strategies.DeepSeq+where++class  DeepSeq a  where+    deepSeq :: a -> b -> b+    deepSeq = seq++infixr 0 `deepSeq`, $!!++($!!) :: (DeepSeq a) => (a -> b) -> a -> b++f $!! x = x `deepSeq` f x++strict	:: DeepSeq a => a -> a+strict x+    = x `deepSeq` x++instance  DeepSeq ()+instance  DeepSeq Bool+instance  DeepSeq Char+instance  DeepSeq Ordering+instance  DeepSeq Int+instance  DeepSeq Integer+instance  DeepSeq Float+instance  DeepSeq Double+instance  DeepSeq (a -> b)+instance  DeepSeq (IO a)++instance  (DeepSeq a) => DeepSeq (Maybe a)  where+    deepSeq Nothing  y = y+    deepSeq (Just x) y = deepSeq x y++instance  (DeepSeq a, DeepSeq b) => DeepSeq (Either a b)  where+    deepSeq (Left  a) y = deepSeq a y+    deepSeq (Right b) y = deepSeq b y++instance  (DeepSeq a) => DeepSeq [a]  where+  deepSeq []     y = y+  deepSeq (x:xs) y = deepSeq x $ deepSeq xs y++instance  (DeepSeq a,DeepSeq b) => DeepSeq (a,b)  where+  deepSeq (a,b)           y = deepSeq a $ deepSeq b y++instance  (DeepSeq a,DeepSeq b,DeepSeq c) => DeepSeq (a,b,c)  where+  deepSeq (a,b,c)         y = deepSeq a $ deepSeq b $ deepSeq c y++instance  (DeepSeq a,DeepSeq b,DeepSeq c,DeepSeq d) => DeepSeq (a,b,c,d) where+  deepSeq (a,b,c,d)       y = deepSeq a $ deepSeq b $ deepSeq c $ deepSeq d y++instance  (DeepSeq a,DeepSeq b,DeepSeq c,DeepSeq d,DeepSeq e) => DeepSeq (a,b,c,d,e)  where+  deepSeq (a,b,c,d,e)     y = deepSeq a $ deepSeq b $ deepSeq c $ deepSeq d $ deepSeq e y++instance  (DeepSeq a,DeepSeq b,DeepSeq c,DeepSeq d,DeepSeq e,DeepSeq f) => DeepSeq (a,b,c,d,e,f)  where+  deepSeq (a,b,c,d,e,f)   y = deepSeq a $ deepSeq b $ deepSeq c $ deepSeq d $ deepSeq e $ deepSeq f y++instance  (DeepSeq a,DeepSeq b,DeepSeq c,DeepSeq d,DeepSeq e,DeepSeq f,DeepSeq g) => DeepSeq (a,b,c,d,e,f,g)  where+  deepSeq (a,b,c,d,e,f,g) y = deepSeq a $ deepSeq b $ deepSeq c $ deepSeq d $ deepSeq e $ deepSeq f $ deepSeq g y
+ src/Data/AssocList.hs view
@@ -0,0 +1,61 @@+-- |+-- simple key value assocciation list+-- implemented as unordered list of pairs+--+-- Version : $Id: AssocList.hs,v 1.2 2005/05/27 13:15:23 hxml Exp $++module Data.AssocList+    ( module Data.AssocList+    )+where++import Data.Maybe++type AssocList k v = [(k, v)]++-- lookup 	= lookup from Prelude++-- | lookup with default value++lookupDef	:: Eq k => v -> k -> AssocList k v -> v+lookupDef d k	= fromMaybe d . lookup k++-- | lookup with empty list (empty string) as default value++lookup1		:: Eq k => k -> AssocList k [e] -> [e]+lookup1 k	= fromMaybe [] . lookup k++-- | test for existence of a key++hasEntry	:: Eq k => k -> AssocList k v -> Bool+hasEntry k	= isJust . lookup k++-- | add an entry, remove an existing entry before adding the new one at the top of the list, addEntry is strict++addEntry	:: Eq k => k -> v -> AssocList k v -> AssocList k v+addEntry k v l	= ( (k,v) : ) $! delEntry k l++ -- let l' = delEntry k l in seq l' ((k, v) : l')++-- | add a whole list of entries with 'addEntry'++addEntries	:: Eq k => AssocList k v -> AssocList k v -> AssocList k v+addEntries	= foldr (.) id . map (uncurry addEntry) . reverse++-- | delete an entry, delEntry is strict+delEntry	:: Eq k => k -> AssocList k v -> AssocList k v+delEntry _ []	= []+delEntry k (x@(k1,_) : rest)+    | k == k1	= rest+    | otherwise	= ( x : ) $! delEntry k rest++-- delEntry k	= filter ((/= k) . fst)++-- | delete a list of entries with 'delEntry'++delEntries	:: Eq k => [k] -> AssocList k v -> AssocList k v+delEntries	= foldl (.) id . map delEntry++-- -----------------------------------------------------------------------------++
+ src/Data/NavTree.hs view
@@ -0,0 +1,117 @@+-- |+-- Navigable tree structure which allow a program to traverse+-- up the tree as well as down.+-- copied and modified from HXML (<http://www.flightlab.com/~joe/hxml/>)+--++module Data.NavTree+    ( module Data.NavTree+    , module Data.Tree.NTree.Filter+    )+where++import Data.Tree.NTree.Filter+import Data.Maybe++-- -----------------------------------------------------------------------------++-- NavTree+--+-- | navigable tree with nodes of type node+--+-- a navigable tree consists of a n-ary tree for the current fragment tree,+-- a navigable tree for all ancestors, and two n-ary trees for+-- the previous- and following siblings++data NavTree a = NT+    (NTree a)		-- self+    [NavTree a]		-- ancestors+    [NTree a]		-- previous siblings (in reverse order)+    [NTree a]		-- following siblings+	deriving (Show, Eq, Ord)+++-- -----------------------------------------------------------------------------+++-- |+-- converts a n-ary tree in a navigable tree++ntree	:: NTree a -> NavTree a+ntree nd+    = NT nd [] [] []++-- |+-- converts a navigable tree in a n-ary tree++subtreeNT	:: NavTree a -> NTree a+subtreeNT (NT nd _ _ _)+    = nd+++-- |+-- function for selecting the value of the current fragment tree++dataNT	:: NavTree a -> a+dataNT (NT (NTree a _) _ _ _)+    = a+++-- -----------------------------------------------------------------------------++-- functions for traversing up, down, left and right in a navigable tree++upNT+ , downNT+ , leftNT+ , rightNT :: NavTree a -> Maybe (NavTree a)++upNT	  (NT _ (p:_) _ _)		= Just p+upNT	  (NT _ [] _ _) 		= Nothing+downNT	t@(NT (NTree _ (c:cs)) u _ _)	= Just (NT c (t:u) [] cs)+downNT 	  (NT (NTree _ []    ) _ _ _)	= Nothing+leftNT	  (NT s u (l:ls) r)		= Just (NT l u ls (s:r))+leftNT	  (NT _ _ []     _)		= Nothing+rightNT   (NT s u l (r:rs))		= Just (NT r u (s:l) rs)+rightNT   (NT _ _ _ []    ) 		= Nothing+++-- preorderNT t = t : concatMap preorderNT (children t)+-- where children = maybe [] (maybeStar rightNT) . downNT++preorderNT	:: NavTree a -> [NavTree a]+preorderNT+    = visit []+    where+    visit  k t = t : maybe k (visit' k) (downNT t)+    visit' k t = visit (maybe k (visit' k) (rightNT t)) t++revPreorderNT	:: NavTree a -> [NavTree a]+revPreorderNT t+    = t : concatMap revPreorderNT (reverse (children t))+      where+      children = maybe [] (maybeStar rightNT) . downNT++getChildrenNT	:: NavTree a -> [NavTree a]+getChildrenNT node+    = maybe [] follow (downNT node)+      where+      follow n = n : maybe [] follow (rightNT n)++-- -----------------------------------------------------------------------------+-- Miscellaneous useful combinators++-- |+-- Kleisli composition:++o' :: (Monad m) => (b -> m c) -> (a -> m b) -> (a -> m c)+f `o'` g = \x -> g x >>= f+++-- Some useful anamorphisms:++maybeStar, maybePlus :: (a -> Maybe a) -> a -> [a]+maybeStar f a = a : maybe [] (maybeStar f) (f a)+maybePlus f a =     maybe [] (maybeStar f) (f a)++-- -----------------------------------------------------------------------------
+ src/Data/Tree/Class.hs view
@@ -0,0 +1,92 @@+-- ------------------------------------------------------------++{- |+   Module     : Data.Tree.Class+   Copyright  : Copyright (C) 2005 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable++   Interface definition for trees+-}++-- ------------------------------------------------------------++module Data.Tree.Class+    ( module Data.Tree.Class )+where++-- | The interface for trees++class Tree t where+    -- | tree construction: a new tree is constructed by a node attribute and a list of children+    mkTree		::              a -> [t a] -> t a++    -- | leaf construction: leafs don't have any children+    --+    -- definition: @ mkLeaf n = mkTree n [] @++    mkLeaf		::                       a -> t a+    mkLeaf n		= mkTree n []++    -- | leaf test: list of children empty?++    isLeaf		::		       t a -> Bool+    isLeaf		= null . getChildren++    -- | innner node test: @ not . isLeaf @++    isInner		::		       t a -> Bool+    isInner		= not . isLeaf++    -- | select node attribute++    getNode		::                     t a -> a++    -- | select children++    getChildren		::                     t a -> [t a]++    -- | edit node attribute++    changeNode		::         (a -> a) -> t a -> t a++    -- | edit children++    changeChildren	:: ([t a] -> [t a]) -> t a -> t a++    -- | substitute node: @ setNode n = changeNode (const n) @++    setNode		::                a -> t a -> t a+    setNode n		= changeNode (const n)++    -- | substitute children: @ setChildren cl = changeChildren (const cl) @++    setChildren	::            [t a] -> t a -> t a+    setChildren cl	= changeChildren (const cl)++    -- | fold for trees++    foldTree		::  (a -> [b] -> b) -> t a -> b++    -- | all nodes of a tree++    nodesTree		::		       t a -> [a]++    -- | depth of a tree++    depthTree		::		       t a -> Int++    -- | number of nodes in a tree++    cardTree		::                     t a -> Int++    -- | format tree for readable trace output+    --+    -- a /graphical/ representation of the tree in text format++    formatTree		::    (a -> String) -> t a -> String++-- ------------------------------------------------------------
+ src/Data/Tree/NTree/Filter.hs view
@@ -0,0 +1,913 @@+-- ------------------------------------------------------------++{- |+   Module     : Data.Tree.NTree.Filter+   Copyright  : Copyright (C) 2005 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: Filter.hs,v 1.6 2006/11/12 14:52:59 hxml Exp $++Filter for n-ary tree structure with filter combinators+copied and modified from HxXml (<http://www.cs.york.ac.uk/fp/HaXml/>)++Similar but more flexible functions for tree processing are defined in the+arrow classes "Control.Arrow.ArrowList", "Control.Arrow.ArrowIf", "Control.Arrow.ArrowTree" and "Control.Arrow.ArrowState".+For new applications, especially for XML processing, it's recommended to use the arrow interface+"Text.XML.HXT.Arrow" instead of this filter approach as part of the api "Text.XML.HXT.Parser"++-}++-- ------------------------------------------------------------++module Data.Tree.NTree.Filter+    ( module Data.Tree.NTree.TypeDefs+    , TFilter+    , TSFilter+    , satisfies++    -- * Filter+    , none		-- simple filter+    , this++    , isOf+    , isOfNode		-- predicate filter++    , mkNTree		-- contructor filter++    , replaceNode	-- simple editing+    , replaceChildren++    , modifyNode+    , modifyNode0+    , modifyChildren+    , substChildren+    , processChildren	-- filter combinators++    , o+    , (.>)+    , seqF+    , (..>)+    , (+++)+    , cat++    , orElse		-- choices+    , iff		-- if then else filter+    , choice+    , IfThen(..)+    , when+    , whenNot+    , guards+    , neg		-- negation+    , containing	-- previous: with, but with is keyword in haskell extensions+    , notContaining	-- previous: without++    , (/>)		-- selectors+    , (</)+    , deep		-- recursive search+    , deepest+    , multi+    , processBottomUp	-- recursive editing+    , processBottomUpIfNot+    , processTopDown+    , processTopDownUntil+    , insertChildrenAt+    , insertChildrenAfter++      -- * Monadic Filter+    , thisM		-- monadic filter+    , noneM+    , (.>>)		-- monadic composition+    , seqM		-- generalisation of .>>+    , (+++>>)		-- monadic parallel combination, monadic ++++    , catM		-- monadic form of cat+    , ifM		-- monadic if then else+    , choiceM		-- monadic choice+    , whenM		-- special monadic ifs+    , whenNotM+    , guardsM+    , containingM+    , processChildrenM	-- monadic versions of recursive editing+    , processTopDownM+    , processBottomUpM+    , liftMf		-- lift a normal filter to a monadic filter+    , ($$)		-- apply a filter to a list+    , ($$<)		-- apply a monad filter to a list+    , performAction	-- run a command within a filter+    )++where+++import Data.Tree.NTree.TypeDefs++infixl 6 `containing`, `notContaining`, `containingM`+infixr 5 `o`, +++, +++>>+infixl 5 />, </, `orElse`, .>, ..>, .>>+infixr 4 `when`, `whenNot`, `guards`, `whenM`, `whenNotM`, `guardsM`+infixr 3 :->+infixr 0 $$, $$<++-- |+-- tree filter type: a function mapping a tree onto a list of trees+--+-- filter can be used in various ways, as predicates, selectors, transformers, ...++type TFilter  node	= NTree  node -> NTrees node++-- |+-- a filter for sequences++type TSFilter node	= NTrees node -> NTrees node++-- ------------------------------------------------------------++-- |+-- satisfies converts a result of a predicate filter into a boolean+--+-- is a shortcut for not . null+--+-- typical use in guards or ifs: @if (satisfies f) t then ... else ... @+--+--    * 1.parameter f :  the predicate filter+--+--    - 2.parameter t :  the tree to be tested+--+--    - returns : @b = not (null (f t))@++satisfies	:: (a -> [b]) -> a -> Bool+satisfies f	= not . null . f++-- ------------------------------------------------------------+--+-- simple filter++-- |+-- the null filter, returns the empty list++none		:: a -> [b]+none _		= []++-- |+-- the unit filter, returns the single element list containing the argument++this		:: a -> [a]+this n		= [n]++-- ------------------------------------------------------------+--+-- selecting filter++-- |+-- conversion from predicate function to filter+--+--    * 1.parameter p :  the predicate for testing the tree+--+--    - returns : 'this' or 'none' depending on the predicate++isOf		:: (a -> Bool) -> (a -> [a])+isOf p t+    = if p t then [t] else []++-- |+-- select filter, selects trees with node values with a specific property+--+--    * 1.parameter p :  the predicate for testing the node value+--+--    - returns : @[]@ or @[t]@ depending on @p t@+--+-- a special case of 'isOf' filter++isOfNode	:: (node -> Bool) -> TFilter node+isOfNode p	= isOf (p . getNode)++-- ------------------------------------------------------------+--+-- simple editing filters++-- |+-- filter for substituting an arbitray tree by a constant+--+--    * 1.parameter t :  the result tree, the input tree is ignored+--+--    - returns : the filter++mkNTree		:: NTree node -> TFilter node+mkNTree t	= const [t]++-- |+-- filter for replacing the node+--+--    * 1.parameter n :  the new node+--+--    - returns : the editing filter++replaceNode	:: node -> TFilter node+replaceNode n (NTree _ cs)+    = [NTree n cs]++-- |+-- filter for replacing the children+--+--    * 1.parameter cs :  cs the list of children+--+--    - returns : the filter++replaceChildren	:: NTrees node -> TFilter node+replaceChildren cs (NTree n _)+    = [NTree n cs]++modifyNode	:: (node -> Maybe node) -> TFilter node+modifyNode tf (NTree n cs)+    = maybe [] (\ n' -> [NTree n' cs]) (tf n)++-- |+-- filter for editing the node+--+--    * 1.parameter nf :  the XNode editing funtion+--+--    - returns : the filter++modifyNode0	:: (node -> node) -> TFilter node+modifyNode0 tf	= modifyNode (Just . tf)++-- |+-- filter for editing the children+--+-- all children are processed with a filter mapping lists to lists,+-- this enables not only elementwise editing by lifting a normal+-- filter to a list filter with @(f $$)@ (see '($$)') but also manipulation+-- of the order of the elements, e.g. "reverse" is an appropriate childen+-- editing function.+--+--    * 1.parameter csf :  the children editing function+--+--    - returns : the filter+--+-- see also : 'processChildren'++modifyChildren	:: TSFilter node -> TFilter node+modifyChildren f -- (NTree n cs)+    -- = [NTree n (f cs)]+    = substChildren (f . getChildren)++-- |+-- filter for substituting the children of a tree by+-- a new list of childen computed by applying a filter to the input tree.+-- 'modifyChildren' can be expressed by 'substChildren':+-- @modifyChildren f t@ is equal to @substChildren (f . getChildren)@++substChildren	:: TFilter node -> TFilter node+substChildren f t@(NTree n _cs)+    = [NTree n (f t)]++-- ------------------------------------------------------------+--+-- combinators (copied from HaXml)+--++-- |+-- sequential composition of filters, usually written in infix notation f2 `o` f1.+--+-- for predicate filter the logical AND+--+--    * 1.parameter f2 :  the 2. filter+--+--    - 2.parameter f1 :  the 1. filter+--+--    - returns : the fiter applying first f1 to n and then f2 to the result (like function composition)++o		:: (a -> [b]) -> (c -> [a]) -> (c -> [b])+f `o` g		= concatMap f . g++-- |+-- pronounced \"followed by\", defined as: @f .> g = g \`o\` f@.+--+-- allows filter composition in a more readable way from left to right+--+--    * 1.parameter f1 :  the 1. filter+--+--    - 2.parameter f2 :  the 2. filter+--+--    - returns : the composition of f1 and f2+--+-- see also : 'o', '(..>)'++(.>)		:: (a -> [b]) -> (b -> [c]) -> (a -> [c])+f .> g		= g `o` f++-- |+-- apply a list of filters sequentially with '(.>)', for predicate filters the generalized AND+--+-- see also : '(.>)'++seqF		:: [a -> [a]] -> (a -> [a])+seqF		= foldl (.>) this++-- |+-- binary parallel composition, the logical OR for predicate filter+--+--    * 1.parameter f1 :  the 1. filter+--+--    - 2.parameter f2 :  the 2. filter+--+--    - returns : the filter for applying f1 and f2 both to an argument tree and concatenating the results++(+++)		:: (a -> [b]) -> (a -> [b]) -> (a -> [b])+f +++ g		= \ t -> f t ++ g t++-- |+-- special sequential composition.+--+-- filter f is applied to an argument t.+-- then filter g is applied to all elements of the result list,+-- but the argument t is also passed as extra parameter to g.+--+-- This allows for step by step transformations of a tree+-- with access to the original tree in every+-- transformation step.+--+-- see also : '(.>)', 'o'++(..>)		:: (a -> [b]) -> (a -> b -> [d]) -> (a -> [d])+f ..> g		= \ t -> (g t `o` f) t++-- |+-- apply a list of filters, a \"union\" for lists, for predicate filters the generalized OR+--+--    * 1.parameter fs :  the list of filters+--+--    - returns : the composing filter++cat		:: [a -> [b]] -> (a -> [b])+cat fs  t+    = concat [ f t | f <- fs ]++-- |+-- Filter for editing the children of a tree element wise+--+--    * 1.parameter cf :  the filter applied to the children+--+--    - returns : the editing filter+--+-- see also : 'modifyChildren'++processChildren	:: TFilter node -> TFilter node+processChildren ft (NTree n cs)+    = [NTree n (ft $$ cs)]++-- |+-- infix operator for applying a filter to a list of trees+--+--    * 1.parameter f :  the filter+--+--    - 2.parameter ts :  the list of trees+--+--    - returns : the concatenated list of results++($$)		:: (a -> [b]) -> [a] -> [b]+f $$ l+    = concatMap f l++-- ------------------------------------------------------------+--+-- choices+--++-- |+-- directional choice, usually written in infix notation as f `orElse` g+--+--    * 1.parameter f :  the 1. filter+--+--    - 2.parameter g :  the 2. filter+--+--    - 3.parameter t :  the tree+--+--    - returns : the filter, that applies f to t, if the result is not the empty list, the result is found, else g t is the result++orElse		:: (a -> [b]) -> (a -> [b]) -> (a -> [b])+f `orElse` g+    = \ t-> let+	    res = f t+	    in+	    if null res+	    then g t+	    else res++-- |+-- if then else lifted to filters+--+--    * 1.parameter p :  the predicate filter+--+--    - 2.parameter t :  the \"then\" filter+--+--    - 3.parameter e :  the \"else\" filter+--+--    - returns : the resulting conditional filter++iff		:: (a -> [c]) -> (a -> [b]) -> (a -> [b]) -> (a -> [b])+iff p f g	= \ c -> if (satisfies p) c then f c else g c++-- |+-- when the predicate p holds, f is applied, else the identity filter this+--+--    * 1.parameter f :  the conditinally applied filter+--+--    - 2.parameter p :  the predicate+--+--    - returns : the conditional filter+--+-- see also : 'iff', 'whenNot', 'guards', 'whenM'++when		:: (a -> [a]) -> (a -> [a]) -> (a -> [a])+f `when` g	= iff g f this++-- |+-- the complementary filter of when+--+-- shortcut for f `when` neg g+--+-- see also : 'iff', 'when', 'whenNotM', 'neg'++whenNot		:: (a -> [a]) -> (a -> [a]) -> (a -> [a])+f `whenNot` g	= iff g this f++-- |+-- when the predicate p holds, f is applied, else the null filter none+--+--    * 1.parameter p :  the predicate filter+--+--    - 2.parameter f :  the conditionally applied filter+--+--    - returns : the conditional filter+--+-- see also : 'iff', 'when', 'guardsM'++guards		:: (a -> [b]) -> (a -> [b]) -> (a -> [b])+g `guards` f	= iff g f none+++-- |+-- negation lifted to filters+--+--    * 1.parameter f :  the predicate filter+--+--    - returns : the filter, that succeeds, when f failed++neg		:: (a -> [c]) -> a -> [a]+neg f		= iff f none this++-- |+-- auxiliary datatype for cases within choice filter++data IfThen a b = a :-> b++-- |+-- multiway branch. The list of cases @f :-> g@ is processed sequentially,+-- in the first case for that f holds g is applied, if no case matches, 'none' is+-- applied.+-- This filter can be used like a case expression: @choice [ p1 :-> f1, p2 :-> f2, ... , this :-> defaultFilter]@+--+-- see also : 'iff', 'choiceM'++choice	:: [IfThen (a -> [c]) (a -> [b])] -> (a -> [b])+choice []+    = none++choice ((g :-> f) : cs)+    = iff g f (choice cs)++-- |+-- pruning: keep only those results from f for which g holds, usually written in infix notation as f `containing` g+--+--    * 1.parameter f :  the processing filter+--+--    - 2.parameter g :  the predicate filter+--+--    - 3.parameter t :  the tree+--+--    - returns : all trees r from f t, for which g r holds (is not the empty list)+--+-- see also : 'notContaining'++containing		:: (a -> [b]) -> (b -> [c]) -> a -> [b]+f `containing` g+    = filter (satisfies g) . f++-- |+-- pruning: keep only those results from f for which g does not hold+--+-- see also : 'containing'++notContaining		:: (a -> [b]) -> (b -> [c]) -> a -> [b]+f `notContaining` g+    = filter (null . g) . f++-- |+-- pruning: monadic version of containing, usually written in infix notation as f `containingM` g+--+--    * 1.parameter f :  the monadic processing filter+--+--    - 2.parameter g :  the predicate filter+--+--    - 3.parameter t :  the tree+--+--    - returns : all trees r from f t, for which g r holds (is not the empty list)+--+-- see also : 'notContaining'++containingM		:: Monad m => (a -> m [b]) -> (b -> [c]) -> a -> m [b]+f `containingM` g+    = \ t -> do+             res <- f t+             return $ filter (satisfies g) res++-- |+-- pronounced \"slash\", meaning g inside f++(/>)		:: TFilter node -> TFilter node -> TFilter node+f /> g+    = g `o` getChildren `o` f++-- |+-- pronounced \"outside\" meaning f containing g++(</)		:: TFilter node -> TFilter node -> TFilter node+f </ g+    = f `containing` (g `o` getChildren)++-- ------------------------------------------------------------+--+-- recursive search filters++-- |+-- top down search.+--+-- search terminates, when filter f succeeds+-- can e.g. be used for finding all outermost tag node of a specific kind++deep		:: TFilter node -> TFilter node+deep f+    = f `orElse` (deep f `o` getChildren)++-- |+-- bottom up search.+--+-- first the children are processed,+-- if this does not succeed, the node itself is processed+-- can e.g. be used for finding all innermost tag nodes of a specific kind++deepest		:: TFilter node -> TFilter node+deepest f+    = (getChildren .> deepest f) `orElse` f++-- |+-- process all nodes of the whole tree.+--+-- can e.g. be used for finding all nodes of a specific kind++multi		:: TFilter node -> TFilter node+multi f+    = f +++ (getChildren .> multi f)++-- ------------------------------------------------------------+--+-- recursive transformation filters+--++-- |+-- bottom up transformation+--+--    * 1.parameter f :  the /simple/ transforming filter+--+--    - returns : the filter that applies f to all subtrees and the tree itself in a deepth first left to right manner+--+-- see also : 'processTopDown', 'processBottomUpIfNot'++processBottomUp	:: TFilter node -> TFilter node+processBottomUp f+    = processChildren (processBottomUp f) .> f++-- |+-- top down transformation+--+--    * 1.parameter f :  the /simple/ transforming filter+--+--    - returns : the filter that applies f first to the tree and then recursively to all subtrees of the result+--+-- see also : 'processBottomUp'++processTopDown	:: TFilter node -> TFilter node+processTopDown f+    = f .> processChildren (processTopDown f)++-- |+-- guarded bottom up transformation, stops at subtrees for which a predicate p holds+--+--    * 1.parameter f :  the transforming filter+--+--    - 2.parameter p :  the predicate filter for the guard+--+--    - returns : the filter for processing all (sub-)trees+--+-- see also : 'processBottomUp'++processBottomUpIfNot	:: TFilter node -> TFilter node -> TFilter node+processBottomUpIfNot f p+    = (processChildren (processBottomUpIfNot f p) .> f) `whenNot` p++-- |+-- top down transformation until a node to be transformed is found+--+--    * 1.parameter f :  the /simple/ transforming filter+--+--    - returns : the filter that applies f first to the tree and, if the filter does not succeed,+--		  recursively to all children of the input tree.+--+-- Example:+--+-- @processTopDownUntil none@+--+-- is the identity filter (maybe a bit more inefficient).+--+-- Example:+--+-- @processTopDownUntil (add1Attr \"border\" \"2\" \`containing\` isTag \"table\")@+--+-- is a filter for adding an attribute border=\"2\" in all top level table tags.+--		  The content of table tags will remain unchanged.+--+-- see also : 'processTopDown', 'processBottomUp'++processTopDownUntil	:: TFilter node -> TFilter node+processTopDownUntil f t+    | null res+	= processChildren (processTopDownUntil f) t+    | otherwise+	= res+    where+    res = f t++-- ------------------------------------------------------------+--++-- |+-- insertion of trees into the list of children at a given position+--+-- useful for inserting something into the list of children at a given position+-- the list of children is split with the @splitAt@ function+-- the nodes are inserted between these two sublists.+--+-- examples: @insertChildrenAt 0 ins t@ inserts all elements computed with @ins t@ in front+-- of the childen of @t@, @insertChildrenAt 1 ins t@ behind the first child+--+-- see also: 'insertChildrenAfter'+++insertChildrenAt	:: Int -> TFilter node -> TFilter node+insertChildrenAt i ins t+    = replaceChildren (cl1 ++ ins t ++ cl2) t+    where+    (cl1, cl2) = splitAt i $ getChildren t++-- |+-- insertion of trees into the list of children after specific elements+--+-- useful for inserting something into the list of children of a node+-- the list of children is split with the @span@ function and the filter p as predicate+-- the nodes are inserted between these two sublists+--+-- examples: @insertChildrenAfter none ins t@ inserts all elements computed with @ins t@ in front+-- of the childen of @t@, @insertChildrenAfter this ins t@ appends the elements to the children+--+-- see also: 'insertChildrenAt'++insertChildrenAfter	:: TFilter node -> TFilter node -> TFilter node+insertChildrenAfter p ins t+    = replaceChildren (cl1 ++ ins t ++ cl2) t+    where+    (cl1, cl2) = span (not . null . p) $ getChildren t++-- ------------------------------------------------------------+--+-- monadic filter++-- |+-- the monadic version of the identity filter this.+--+-- see also : 'this'++thisM		:: Monad m => (a -> m [a])+thisM		= liftMf this++-- |+-- the monadic version of the null filter none.+--+-- see also : 'none'++noneM		:: Monad m => (a -> m [b])+noneM		= liftMf none++-- |+-- sequential composition of monadic filters, monadic version of \".>\".+--+--    * 1.parameter f1 :  the 1. monadic filter+--+--    - 2.parameter f2 :  the 2. monadic filter+--+--    - returns : the monadic fiter applying first f1 to n and then f2 to the result (like function composition)+--+-- see also : '(.>)'++(.>>)	:: Monad m => (a -> m[b]) -> (b -> m [c]) -> (a -> m[c])+cmd1 .>> cmd2+    = \ t ->+      do+      r1 <- cmd1 t+      r2 <- mapM cmd2 r1+      return (concat r2)++-- |+-- generalized sequential composition of monadic filters++seqM	:: Monad m => [a -> m[a]] -> (a -> m[a])+seqM+    = foldr (.>>) thisM++-- |+-- binary parallel composition, the logical OR for predicate filter+--+--    * 1.parameter f1 :  the 1. filter+--+--    - 2.parameter f2 :  the 2. filter+--+--    - returns : the filter for applying f1 and f2 both to an argument tree and concatenating the results+-- see also: 'cat', '+++', 'catM'++(+++>>)		:: Monad m => (a -> m [b]) -> (a -> m [b]) -> (a -> m [b])+f +++>> g	= \ t -> do+			 r1 <- f t+			 r2 <- g t+			 return (r1 ++ r2)++-- |+-- apply a list of monadic filters+--+--    * 1.parameter fs :  the list of filters+--+--    - returns : the composing filter+-- see also: 'cat', '+++', '+++>>'++catM	:: Monad m => [a -> m [b]] -> (a -> m [b])+catM fs  t+    = do+      res <- sequence (map ($ t) fs)+      return $ concat res++-- |+-- monadic if-then-else.+--+--    * 1.parameter p :  the predicate+--+--    - 2.parameter thenP :  the then part: the monadic filter, that is applied if p holds for the input tree+--+--    - 3.parameter elseP :  the else part+--+--    - returns : the monadic filter for the conditional++ifM		:: Monad m => (a -> [b]) -> (a -> m [c]) -> (a -> m [c]) -> (a -> m [c])+ifM p thenPart elsePart+    = \ t ->+      if (satisfies p) t+      then thenPart t+      else elsePart t++-- |+-- monadic version of multiway branch. The list of cases @f :-> g@ is processed sequentially,+-- in the first case for that f holds g is applied, if no case matches, 'noneM' is+-- applied.+-- This filter can be used like a case expression: @choiceM [ p1 :-> f1, p2 :-> f2, ... , thisM :-> defaultFilter]@+--+-- see also : 'choice', 'ifM'++choiceM		:: Monad m => [IfThen (a -> [c]) (a -> m [b])] -> (a -> m [b])+choiceM []+    = noneM++choiceM ((g :-> f) : cs)+    = ifM g f (choiceM cs)+++-- |+-- when the predicate p holds, the monadic filter f is applied, else the identity filter.+--+--    * 1.parameter f :  the conditinally applied monadic filter+--+--    - 2.parameter p :  the simple predicate+--+--    - returns : the conditional filter+--+-- see also : 'ifM', 'when', 'guardsM', 'whenNotM'++whenM		:: Monad m => (a -> m [a]) -> (a -> [b]) -> (a -> m [a])+f `whenM` g	= ifM g f thisM++-- |+-- the complementary filter of whenM.+--+-- see also : 'ifM', 'whenM', 'whenNot'++whenNotM	:: Monad m => (a -> m [a]) -> (a -> [b]) -> (a -> m [a])+f `whenNotM` g	= ifM g thisM f++-- |+-- when the predicate p holds, the monadic filter f is applied, else the null filter.+--+--    * 1.parameter p :  the simple predicate filter+--+--    - 2.parameter f :  the conditionally applied monadic filter+--+--    - returns : the conditional filter+--+-- see also : 'ifM', 'guards', 'whenM'++guardsM		:: Monad m => (a -> [b]) -> (a -> m [c]) -> (a -> m [c])+g `guardsM` f	= ifM g f noneM++-- |+-- Filter for editing the children of a tree with a monadic filter+--+--    * 1.parameter cf :  the monadic filter applied to the children+--+--    - returns : the monadic editing filter+--+-- see also : 'processChildren'++processChildrenM	:: Monad m => (NTree node -> m [NTree node]) -> (NTree node -> m [NTree node])+processChildrenM ft (NTree n cs)+    = do+      res <- ft $$< cs+      return [NTree n res]++-- |+-- monadic variant of 'processTopDown'++processTopDownM		:: Monad m => (NTree node -> m [NTree node]) -> (NTree node -> m [NTree node])+processTopDownM f+    = f .>> processChildrenM (processTopDownM f)++-- |+-- monadic variant of 'processBottomUp'++processBottomUpM	:: Monad m => (NTree node -> m [NTree node]) -> (NTree node -> m [NTree node])+processBottomUpM f+    = processChildrenM (processBottomUpM f) .>> f++-- |+-- infix operator for applying a monadic filter to a list of trees,+-- typically used in do-notation for processing of intermediate results.+--+--    * 1.parameter f :  the monadic filter+--+--    - 2.parameter ts :  the list of trees+--+--    - returns : the concatenated list of results+--+-- see also : '($$)'++($$<)	:: Monad m => (a -> m [b]) -> [a] -> m [b]+cmd $$< l+    = do+      r <- mapM cmd l+      return (concat r)++-- |+-- lift a filter to a monadic filter+--+--    * 1.parameter f :  the /simple/ filter+--+--    - returns : the lifted monadic version++liftMf	:: Monad m => (a -> [b]) -> a -> m [b]+liftMf f t+    = return (f t)++-- |+-- run an arbitray command on a tree t and return the tree,+-- used for inserting arbitray commands in a filter pipeline+--+--    * 1.parameter cmd :  the command+--+--    - 2.parameter t :  the argument tree+--+--    - returns : the unchanged tree as a single element list++performAction	:: Monad m => (a -> m b) -> a -> m [a]+performAction cmd t+    = do+      cmd t+      return [t]++-- eof ------------------------------------------------------------
+ src/Data/Tree/NTree/TypeDefs.hs view
@@ -0,0 +1,114 @@+-- ------------------------------------------------------------++{- |+   Module     : Data.Tree.NTree.TypeDefs+   Copyright  : Copyright (C) 2005 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: TypeDefs.hs,v 1.6 2005/09/02 17:09:39 hxml Exp $++Interface definition for trees++n-ary tree structure (rose trees)++-}++-- ------------------------------------------------------------++module Data.Tree.NTree.TypeDefs+    ( module Data.Tree.Class+    , module Data.Tree.NTree.TypeDefs+    )+where++import Control.Strategies.DeepSeq++import Data.Tree.Class+import Data.Typeable++-- | n-ary ordered tree (rose trees)+--+-- a tree consists of a node and a possible empty list of children.+-- If the list of children is empty, the node is a leaf, else it's+-- an inner node.+--+-- NTree implements Eq, Ord, Show and Read++data NTree  a	= NTree a (NTrees a)+    deriving+    (Eq, Ord, Show, Read, Typeable)++-- | shortcut for a sequence of n-ary trees++type NTrees   a	= [NTree a]++-- ------------------------------------------------------------++-- |++instance (DeepSeq a) => DeepSeq (NTree a) where+    deepSeq (NTree n cl) y		= deepSeq n $ deepSeq cl y++-- | NTree implements class Functor++instance Functor NTree where+    fmap f ~(NTree n cl)		= NTree (f n) (map (fmap f) cl)+++-- | Implementation of "Data.Tree.Class" interface for rose trees++instance Tree NTree where+    mkTree n cl				= NTree n cl++    getNode           ~(NTree n _ )	= n+    getChildren       ~(NTree _ cl)	= cl++    changeNode     cf ~(NTree n cl)	= NTree (cf n) cl+    changeChildren cf ~(NTree n cl)	= NTree n (cf cl)++    foldTree        f ~(NTree n cs)	= f n (map (foldTree f) cs)++    nodesTree		= foldTree (\ n rs -> n : concat rs)+    depthTree		= foldTree (\ _ rs -> 1 + maximum (0 : rs))+    cardTree		= foldTree (\ _ rs -> 1 + sum rs)+    formatTree nf n	= formatNTreeF nf (showString "---") (showString "   ") n ""++-- ------------------------------------------------------------+-- |+-- convert a tree into a pseudo graphical string reprsentation++formatNTreeF	:: (node -> String) -> (String -> String) -> (String -> String) -> NTree node -> String -> String++formatNTreeF node2String pf1 pf2 (NTree n l)+    = formatNode+      . formatChildren pf2 l+    where+    formatNode	= pf1 . foldr (.) id (map trNL (node2String n)) . showNL+    trNL '\n'	= showNL . pf2+    trNL c	= showChar c+    showNL	= showChar '\n'+    formatChildren _ []+	= id+    formatChildren pf (t:ts)+	| null ts+	    = pfl'+	      . formatTr pf2' t+	| otherwise+	    = pfl'+	      . formatTr pf1' t+	      . formatChildren pf ts+	where+	pf0'	= pf . showString indent1+	pf1'	= pf . showString indent2+	pf2'	= pf . showString indent3+	pfl'	= pf . showString indent4+	formatTr	= formatNTreeF node2String pf0'+	indent1 = "+---"+	indent2 = "|   "+	indent3 = "    "+	indent4 = "|\n"++-- eof ------------------------------------------------------------
+ src/HXT.hs view
@@ -0,0 +1,13 @@+-- $Id: HXT.hs,v 1.3 2005/09/02 17:09:38 hxml Exp $++module HXT {-+    ( module Text.XML.HXT.Parser+    , module Text.XML.HXT.XPath+    , module Text.XML.HXT.Arrow+    ) -}+where++import Text.XML.HXT.Parser as Parser+import Text.XML.HXT.XPath as XPath+import Text.XML.HXT.Arrow as Arrow+import Text.XML.HXT.RelaxNG as Relax
+ src/Makefile view
@@ -0,0 +1,245 @@+# ------------------------------------------------------------+#+# global names and dirs++VERSION		= 7.1+HXT_HOME	= ..+HXT_HOME_PATH	= $(shell cd $(HXT_HOME) ; pwd)+PACKAGE_DIR	= $(HXT_HOME_PATH)/lib/hxt+HDOC_DIR	= $(HXT_HOME)/doc/hdoc+HDOC_DIR_ARROW	= $(HXT_HOME)/doc/hdoc_arrow+HDOC_DIR_FILTER	= $(HXT_HOME)/doc/hdoc_filter+HDOC_FLAGS	= --source=http://darcs.fh-wedel.de/hxt/src/%F --package=hxt-$(VERSION)+IMPORT_DIR	= imports+HXT_PACKAGE	= hxt++# ------------------------------------------------------------+#+# commands++GHCFLAGS	= -Wall -O2 -fglasgow-exts -ignore-package $(HXT_PACKAGE)+GHC             = ghc $(GHCFLAGS)+GHCVERSION	=  $(shell ghc -v 2>&1 | head -n 2 | tail -n 1 | cut -d " " -f 5 | sed 's|^.*ghc-\([0-9.]*\)/package.conf|\1|')++ifeq ($(GHCVERSION),6.6)+HXT_PACKAGE_NAME=$(HXT_PACKAGE)-$(VERSION)+else+HXT_PACKAGE_NAME=$(HXT_PACKAGE)+endif+++HDOCFLAGS	= -v -h $(HDOC_FLAGS) --use-package=base+HDOC            = haddock $(HDOCFLAGS)++RM              = rm -f++all	:++packagename	:+		@echo $(HXT_PACKAGE_NAME)++# ------------------------------------------------------------+#+# protocol handler config (for removing http or popen)++./Text/XML/HXT/Parser/ProtocolHandler.hs	: ./Text/XML/HXT/ProtocolHandler/ProtocolHandler.hs+		$(MAKE) -C ./Text/XML/HXT/ProtocolHandler default_http++# ------------------------------------------------------------+#+# hxt package variables and rules++HXT_SRC		= $(wildcard ./Data/*.hs) \+		  $(wildcard ./Data/Tree/*.hs) \+		  $(wildcard ./Data/Tree/NTree/*.hs) \+		  $(wildcard ./Control/Arrow/*.hs) \+		  $(wildcard ./Control/Monad/*.hs) \+		  $(wildcard ./Control/Strategies/*.hs) \+		  $(wildcard ./System/*.hs) \+		  $(wildcard ./Text/XML/HXT/[DPX]*.hs) \+		  $(wildcard ./Text/XML/HXT/DOM/*.hs) \+		  $(wildcard ./Text/XML/HXT/Parser/*.hs) \+		  $(wildcard ./Text/XML/HXT/Validator/*.hs) \+		  $(wildcard ./Text/XML/HXT/XPath/*.hs) \+		  $(wildcard ./Text/XML/HXT/Arrow.hs) \+		  $(wildcard ./Text/XML/HXT/Arrow/[DEGNPRWX]*.hs) \+		  $(wildcard ./Text/XML/HXT/IO/*.hs) \+		  $(wildcard ./Text/XML/HXT/RelaxNG.hs) \+		  $(wildcard ./Text/XML/HXT/RelaxNG/*.hs) \+		  $(wildcard ./Text/XML/HXT/XSLT/[ACNX]*.hs)++HXT_SRC_FILTER	= $(wildcard ./Data/*.hs) \+		  $(wildcard ./Data/Tree/*.hs) \+		  $(wildcard ./Data/Tree/NTree/*.hs) \+		  $(wildcard ./Control/Monad/*.hs) \+		  $(wildcard ./Control/Strategies/*.hs) \+		  $(wildcard ./System/*.hs) \+		  $(wildcard ./Text/XML/HXT/[DPX]*.hs) \+		  $(wildcard ./Text/XML/HXT/DOM/*.hs) \+		  $(wildcard ./Text/XML/HXT/Parser/*.hs) \+		  $(wildcard ./Text/XML/HXT/Validator/*.hs) \+		  $(wildcard ./Text/XML/HXT/XPath/*.hs) \++HXT_SRC_ARROW	= $(wildcard ./Data/*.hs) \+		  $(wildcard ./Data/Tree/*.hs) \+		  $(wildcard ./Data/Tree/NTree/T*.hs) \+		  $(wildcard ./Control/Arrow/*.hs) \+		  $(wildcard ./Control/Monad/*.hs) \+		  $(wildcard ./Control/Strategies/*.hs) \+		  $(wildcard ./Text/XML/HXT/[A]*.hs) \+		  $(wildcard ./Text/XML/HXT/DOM/NamespacePredicates.hs) \+		  $(wildcard ./Text/XML/HXT/DOM/[TU]*.hs) \+		  $(wildcard ./Text/XML/HXT/DOM/XmlKeywords.hs) \+		  $(wildcard ./Text/XML/HXT/Parser/XmlOptions.hs) \+		  $(wildcard ./Text/XML/HXT/Arrow.hs) \+		  $(wildcard ./Text/XML/HXT/Arrow/[DEGNPRWX]*.hs) \+		  $(wildcard ./Text/XML/HXT/RelaxNG/[SV]*.hs) \+		  $(wildcard ./Text/XML/HXT/XSLT/[ACNX]*.hs)+++HXT_OBJ		= $(HXT_SRC:.hs=.o)+HXT_HI		= $(HXT_SRC:.hs=.hi)+HXT_DRIVER	= HXT.o+HXT_LIBA	= libHS$(HXT_PACKAGE).a+HXT_LIBO	= HS$(HXT_PACKAGE).o+HXT_LIB		= $(HXT_LIBA) $(HXT_LIBO)+HXT_REQ_PKG	= -package parsec -package HTTP++$(HXT_LIBA)	: $(HXT_SRC)+		$(GHC) -package-name $(HXT_PACKAGE_NAME) $(HXT_REQ_PKG) --make $(HXT_DRIVER:.o=.hs)+		ar crs $@ $(HXT_OBJ)+		@echo "#  please note: !! GNU ar (at least 2.15.90) does not set exit code on missing .o files !!"++$(HXT_LIBO)	: $(HXT_LIBA)+		ld -r --whole-archive -o $@ $<++# ------------------------------------------------------------+#+++PROFFLAGS	= -Wall -fglasgow-exts $(HXT_REQ_PKG) -prof -auto -ignore-package hxt -ignore-package HTTP -i../profiling++prof		:+		ghc $(PROFFLAGS) --make $(HXT_DRIVER:.o=.hs)++# ------------------------------------------------------------+#+# under construction: XSLT++XSLT_SRC	= $(wildcard ./Text/XML/HXT/XSLT/*.hs)+XSLT_DRIVER	= ./Text/XML/HXT/XSLT/XSLT.o++xslt		: $(XSLT_DRIVER)++$(XSLT_DRIVER)	: $(XSLT_SRC)+		$(GHC) -package-name $(HXT_PACKAGE) $(HXT_REQ_PKG) --make $*++# ------------------------------------------------------------++LOCAL_INSTALL_DIR	= $(PACKAGE_DIR)+LOCAL_IMPORT_DIR	= $(PACKAGE_DIR)/$(IMPORT_DIR)++PKG_LIB		= +PKG_NAME	=+PKG_HI		=++install_local_$(HXT_PACKAGE)	: $(HXT_LIB) $(HXT_PACKAGE)-package.conf+		$(MAKE) install_local_package PKG_NAME=$(HXT_PACKAGE) PKG_LIB="$(HXT_LIB)" PKG_HI="$(HXT_HI)"++install_local_package	: $(PKG_NAME)-package.conf+		[ -d $(LOCAL_INSTALL_DIR) ] || mkdir -p $(LOCAL_INSTALL_DIR)+		[ -d $(LOCAL_IMPORT_DIR)  ] || mkdir -p $(LOCAL_IMPORT_DIR)+		cp -f  $(PKG_LIB)    $(LOCAL_INSTALL_DIR)+		tar cvf - $(PKG_HI) | ( cd $(LOCAL_IMPORT_DIR) ; tar xf - )+		[ -f $(LOCAL_INSTALL_DIR)/package.conf ] || echo "[]" > $(LOCAL_INSTALL_DIR)/package.conf+		cat $(PKG_NAME)-package.conf \+		| sed 's|^version:.*$$|version: $(VERSION)|' \+		| sed 's|/usr/local/lib/hxt|$(LOCAL_INSTALL_DIR)|g' \+		| ghc-pkg --update-package --config-file $(LOCAL_INSTALL_DIR)/package.conf+		@echo use package with: ghc\(i\) ... -package-conf $(LOCAL_INSTALL_DIR)/package.conf -package $(PKG_NAME) ...+++GHC_INSTALL	= $(shell ghc -v 2>&1 | head -n 2 | tail -n 1 | cut -d " " -f 5 | sed 's|/package.conf||')+GHC_INSTALL_DIR	= $(GHC_INSTALL)/hxt+GHC_PKG_CONF	=++install		: $(HXT_PACKAGE)-package.conf+		@[ -d $(GHC_INSTALL)     ] || ( echo "ghc install dir not found"       1>&2 ; exit 1 )+		@[ -w $(GHC_INSTALL)     ] || ( echo "you need root access for this target" ; exit 1 )+		[ -d $(GHC_INSTALL_DIR) ] || mkdir -p $(GHC_INSTALL_DIR)+		cp -r $(LOCAL_INSTALL_DIR)/*.[ao] $(LOCAL_INSTALL_DIR)/imports $(GHC_INSTALL_DIR)+		$(MAKE) install_packages+		@echo+		@echo use package with: ghc\(i\) ... -package $(HXT_PACKAGE) ...++uninstall	:+		@[ -d $(GHC_INSTALL) ] || ( echo "ghc install dir not found"       1>&2 ; exit 1 )+		@[ -w $(GHC_INSTALL) ] || ( echo "you need root access for this target" ; exit 1 )+		$(MAKE) uninstall_packages+		rm -rf $(GHC_INSTALL_DIR)++# ------------------------------------------------------------++all		:+		$(MAKE) install_local_$(HXT_PACKAGE)++../hxt.cabal	: $(HXT_PACKAGE)-package.conf Makefile ../Makefile+		cat $(HXT_PACKAGE)-package.conf \+		| sed 's|^tested-with:|-- tested-with:|' \+		| sed 's|^exposed:|-- exposed:|' \+		| sed 's|^import-dirs:|-- import-dirs:|' \+		| sed 's|^library-dirs:|-- library-dirs:|' \+		| sed 's|^hs-libraries:|-- hs-libraries:|' \+		| sed 's|^depends:|build-depends:|' \+		| sed 's|^version:.*$$|version: $(VERSION)|' \+		| sed 's|^hs-source-dirs:.*$$|hs-source-dirs: src|' \+		| sed 's|/usr/local/lib/hxt|$(GHC_INSTALL_DIR)|g' \+		> $@++install_packages	:+		cat $(HXT_PACKAGE)-package.conf \+		| sed 's|^version:.*$$|version: $(VERSION)|' \+		| sed 's|/usr/local/lib/hxt|$(GHC_INSTALL_DIR)|g' \+		| ghc-pkg --update-package++uninstall_packages	:+		ghc-pkg --remove-package $(HXT_PACKAGE) || true++clean_packages	:+		$(MAKE) clean_$(HXT_PACKAGE)++doc		: $(HXT_SRC)+		[ -d $(HDOC_DIR) ] || mkdir -p $(HDOC_DIR)+		$(HDOC) -t "Haskell Xml Toolbox $(VERSION): The complete API" -o $(HDOC_DIR) $(HXT_SRC)++doc_arrow	: $(HXT_SRC_ARROW)+		[ -d $(HDOC_DIR_ARROW) ] || mkdir -p $(HDOC_DIR_ARROW)+		$(HDOC) -t "Haskell Xml Toolbox $(VERSION): The Arrow API" -o $(HDOC_DIR_ARROW) $(HXT_SRC_ARROW)++doc_filter	: $(HXT_SRC_FILTER)+		[ -d $(HDOC_DIR_FILTER) ] || mkdir -p $(HDOC_DIR_FILTER)+		$(HDOC) -t "Haskell Xml Toolbox $(VERSION): The Filter API" -o $(HDOC_DIR_FILTER) $(HXT_SRC_FILTER)++clean		:+		$(MAKE) clean_packages+		$(MAKE) -C ./Text/XML/HXT/ProtocolHandler clean+		rm -rf $(LOCAL_INSTALL_DIR)++clean_$(HXT_PACKAGE)	:+		$(RM) $(HXT_DRIVER) $(HXT_DRIVER:.o=.hi) $(HXT_OBJ) $(HXT_HI) $(HXT_LIB)++# ------------------------------------------------------------++DIST		= $(HXT_HOME)/dist+DIST_DIR	= $(DIST)/src+DIST_FILES	= Makefile \+		  $(HXT_SRC) $(HXT_DRIVER:.o=.hs) $(HXT_PACKAGE)-package.conf \+		  ./Text/XML/HXT/ProtocolHandler/ProtocolHandler.hs ./Text/XML/HXT/ProtocolHandler/Makefile++dist		:+		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)+		tar cvf - $(DIST_FILES) | ( cd $(DIST_DIR) ; tar xf - )++.PHONY		: all install doc clean dist++# eof ------------------------------------------------------------
+ src/System/PipeOpen.hs view
@@ -0,0 +1,60 @@+-- ------------------------------------------------------------++{- |+   Module     : System.PipeOpen+   Copyright  : Copyright (C) 2005 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: none portable+   Version    : $Id: PipeOpen.hs,v 1.2 2005/09/02 17:09:39 hxml Exp $++pipe open implemented with System.Process functions++-}++-- ------------------------------------------------------------++module System.PipeOpen+    ( popen )+where++import IO+    ( hGetContents+    , hClose+    )++import System.Exit+    ( ExitCode(..)+    )++import System.Process+    ( runInteractiveProcess+    , waitForProcess+    )++-- | call an external program with a list of command line arguments+-- and return content of stdout, content of stderr and return code++popen	:: String -> [String] -> IO (String, String, Int)+popen prg argl+    = do+      (inpH, outH, errH, pH) <- runInteractiveProcess prg argl Nothing Nothing+      hClose inpH+      res  <- hGetContents outH+      errs <- hGetContents errH++      -- hack: stdout and stderr must be read completely, otherwise waitForProcess blocks+      if (length res  == 0) then return () else return ()+      if (length errs == 0) then return () else return ()++      rc <- waitForProcess pH+      return ( res+	     , errs+	     , case rc of+	       ExitSuccess -> 0+	       ExitFailure i -> i+	     )++-- eof ------------------------------------------------------------
+ src/Text/XML/HXT/Arrow.hs view
@@ -0,0 +1,63 @@+-- ------------------------------------------------------------++{- |+   Module     : Text.XML.HXT.Arrow+   Copyright  : Copyright (C) 2006 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: Arrow.hs,v 1.12 2006/11/11 15:36:04 hxml Exp $++   The HXT arrow interface++   The application programming interface to the arrow modules of the Haskell XML Toolbox.+   This module exports all important arrows for input, output, parsing, validating and transforming XML.+   It also exports all basic datatypes and functions of the toolbox.++-}++-- ------------------------------------------------------------++module Text.XML.HXT.Arrow+    ( module Control.Arrow.ListArrows++    , module Text.XML.HXT.Arrow.DOMInterface++    , module Text.XML.HXT.Arrow.XmlArrow+    , module Text.XML.HXT.Arrow.XmlIOStateArrow+    , module Text.XML.HXT.Arrow.XmlNodeSet++    , module Text.XML.HXT.Arrow.DocumentInput+    , module Text.XML.HXT.Arrow.DocumentOutput+    , module Text.XML.HXT.Arrow.Edit+    , module Text.XML.HXT.Arrow.GeneralEntitySubstitution+    , module Text.XML.HXT.Arrow.Namespace+    , module Text.XML.HXT.Arrow.ProcessDocument+    , module Text.XML.HXT.Arrow.ReadDocument+    , module Text.XML.HXT.Arrow.WriteDocument++    , module Text.XML.HXT.XSLT.XsltArrows+    )+where++import Control.Arrow.ListArrows			-- arrow classes++import Text.XML.HXT.Arrow.DOMInterface++import Text.XML.HXT.Arrow.XmlArrow+import Text.XML.HXT.Arrow.XmlIOStateArrow+import Text.XML.HXT.Arrow.XmlNodeSet+import Text.XML.HXT.Arrow.Edit+import Text.XML.HXT.Arrow.GeneralEntitySubstitution+import Text.XML.HXT.Arrow.Namespace+import Text.XML.HXT.Arrow.DocumentInput+import Text.XML.HXT.Arrow.DocumentOutput+import Text.XML.HXT.Arrow.ProcessDocument+import Text.XML.HXT.Arrow.ReadDocument+import Text.XML.HXT.Arrow.WriteDocument++import Text.XML.HXT.XSLT.XsltArrows++-- ------------------------------------------------------------
+ src/Text/XML/HXT/Arrow/DOMInterface.hs view
@@ -0,0 +1,24 @@+-- |+-- The interface to the DOM data types and constants+--+-- Version : $Id: DOMInterface.hs,v 1.2 2006/11/09 20:27:42 hxml Exp $+--+++module Text.XML.HXT.Arrow.DOMInterface+    ( module Text.XML.HXT.DOM.XmlKeywords+    , module Text.XML.HXT.DOM.TypeDefs+    , module Text.XML.HXT.DOM.NamespacePredicates+    , module Text.XML.HXT.DOM.Util+    , module Text.XML.HXT.DOM.XmlOptions+    )+where++import Text.XML.HXT.DOM.XmlKeywords		-- constants+import Text.XML.HXT.DOM.TypeDefs		-- XML Tree types+import Text.XML.HXT.DOM.NamespacePredicates+import Text.XML.HXT.DOM.Util+import Text.XML.HXT.DOM.XmlOptions		-- predefined options+++-- ------------------------------------------------------------
+ src/Text/XML/HXT/Arrow/DTDProcessing.hs view
@@ -0,0 +1,513 @@+-- ------------------------------------------------------------++{- |+   Module     : Text.XML.HXT.Arrow.DTDProcessing+   Copyright  : Copyright (C) 2005 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: DTDProcessing.hs,v 1.9 2006/05/11 14:47:19 hxml Exp $++   DTD processing function for+   including external parts of a DTD+   parameter entity substitution and general entity substitution++   Implemtation completely done with arrows++-}++-- ------------------------------------------------------------++module Text.XML.HXT.Arrow.DTDProcessing+    ( processDTD+    )+where++import Control.Arrow				-- arrow classes+import Control.Arrow.ArrowList+import Control.Arrow.ArrowIf+import Control.Arrow.ArrowTree++import qualified Text.XML.HXT.Arrow.XmlNode as XN++import Text.XML.HXT.Arrow.DOMInterface+import Text.XML.HXT.Arrow.XmlArrow+import Text.XML.HXT.Arrow.XmlIOStateArrow++import Text.XML.HXT.Arrow.ParserInterface+    ( parseXmlDTDdecl+    , parseXmlDTDdeclPart+    , parseXmlDTDEntityValue+    , parseXmlDTDPart+    )++import Text.XML.HXT.Arrow.Edit+    ( transfCharRef+    )++import Text.XML.HXT.Arrow.DocumentInput+    ( getXmlEntityContents+    )++import Data.Maybe++import qualified Data.Map as M+    ( Map+    , empty+    , lookup+    , insert+    )++-- ------------------------------------------------------------+--++data DTDPart		= Internal+			| External+			  deriving (Eq)++type RecList		= [String]++type DTDStateArrow b c	= IOStateArrow PEEnv b c++-- ------------------------------------------------------------++newtype PEEnv		= PEEnv (M.Map String XmlTree)++emptyPeEnv	:: PEEnv+emptyPeEnv	= PEEnv M.empty++lookupPeEnv	:: String -> PEEnv -> Maybe XmlTree+lookupPeEnv k (PEEnv env)+    = M.lookup k env++addPeEntry	:: String -> XmlTree -> PEEnv -> PEEnv+addPeEntry k a (PEEnv env)+    = PEEnv $ M.insert k a env++getPeValue	:: DTDStateArrow String XmlTree+getPeValue+    = (this &&& getUserState)+      >>>+      arrL (\ (n, env) -> maybeToList . lookupPeEnv n $ env)++addPe		:: String -> DTDStateArrow XmlTree XmlTree+addPe n+    = traceMsg 2 ("substParamEntity: add entity " ++ show n ++ " to env")+      >>>+      changeUserState ins+    where+    ins t peEnv = addPeEntry n t peEnv++-- ------------------------------------------------------------++-- |+-- a filter for DTD processing+--+-- inclusion of external parts of DTD,+-- parameter entity substitution+-- conditional section evaluation+--+-- input tree must represent a complete document including root node++processDTD		:: IOStateArrow s XmlTree XmlTree+processDTD+    = runInLocalURIContext+         ( processRoot+	   >>>+	   traceTree+	   >>>+	   traceSource+	 )+      `when` ( isRoot >>> getChildren )+      where++      processRoot	:: IOStateArrow s XmlTree XmlTree+      processRoot+	  = ( traceMsg 1 ("processDTD: process parameter enitities")+	      >>>+	      setParamString a_standalone ""+	      >>>+	      ( addDocType+		`whenNot`+		( getChildren >>> isDTDDoctype )+	      )+	      >>>+	      processChildren substParamEntities+	      >>>+	      setDocumentStatusFromSystemState "in XML DTD processing"+	    )+            `when`+	    documentStatusOk+	  where+	  addDocType+	      = replaceChildren ( (getChildren >>> isXmlPi)+				  <+>+				  mkDTDDoctype [] none+				  <+>+				  (getChildren >>> neg isXmlPi)+				)++substParamEntities	:: IOStateArrow s XmlTree XmlTree+substParamEntities+    = withOtherUserState emptyPeEnv processParamEntities+      `when`+      isDTDDoctype+      where++      processParamEntities	:: DTDStateArrow XmlTree XmlTree+      processParamEntities+	  = mergeEntities $<<< ( listA processPredef+				 &&&+				 listA processInt+				 &&&+				 listA (runInLocalURIContext processExt)+			       )+	  where+	  mergeEntities dtdPre dtdInt dtdExt+	      =  replaceChildren (arrL $ const $ foldl1 mergeDTDs [dtdPre, dtdInt, dtdExt])++	  processPredef+	      = predefDTDPart   >>> substParamEntity Internal []++	  processInt+	      = getChildren     >>> substParamEntity Internal []++	  processExt+	      = externalDTDPart >>> substParamEntity External []++	  mergeDTDs	:: XmlTrees -> XmlTrees -> XmlTrees+	  mergeDTDs dtdInt dtdExt+	      = dtdInt ++ (filter (filterDTDNodes dtdInt) dtdExt)++	  filterDTDNodes	:: XmlTrees -> XmlTree -> Bool+	  filterDTDNodes dtdPart t+	      = not (any (filterDTDNode t) dtdPart)++	  filterDTDNode	:: XmlTree -> XmlTree -> Bool++	  filterDTDNode	t1 t2+	      = fromMaybe False $+	        do+		dp1 <- XN.getDTDPart t1+		dp2 <- XN.getDTDPart t2+		al1 <- XN.getDTDAttrl t1+		al2 <- XN.getDTDAttrl t2+		return ( dp1 == dp2+			 &&+			 ( dp1 `elem` [ELEMENT, NOTATION, ENTITY, ATTLIST] )+			 &&+			 ( lookup a_name al1 == lookup a_name al2 )+			 &&+			 ( dp1 /= ATTLIST+			   ||+			   lookup a_value al1 == lookup a_value al2+			 )+		       )++substParamEntity	:: DTDPart -> RecList -> DTDStateArrow XmlTree XmlTree+substParamEntity loc recList+    = choiceA+      [ isDTDEntity	:-> ( traceDTD "ENTITY declaration before DTD declaration parsing"+			      >>>+			      processChildren (substPeRefsInDTDdecl recList)+			      >>>+			      parseXmlDTDdecl+			      >>>+			      substRefsInEntityValue+			      >>>+			      processEntityDecl+			      >>>+			      traceDTD "ENTITY declaration after DTD declaration parsing"+			    )+      , ( isDTDElement+	  <+>+	  isDTDAttlist+	  <+>+	  isDTDNotation+	)		:-> ( traceDTD "DTD declaration before PE substitution"+			      >>>+			      processChildren (substPeRefsInDTDdecl recList)+			      >>>+			      parseXmlDTDdecl+			      >>>+			      traceDTD "DTD declaration after DTD declaration parsing"+			    )+      , isDTDPERef	:-> substPeRefsInDTDpart recList++      , isDTDCondSect	:-> ( if loc == Internal+			      then issueErr "conditional sections in internal part of the DTD is not allowed"+			      else evalCondSect $< getDTDAttrValue a_value+			    )+      , isCmt		:-> none+      , this		:-> this+      ]+    where+    processEntityDecl		:: DTDStateArrow XmlTree XmlTree+    processEntityDecl+	= choiceA+	  [ isDTDEntity	:-> ( ifA (hasDTDAttr k_system)+			      processExternalEntity+			      processInternalEntity+			    )+	  , isDTDPEntity+			:-> ( processParamEntity $< getDTDAttrValue a_name )+	  , this	:-> none+	  ]+	where+	processExternalEntity	:: DTDStateArrow XmlTree XmlTree	-- processing external entities is delayed until first usage+	processExternalEntity						-- only the current base uri must be remembered+	    = setDTDAttrValue a_url $< ( getDTDAttrValue k_system >>> mkAbsURI )++	processInternalEntity	:: DTDStateArrow XmlTree XmlTree	-- just combine all parts of the entity value+	processInternalEntity						-- into one string+	    = replaceChildren (xshow getChildren >>> mkText)++	processParamEntity	:: String -> DTDStateArrow XmlTree XmlTree+	processParamEntity peName+	    = ifA (constA peName >>> getPeValue)+	      ( issueWarn ("parameter entity " ++ show peName ++ " already defined") )+	      ( ( ifA ( hasDTDAttr k_system )				-- is external param entity ?+		  ( runInLocalURIContext getExternalParamEntityValue )+		  ( replaceChildren (xshow getChildren >>> mkText) )	-- just combine all parts of the entity value into one string+		)+                >>>+                addPe peName+	      )++    substPERef			:: String -> DTDStateArrow XmlTree XmlTree+    substPERef pn+	= choiceA+	  [ isInternalRef	:-> issueErr ("a parameter entity reference of " ++ show pn ++ " occurs in the internal subset of the DTD")+	  , isUndefinedRef	:-> issueErr ("parameter entity " ++ show pn ++ " not found (forward reference?)")+	  , this		:-> substPE+	  ]+	  `when`+	  isDTDPERef+	where+	isInternalRef	= isA (const (loc == Internal))+	peVal		= constA pn >>> getPeValue+	isUndefinedRef	= neg peVal+	substPE+	    = replaceChildren (peVal >>> getChildren)			-- store PE value in children component+	      >>>+	      ( ( setBase $< (peVal >>> getDTDAttrValue a_url) )	-- store base uri for external refs+		`orElse`+		this+	      )+	    where+	    setBase uri	= setDTDAttrValue a_url uri++    substRefsInEntityValue	:: DTDStateArrow XmlTree XmlTree+    substRefsInEntityValue+	= ( ( processChildren ( transfCharRef+				>>>+				substPeRefsInValue []+			      )+	    )+	    `whenNot`+	    hasDTDAttr k_system						-- only apply for internal entities+	  )+	  `when` +	  ( isDTDEntity <+> isDTDPEntity )				-- only apply for entity declarations++    substPeRefsInDTDpart	:: RecList -> DTDStateArrow XmlTree XmlTree+    substPeRefsInDTDpart rl+	= recursionCheck "DTD part" rl subst+	where+	subst	:: RecList -> String -> DTDStateArrow XmlTree XmlTree+	subst recl pn+	    = substPERef pn+	      >>>+	      traceDTD "substPeRefsInDTDdecl: before parseXmlDTDPart"+	      >>>+	      ( runInPeContext ( getChildren+				 >>>+				 ( (constA ("parameter entity: " ++ pn)) &&& this )+				 >>>+				 parseXmlDTDPart+				 >>>+				 traceDTD "substPeRefsInDTDpart: after parseXmlDTDPart"+				 >>>+				 substParamEntity loc (pn : recl)+			       )+		`when`+		isDTDPERef+	      )++    substPeRefsInDTDdecl	:: RecList -> DTDStateArrow XmlTree XmlTree+    substPeRefsInDTDdecl rl+	= recursionCheck "DTD declaration" rl subst+	where+	subst	:: RecList -> String -> DTDStateArrow XmlTree XmlTree+	subst recl pn+	    = substPERef pn+	      >>>+	      traceDTD "substPeRefsInDTDdecl: before parseXmlDTDdeclPart"+	      >>>+	      ( runInPeContext ( parseXmlDTDdeclPart+				 >>>+				 traceDTD "substPeRefsInDTDdecl: after parseXmlDTDdeclPart"+				 >>>+				 processChildren ( substPeRefsInDTDdecl (pn : recl) )+			       )+		`when`+		isDTDPERef+	      )++    substPeRefsInValue		:: RecList -> DTDStateArrow XmlTree XmlTree+    substPeRefsInValue rl+	= recursionCheck "entity value" rl subst+	where+	subst	:: RecList -> String -> DTDStateArrow XmlTree XmlTree+	subst recl pn+	    = substPERef pn+	      >>>+	      parseXmlDTDEntityValue+	      >>>+	      transfCharRef+	      >>>+	      substPeRefsInValue (pn : recl)++    substPeRefsInCondSect	:: RecList -> DTDStateArrow XmlTree XmlTree+    substPeRefsInCondSect rl+	= recursionCheck "conditional section" rl subst+	where+	subst	:: RecList -> String -> DTDStateArrow XmlTree XmlTree+	subst recl pn+	    = substPERef pn+	      >>>+	      traceDTD "substPeRefsInCondSect: parseXmlDTDdeclPart"+	      >>>+	      runInPeContext ( parseXmlDTDdeclPart+			       >>>+			       traceDTD "substPeRefsInCondSect: after parseXmlDTDdeclPart"+			       >>>+			       processChildren ( substPeRefsInCondSect (pn : recl) )+			     )++    recursionCheck	:: String -> RecList -> (RecList -> String -> DTDStateArrow XmlTree XmlTree) -> DTDStateArrow XmlTree XmlTree+    recursionCheck wher rl subst+	= ( recusiveSubst  $< getDTDAttrValue a_peref )+	  `when`+	  isDTDPERef+	where+	recusiveSubst name+	    | name `elem` rl+		= issueErr ("recursive call of parameter entity " ++ show name ++ " in " ++ wher)+            | otherwise+		= subst rl name++    runInPeContext	:: DTDStateArrow XmlTree XmlTree -> DTDStateArrow XmlTree XmlTree+    runInPeContext f+	= ( runWithNewBase $< getDTDAttrValue a_url )+	  `orElse`+	  f+	where+	runWithNewBase base+	    = runInLocalURIContext+	      ( perform (constA base >>> setBaseURI)+		>>>+		f+	      )++    evalCondSect	:: String ->  DTDStateArrow XmlTree XmlTree+    evalCondSect content+	= traceDTD "evalCondSect: process conditional section"+	  >>>+	  processChildren (substPeRefsInCondSect [])+	  >>>+	  parseXmlDTDdecl+	  >>>+	  ( hasText (== k_include)+	    `guards`+	    ( ( constA "conditional section" &&& txt content )+	      >>>+	      parseXmlDTDPart+	      >>>+	      traceMsg 2 "evalCond: include DTD part"+	      >>>+	      substParamEntity External recList+	    )+	  )++predefDTDPart		:: DTDStateArrow XmlTree XmlTree+predefDTDPart+    = ( constA "predefined entities"+	&&&+	( constA predefinedEntities >>> mkText)+      )+      >>>+      parseXmlDTDPart+    where+    predefinedEntities	:: String+    predefinedEntities+	= concat [ "<!ENTITY lt   '&#38;#60;'>"+		 , "<!ENTITY gt   '&#62;'>"+		 , "<!ENTITY amp  '&#38;#38;'>"+		 , "<!ENTITY apos '&#39;'>"+		 , "<!ENTITY quot '&#34;'>"+		 ]++externalDTDPart		:: DTDStateArrow XmlTree XmlTree+externalDTDPart+    = isDTDDoctype+      `guards`+      ( hasDTDAttr k_system+	`guards`+	( getExternalDTDPart $< getDTDAttrValue k_system )+      )++getExternalDTDPart	:: String -> DTDStateArrow XmlTree XmlTree+getExternalDTDPart src+    = root [sattr a_source src] []+      >>>+      getXmlEntityContents+      >>>+      replaceChildren ( ( constA src &&& getChildren )+			>>>+			parseXmlDTDPart+		      )+      >>>+      traceDoc "processExternalDTD: parsing DTD part done"+      >>>+      getChildren++getExternalParamEntityValue	:: DTDStateArrow XmlTree XmlTree+getExternalParamEntityValue+    = isDTDPEntity+      `guards`+      ( setEntityValue $<<< ( getDTDAttrl+			      &&&+			      listA ( getEntityValue $< getDTDAttrl )+			      &&&+			      getBaseURI+			    )+      )+    where+    getEntityValue	:: Attributes -> DTDStateArrow XmlTree XmlTree+    getEntityValue al+	= root [sattr a_source (lookup1 k_system al){- <+> catA (map (uncurry sattr) al)-}] []+	  >>>+	  getXmlEntityContents+	  >>>+	  traceMsg 2 "getExternalParamEntityValue: contents read"+          >>>+	  getChildren++    setEntityValue	:: Attributes -> XmlTrees -> String -> DTDStateArrow XmlTree XmlTree+    setEntityValue al res base+	| null res+	    = issueErr ("illegal external parameter entity value for entity %" ++ peName ++";")+	| otherwise+	    = mkDTDElem PENTITY ((a_url, base) : al) (arrL $ const res)+	where+	peName = lookup1 a_name al++traceDTD	:: String -> DTDStateArrow XmlTree XmlTree+traceDTD msg	= traceMsg 3 msg >>> traceTree++-- ------------------------------------------------------------++
+ src/Text/XML/HXT/Arrow/DocumentInput.hs view
@@ -0,0 +1,358 @@+-- |+-- state arrows for document input+--+-- version $Id: DocumentInput.hs,v 1.12 2006/11/24 07:41:37 hxml Exp $++module Text.XML.HXT.Arrow.DocumentInput+    ( getURIContents+    , getXmlContents+    , getXmlEntityContents+    , getEncoding+    , decodeDocument+    )+where++import Control.Arrow				-- arrow classes+import Control.Arrow.ArrowList+import Control.Arrow.ArrowIf+import Control.Arrow.ArrowTree+import Control.Arrow.ArrowIO++import Text.XML.HXT.DOM.Unicode+    ( getEncodingFct+    , guessEncoding+    , normalizeNL+    )++import qualified Text.XML.HXT.IO.GetFILE	as FILE+import qualified Text.XML.HXT.IO.GetHTTPNative	as HTTP+import qualified Text.XML.HXT.IO.GetHTTPCurl	as CURL++import Text.XML.HXT.Arrow.DOMInterface+import Text.XML.HXT.Arrow.XmlArrow+import Text.XML.HXT.Arrow.XmlIOStateArrow++import Text.XML.HXT.Arrow.ParserInterface+    ( parseXmlDocEncodingSpec+    , parseXmlEntityEncodingSpec+    , removeEncodingSpec+    )++import Data.List+    ( isPrefixOf+    )+import Data.Maybe++-- ----------------------------------------------------------++protocolHandlers	:: AssocList String (IOStateArrow s XmlTree XmlTree)+protocolHandlers+    = [ ("file",	getFileContents)+      , ("http",	getHttpContents)+      , ("stdin",	getStdinContents)+      ]++getProtocolHandler	:: IOStateArrow s String (IOStateArrow s XmlTree XmlTree)+getProtocolHandler+    = arr (\ s -> lookupDef getUnsupported s protocolHandlers)++getUnsupported		:: IOStateArrow s XmlTree XmlTree+getUnsupported+    = perform ( getAttrValue a_source+		>>>+		arr (("unsupported protocol in URI " ++) . show)+		>>>+		applyA (arr issueFatal)+	      )+      >>>+      setDocumentStatusFromSystemState "accessing documents"+	+getStringContents		:: IOStateArrow s XmlTree XmlTree+getStringContents+    = setCont $< getAttrValue a_source+      >>>+      addAttr transferMessage "OK"+      >>>+      addAttr transferStatus "200"+    where+    setCont contents+	= replaceChildren (txt contents')+	  >>>+	  addAttr transferURI contents				-- the whole string inclusive "string:" prefix is stored, at least the "string:" prefix is required by setBaseURIFromDoc+	  >>>+	  addAttr a_source (show . prefix 48 $ contents')	-- a quoted prefix of the content, max 48 chars is taken as source name+	where+	contents'  = drop (length stringProtocol) contents+	prefix l s+	    | length s' > l = take (l - 3) s' ++ "..."+	    | otherwise     = s'+	    where+	    s' = take (l + 1) s++getFileContents		:: IOStateArrow s XmlTree XmlTree+getFileContents+    = applyA ( getAttrValue transferURI+	       >>>+	       getPathFromURI+	       >>>+	       arrIO FILE.getCont+	       >>>+	       ( arr addError		-- io error occured+		 |||+		 arr addTxtContent		-- content read+	       )+	     )++getStdinContents		:: IOStateArrow s XmlTree XmlTree+getStdinContents+    = applyA ( arrIO (\ _ -> FILE.getStdinCont)+	       >>>+	       ( arr addError		-- io error occured+		 |||+		 arr addTxtContent		-- content read+	       )+	     )++addError		:: String -> IOStateArrow s XmlTree XmlTree+addError e+    = issueFatal e+      >>>+      setDocumentStatusFromSystemState "accessing documents"++addTxtContent	:: String -> IOStateArrow s XmlTree XmlTree+addTxtContent c+    = replaceChildren (txt c)+      >>>+      addAttr transferMessage "OK"+      >>>+      addAttr transferStatus "200"++{-+getHttpContents		:: IOStateArrow s XmlTree XmlTree+getHttpContents+    = applyA ( ( getAttrValue transferURI+		 &&&+		 getParamString a_proxy+	       )+	       >>>+	       applyA ( getParamInt 0 a_use_curl+			>>>+			ifP (==0)+			  ( constA $ arrIO2 HTTP.getCont )		-- native http+			  ( constA $+			    ( getParamString a_options_curl &&& this )+			    >>>+			    arrIO3 CURL.getCont+			  )+		      )+	       >>>+	       ( arr addError+		 |||+		 arr addContent+	       )+	     )+      where+      addContent	:: (AssocList String String, String) -> IOStateArrow s XmlTree XmlTree+      addContent (al, c)+	  = replaceChildren (txt c)+	    >>>+	    seqA (map (uncurry addAttr) al)+-}++getHttpContents		:: IOStateArrow s XmlTree XmlTree+getHttpContents+    = getCont $<<<< ( getAttrValue transferURI+		      &&&+		      getOpt a_proxy+		      &&&+		      getOpt a_use_curl+		      &&&+		      getOpt a_options_curl+		    )+      where+      getOpt opt+	  = getAttrValue0 opt+	    `orElse`+	    getParamString opt++      getCont uri proxy curl curlOpt+	  = applyA ( ( if curl == v_1+		       then ( traceMsg 2 ( "get HTTP via "+					   ++ show ( "curl "+						     ++ (if null proxy then "" else "--proxy " ++ proxy)+						     ++ (if null curlOpt then "" else " " ++ curlOpt)+						     ++ " " ++ uri+						   )+					 )+			      >>>+			      arrIO0 ( CURL.getCont curlOpt uri proxy )+			    )+		       else arrIO0 ( HTTP.getCont         uri proxy )+		     )+		     >>>+		     ( arr addError+		       |||+		       arr addContent+		     )+		   )++      addContent	:: (AssocList String String, String) -> IOStateArrow s XmlTree XmlTree+      addContent (al, c)+	  = replaceChildren (txt c)+	    >>>+	    seqA (map (uncurry addAttr) al)++getURIContents		:: IOStateArrow s XmlTree XmlTree+getURIContents+    = getContentsFromString+      `orElse`+      getContentsFromDoc+    where+    getContentsFromString+	= ( getAttrValue a_source+	    >>>+	    isA (isPrefixOf stringProtocol)+	  )+	  `guards`+	  getStringContents+	  +    getContentsFromDoc+	= ( ( addTransferURI $< getBaseURI+	      >>>+	      getCont+	    )+	    `when`+	    ( setAbsURI $< ( getAttrValue a_source+			     >>^+			     ( \ src-> (if null src then "stdin:" else src) )	-- empty document name -> read from stdin+			   )+	    )+	  )+          >>>+          setDocumentStatusFromSystemState "getURIContents"++    setAbsURI src+	= ifA ( constA src >>> changeBaseURI )+	  this+	  ( issueFatal ("illegal URI : " ++ show src) )++    addTransferURI uri+	= addAttr transferURI uri++    getCont+	= applyA ( getBaseURI				-- compute the handler and call it+		   >>>+		   traceString 2 (("getURIContents: reading" ++) . show)+		   >>>+		   getSchemeFromURI+		   >>>+		   getProtocolHandler+		 )+	  `orElse`+	  this						-- don't change tree, when no handler can be found+	  +setBaseURIFromDoc	:: IOStateArrow s XmlTree XmlTree+setBaseURIFromDoc+    = perform ( getAttrValue transferURI+		>>>+		isA ( isPrefixOf stringProtocol)	-- do not change base URI when reading from a string+		>>>+		setBaseURI+	      )+{- |+   Read the content of a document.++   This routine is usually called from 'Text.XML.HXT.Arrow.ProcessDocument.getDocumentContents'.++   The input must be a root node (constructed with 'Text.XML.HXT.Arrow.XmlArrow.root'), usually without children.+   The attribute list contains all input parameters, e.g. URI or source file name, encoding preferences, ...+   If the source name is empty, the input is read from standard input.++   The source is transformed into an absolute URI. If the source is a relative URI, or a file name,+   it is expanded into an absolut URI with respect to the current base URI.+   The default base URI is of protocol \"file\" and points to the current working directory.++   The currently supported protocols are \"http\", \"file\", \"stdin:\" and \"string\".++   The latter two are internal protocols. An uri of the form \"stdin:\" stands for the content of+   the standard input stream.++   \"string:some text\" means, that \"some text\" is taken as input.+   This internal protocol is used for reading from normal 'String' values.++-}++getXmlContents		:: IOStateArrow s XmlTree XmlTree+getXmlContents+    = getXmlContents' parseXmlDocEncodingSpec+      >>>+      setBaseURIFromDoc++getXmlEntityContents		:: IOStateArrow s XmlTree XmlTree+getXmlEntityContents+    = getXmlContents' parseXmlEntityEncodingSpec+      >>>+      processChildren removeEncodingSpec+      >>>+      setBaseURIFromDoc++getXmlContents'		:: IOStateArrow s XmlTree XmlTree -> IOStateArrow s XmlTree XmlTree+getXmlContents' parseEncodingSpec+    = ( getURIContents+	>>>+	parseEncodingSpec+	>>>+	filterErrorMsg+	>>>+	decodeDocument+	>>>+	perform ( getAttrValue transferURI+		  >>>+		  traceString 1 (("getXmlContents: content read and decoded for " ++) . show)+		)+	>>>+	traceTree+	>>>+	traceSource+      )+      `when`+      isRoot++-- ------------------------------------------------------------++getEncoding	:: IOStateArrow s XmlTree String+getEncoding+    = catA [ xshow getChildren			-- 1. guess: guess encoding by looking at the first few bytes+	     >>>+	     arr guessEncoding+	   , getAttrValue transferEncoding	-- 2. guess: take the transfer encoding+	   , getAttrValue a_encoding		-- 4. guess: take encoding parameter in root node+	   , getParamString a_encoding		-- 5. guess: take encoding parameter in global state+	   , constA utf8			-- default : utf8+	   ]+      >. (head . filter (not . null))		-- make the filter deterministic: take 1. entry from list of guesses+++decodeDocument	:: IOStateArrow s XmlTree XmlTree+decodeDocument+    = applyA ( getEncoding+	       >>>+	       arr encArr+	     )+      `when`+      isRoot+    where+    encArr	:: String -> IOStateArrow s XmlTree XmlTree+    encArr enc	= maybe notFound found . getEncodingFct $ enc+	where+	found ef = traceMsg 2 ("decodeDocument: encoding is " ++ show enc)+		   >>>+		   processChildren (changeText (normalizeNL . ef))+		   >>>+		   addAttr transferEncoding enc++	notFound = issueFatal ("encoding scheme not supported: " ++ show enc)+		   >>>+		   setDocumentStatusFromSystemState "decoding document"++-- ------------------------------------------------------------
+ src/Text/XML/HXT/Arrow/DocumentOutput.hs view
@@ -0,0 +1,167 @@+-- |+-- state arrows for document output+--+-- version: $Id: DocumentOutput.hs,v 1.7 2006/11/02 09:34:08 hxml Exp $++module Text.XML.HXT.Arrow.DocumentOutput+    ( module Text.XML.HXT.Arrow.DocumentOutput )+where++import Control.Arrow				-- arrow classes+import Control.Arrow.ArrowList+import Control.Arrow.ArrowIf+import Control.Arrow.ArrowTree+import Control.Arrow.ArrowIO++import Text.XML.HXT.DOM.Unicode+    ( getOutputEncodingFct )++import Text.XML.HXT.Arrow.DOMInterface+import Text.XML.HXT.Arrow.XmlArrow+import Text.XML.HXT.Arrow.XmlIOStateArrow++import Text.XML.HXT.Arrow.Edit+    ( addHeadlineToXmlDoc+    , addXmlPi+    , addXmlPiEncoding+    , indentDoc+    , numberLinesInXmlDoc+    , treeRepOfXmlDoc+    )++import Data.Maybe++import System.IO+    ( Handle+    , IOMode(..)+    , openFile+    , hPutStrLn+    , hClose+    , stdout+    )++import System.IO.Error+    ( try )++-- ------------------------------------------------------------+--+-- output arrows++putXmlDocument	:: String -> IOStateArrow s XmlTree XmlTree+putXmlDocument dst+    = perform ( xshow getChildren+		>>>+		arrIO (\ s -> try ( hPutDocument (\h -> hPutStrLn h s)))+		>>>+		( ( traceMsg 1 ("io error, document not written to " ++ outFile)+		    >>>+		    arr show >>> mkError c_fatal+		    >>>+		    filterErrorMsg+		  )+		  |||+		  ( traceMsg 2 ("document written to " ++ outFile)+		    >>>+		    none+		  )+		)+	      )+      where+      isStdout	= null dst || dst == "-"++      outFile	= if isStdout+		  then "stdout"+		       else show dst++      hPutDocument	:: (Handle -> IO()) -> IO()+      hPutDocument action+	  | isStdout+	      = action stdout+	  | otherwise+	      = do+		handle <- openFile dst WriteMode+		action handle+		hClose handle++-- |+-- write the tree representation of a document to a file++putXmlTree	:: String -> IOStateArrow s XmlTree XmlTree+putXmlTree dst+    = perform ( treeRepOfXmlDoc+		>>>+		addHeadlineToXmlDoc+	        >>>+		putXmlDocument dst+	      )++-- |+-- write a document with indentaion and line numers++putXmlSource	:: String -> IOStateArrow s XmlTree XmlTree+putXmlSource dst+    = perform ( (this ) `whenNot` isRoot+		>>>+		indentDoc+		>>>+		numberLinesInXmlDoc+		>>>+		addHeadlineToXmlDoc+	        >>>+		putXmlDocument dst+	      )++-- ------------------------------------------------------------++getOutputEncoding	:: String -> IOStateArrow s XmlTree String+getOutputEncoding defaultEnc+    =  catA [ getChildren			-- 1. guess: evaluate <?xml ... encoding="..."?>+	      >>>+	      ( ( isPi >>> hasName t_xml )+		`guards`+		getAttrValue a_encoding+	      )+	    , constA defaultEnc			-- 2. guess: explicit parameter, may be ""+	    , getAttrValue a_output_encoding	-- 3. guess: take output encoding parameter in root node+	    , getParamString a_output_encoding	-- 4. guess: take output encoding parameter in global state+	    , getParamString a_encoding		-- 5. guess: take encoding parameter in global state+	    , constA utf8			-- default : utf8+	    ]+      >. (head . filter (not . null))		-- make the filter deterministic: take 1. entry from list of guesses++encodeDocument	:: Bool -> String -> IOStateArrow s XmlTree XmlTree+encodeDocument supressXmlPi defaultEnc+    = applyA ( getOutputEncoding defaultEnc+	       >>>+	       arr encArr+	     )+      `when`+      isRoot+    where+    encArr	:: String -> IOStateArrow s XmlTree XmlTree+    encArr enc	= maybe notFound found . getOutputEncodingFct $ enc+	where+	found ef = traceMsg 2 ("encodeDocument: encoding is " ++ show enc)+		   >>>+		   ( if supressXmlPi+		     then processChildren (none `when` isXmlPi)+		     else ( addXmlPi+			    >>>+			    addXmlPiEncoding enc+			  )+		   )+		   >>>+		   replaceChildren ( xshow getChildren+				     >>>+				     arr ef+				     >>>+				     mkText+				   )+		   >>>+		   addAttr a_output_encoding enc++	notFound = issueFatal ("encoding scheme not supported: " ++ show enc)+		   >>>+		   setDocumentStatusFromSystemState "encoding document"++-- ------------------------------------------------------------
+ src/Text/XML/HXT/Arrow/Edit.hs view
@@ -0,0 +1,603 @@+-- ------------------------------------------------------------++{- |+   Module     : Text.XML.HXT.Arrow.Edit+   Copyright  : Copyright (C) 2006 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: Edit.hs,v 1.8 2006/11/12 14:52:59 hxml Exp $++   common edit arrows++-}++-- ------------------------------------------------------------++module Text.XML.HXT.Arrow.Edit+    ( canonicalizeAllNodes+    , canonicalizeForXPath+    , canonicalizeContents+    , collapseAllXText+    , collapseXText++    , escapeXmlDoc+    , escapeHtmlDoc++    , haskellRepOfXmlDoc+    , treeRepOfXmlDoc+    , addHeadlineToXmlDoc++    , indentDoc+    , numberLinesInXmlDoc+ +    , removeComment+    , removeAllComment+    , removeWhiteSpace+    , removeAllWhiteSpace+    , removeDocWhiteSpace++    , transfCdata+    , transfAllCdata+    , transfCharRef+    , transfAllCharRef++    , hasXmlPi+    , addXmlPi+    , addXmlPiEncoding++    , addDoctypeDecl+    , addXHtmlDoctypeStrict+    , addXHtmlDoctypeTransitional+    , addXHtmlDoctypeFrameset+    )+where++import Control.Arrow+import Control.Arrow.ArrowList+import Control.Arrow.ArrowIf+import Control.Arrow.ArrowTree++import Control.Arrow.ListArrow++import Text.XML.HXT.Arrow.DOMInterface+import Text.XML.HXT.Arrow.XmlArrow++import qualified Text.XML.HXT.Arrow.XmlNode as XN++import Text.XML.HXT.DOM.FormatXmlTree+    ( formatXmlTree )++import qualified Text.XML.HXT.DOM.EditFilters as EF+    ( indentDoc+    , removeDocWhiteSpace+    )++import Text.XML.HXT.Parser.XmlParsec+    ( xmlEntities )++import Text.XML.HXT.Parser.HtmlParsec+    ( xhtmlEntities )++import Data.Maybe++import qualified Data.Map as M++-- ------------------------------------------------------------++-- |+-- Applies some "Canonical XML" rules to a document tree.+--+-- The rule differ slightly for canonical XML and XPath in handling of comments+--+-- Note: This is not the whole canonicalization as it is specified by the W3C+-- Recommendation. Adding attribute defaults or sorting attributes in lexicographic+-- order is done by the @transform@ function of module @Text.XML.HXT.Validator.Validation@.+-- Replacing entities or line feed normalization is done by the parser.+--+--+-- Not implemented yet:+--+--  - Whitespace within start and end tags is normalized+--+--  - Special characters in attribute values and character content are replaced by character references+--+-- see 'canonicalizeAllNodes' and 'canonicalizeForXPath'++canonicalizeTree'	:: LA XmlTree XmlTree -> LA XmlTree XmlTree+canonicalizeTree' toBeRemoved+    = processChildren (none `when` isText)+      >>>+      processBottomUp canonicalize1Node+      where+      canonicalize1Node	:: LA XmlTree XmlTree+      canonicalize1Node+	  = (deep isPi `when` isDTD)		-- remove DTD parts, except PIs+	    >>>+	    (none `when` toBeRemoved)		-- remove unintersting nodes+	    >>>+	    ( processAttrl ( processChildren transfCharRef+			     >>>+			     collapseXText+			   )+	      `when` isElem+	    )+	    >>>+	    transfCdata				-- CDATA -> text+	    >>>+	    transfCharRef			-- Char refs -> text+	    >>>+	    collapseXText			-- combine text+++-- |+-- Applies some "Canonical XML" rules to a document tree.+--+-- The rule differ slightly for canonical XML and XPath in handling of comments+--+-- Note: This is not the whole canonicalization as it is specified by the W3C+-- Recommendation. Adding attribute defaults or sorting attributes in lexicographic+-- order is done by the @transform@ function of module @Text.XML.HXT.Validator.Validation@.+-- Replacing entities or line feed normalization is done by the parser.+--+-- Rules: remove DTD parts, processing instructions, comments and substitute char refs in attribute+-- values and text+--+-- Not implemented yet:+--+--  - Whitespace within start and end tags is normalized+--+--  - Special characters in attribute values and character content are replaced by character references++canonicalizeAllNodes	:: ArrowList a => a XmlTree XmlTree+canonicalizeAllNodes+    = fromLA $+      canonicalizeTree' ( isCmt		-- remove comment+			  <+>+			  isXmlPi	-- remove xml declaration+			)++-- |+-- Canonicalize a tree for XPath+-- Like 'canonicalizeAllNodes' but comment nodes are not removed+--+-- see 'canonicalizeAllNodes'++canonicalizeForXPath	:: ArrowList a => a XmlTree XmlTree+canonicalizeForXPath+    = fromLA $+      canonicalizeTree' isXmlPi++-- |+-- Canonicalize the contents of a document+--+-- substitutes all char refs in text and attribute values,+-- removes CDATA section and combines all sequences of resulting text+-- nodes into a single text node+--+-- see 'canonicalizeAllNodes'++canonicalizeContents	:: ArrowList a => a XmlTree XmlTree+canonicalizeContents+    = fromLA $+      processBottomUp canonicalize1Node+      where+      canonicalize1Node	:: LA XmlTree XmlTree+      canonicalize1Node+	  = ( processAttrl ( processChildren transfCharRef+			     >>>+			     collapseXText+			   )+	      `when` isElem+	    )+	    >>>+	    transfCdata				-- CDATA -> text+	    >>>+	    transfCharRef			-- Char refs -> text+	    >>>+	    collapseXText			-- combine text++-- ------------------------------------------------------------++collapseXText'		:: LA XmlTree XmlTree+collapseXText'+    = replaceChildren ( listA getChildren >>> arrL (foldr mergeText' []) )+    where+    mergeText'	:: XmlTree -> XmlTrees -> XmlTrees+    mergeText' t1 (t2 : ts2)+	| XN.isText t1 && XN.isText t2+	    = let+	      s1 = fromJust . XN.getText $ t1+	      s2 = fromJust . XN.getText $ t2+	      t  = XN.mkText (s1 ++ s2)+	      in+	      t : ts2+    mergeText' t1 ts+	= t1 : ts++-- |+-- Collects sequences of text nodes in the list of children of a node into one single text node.+-- This is useful, e.g. after char and entity reference substitution++collapseXText		:: ArrowList a => a XmlTree XmlTree+collapseXText+    = fromLA $+      collapseXText'++-- |+-- Applies collapseXText recursively.+--+--+-- see also : 'collapseXText'++collapseAllXText	:: ArrowList a => a XmlTree XmlTree+collapseAllXText+    = fromLA $+      processBottomUp collapseXText'++-- ------------------------------------------------------------++-- |+-- escape XmlText,+-- transform all special XML chars into char- or enitity- refs++type EntityRefTable	= M.Map Int String++xmlEntityRefTable+ , xhtmlEntityRefTable	:: EntityRefTable++xmlEntityRefTable   = buildEntityRefTable $ xmlEntities+xhtmlEntityRefTable = buildEntityRefTable $ xhtmlEntities++buildEntityRefTable	:: [(String, Int)] -> EntityRefTable+buildEntityRefTable	= M.fromList . map (\ (x,y) -> (y,x) )++escapeText''	:: (Char -> XmlTree) -> (Char -> Bool) -> XmlTree -> XmlTrees+escapeText'' escChar isEsc t+    = maybe [t] escape . XN.getText $ t+    where+    escape []+	= []+    escape (c:s1)+	| isEsc c+	    = escChar c : escape s1+    escape s+	= XN.mkText s1 : escape s2+	where+	(s1, s2) = break isEsc s++{-+escapeCharRef	:: Char -> XmlTree+escapeCharRef	= XN.mkCharRef . fromEnum+-}++escapeEntityRef	:: EntityRefTable -> Char -> XmlTree+escapeEntityRef entityTable c+    = maybe (XN.mkCharRef c') XN.mkEntityRef . M.lookup c' $ entityTable+    where+    c' = fromEnum c++escapeXmlEntityRef	:: Char -> XmlTree+escapeXmlEntityRef	= escapeEntityRef xmlEntityRefTable++escapeHtmlEntityRef	:: Char -> XmlTree+escapeHtmlEntityRef	= escapeEntityRef xhtmlEntityRefTable++-- |+-- escape all special XML chars into XML entity references or char references+--+-- convert the special XML chars \< and & in text nodes into prefefiened XML entity references,+-- in attribute values also \', \", \>, \\n, \\r and \\t are converted into entity or char references,+-- in comments nothing is converted (see XML standard 2.4, useful e.g. for JavaScript).++escapeXmlDoc		:: ArrowList a => a XmlTree XmlTree+escapeXmlDoc+    = fromLA $ escapeDoc escXmlText escXmlAttrValue+    where+    escXmlText+	= arrL $ escapeText'' escapeXmlEntityRef (`elem` "<&")		-- no escape for ", ' and > required: XML standard 2.4+    escXmlAttrValue+        = arrL $ escapeText'' escapeXmlEntityRef (`elem` "<>\"\'&\n\r\t")+++-- |+-- escape all special HTML chars into XHTML entity references or char references+--+-- convert the special XML chars \< and & and all none ASCII chars in text nodes into prefefiened XML or XHTML entity references,+-- in attribute values also \', \", \>, \\n, \\r and \\t are converted into entity or char references,+-- in comments nothing is converted++escapeHtmlDoc		:: ArrowList a => a XmlTree XmlTree+escapeHtmlDoc+    = fromLA $ escapeDoc escHtmlText escHtmlAttrValue+    where+    escHtmlText+	= arrL $ escapeText'' escapeHtmlEntityRef isHtmlTextEsc+    escHtmlAttrValue+        = arrL $ escapeText'' escapeHtmlEntityRef isHtmlAttrEsc++    isHtmlTextEsc c+	= c >= toEnum(128) || ( c `elem` "<&" )+    isHtmlAttrEsc c+	= c >= toEnum(128) || ( c `elem` "<>\"\'&\n\r\t" )++escapeDoc		:: LA XmlTree XmlTree -> LA XmlTree XmlTree -> LA XmlTree XmlTree+escapeDoc escText escAttr+    = escape+    where+    escape+	= choiceA+	  [ isElem  :-> ( processChildren escape+			  >>>+			  processAttrl escVal+			)+	  , isText  :-> escText+	  -- , isCmt   :-> escCmt+	  , isDTD   :-> processTopDown escDTD+	  , this    :-> this+	  ]+    escVal   = processChildren escAttr+    escDTD   = escVal `when` ( isDTDEntity <+> isDTDPEntity )++-- ------------------------------------------------------------++-- |+-- convert a document into a Haskell representation (with show).+--+-- Useful for debugging and trace output.+-- see also : 'treeRepOfXmlDoc', 'numberLinesInXmlDoc'++haskellRepOfXmlDoc	:: ArrowList a => a XmlTree XmlTree+haskellRepOfXmlDoc+    = fromLA $+      root [getAttrl] [show ^>> mkText]++-- |+-- convert a document into a text and add line numbers to the text representation.+-- +-- Result is a root node with a single text node as child.+-- Useful for debugging and trace output.+-- see also : 'haskellRepOfXmlDoc', 'treeRepOfXmlDoc'++numberLinesInXmlDoc	:: ArrowList a => a XmlTree XmlTree+numberLinesInXmlDoc+    = fromLA $+      processChildren (changeText numberLines)+    where+    numberLines	:: String -> String+    numberLines str+	= concat $+	  zipWith (\ n l -> lineNr n ++ l ++ "\n") [1..] (lines str)+	where+	lineNr	 :: Int -> String+	lineNr n = (reverse (take 6 (reverse (show n) ++ replicate 6 ' '))) ++ "  "++-- |+-- convert a document into a text representation in tree form.+--+-- Useful for debugging and trace output.+-- see also : 'haskellRepOfXmlDoc', 'numberLinesInXmlDoc'++treeRepOfXmlDoc	:: ArrowList a => a XmlTree XmlTree+treeRepOfXmlDoc+    = fromLA $+      root [getAttrl] [formatXmlTree ^>> mkText]++addHeadlineToXmlDoc	:: ArrowXml a => a XmlTree XmlTree+addHeadlineToXmlDoc+    = fromLA $ ( addTitle $< (getAttrValue a_source >>^ formatTitle) )+    where+    addTitle str+	= replaceChildren ( txt str <+> getChildren <+> txt "\n" )+    formatTitle str+	= "\n" ++ headline ++ "\n" ++ underline ++ "\n\n"+	where+	headline  = "content of: " ++ str+        underline = map (const '=') headline++-- ------------------------------------------------------------++removeComment'		:: LA XmlTree XmlTree+removeComment'		= none `when` isCmt++-- |+-- remove Comments: @none `when` isCmt@++removeComment		:: ArrowXml a => a XmlTree XmlTree+removeComment		= fromLA $ removeComment'++-- |+-- remove all comments recursively++removeAllComment	:: ArrowXml a => a XmlTree XmlTree+removeAllComment	= fromLA $ processBottomUp removeComment'++-- ----------++removeWhiteSpace'	:: LA XmlTree XmlTree+removeWhiteSpace'	= none `when` hasText (all (`elem` " \t\n"))++-- |+-- simple filter for removing whitespace.+--+-- no check on sigificant whitespace, e.g. in HTML \<pre\>-elements, is done.+--+--+-- see also : 'removeAllWhiteSpace', 'removeDocWhiteSpace'++removeWhiteSpace	:: ArrowXml a => a XmlTree XmlTree+removeWhiteSpace	= fromLA $ removeWhiteSpace'++-- |+-- simple recursive filter for removing all whitespace.+--+-- removes all text nodes in a tree that consist only of whitespace.+--+--+-- see also : 'removeWhiteSpace', 'removeDocWhiteSpace'++removeAllWhiteSpace	:: ArrowXml a => a XmlTree XmlTree+removeAllWhiteSpace	= fromLA $ processBottomUp removeWhiteSpace'++-- |+-- filter for removing all not significant whitespace.+--+-- the tree traversed for removing whitespace between elements,+-- that was inserted for indentation and readability.+-- whitespace is only removed at places, where it's not significat+-- preserving whitespace may be controlled in a document tree+-- by a tag attribute @xml:space@+--+-- allowed values for this attribute are @default | preserve@+--+-- input is root node of the document to be cleaned up,+-- output the semantically equivalent simplified tree+--+--+-- see also : 'indentDoc', 'removeAllWhiteSpace'++removeDocWhiteSpace	:: ArrowXml a => a XmlTree XmlTree+removeDocWhiteSpace	= arrL EF.removeDocWhiteSpace++-- |+-- filter for indenting a document tree for pretty printing.+--+-- the tree is traversed for inserting whitespace for tag indentation.+--+-- whitespace is only inserted or changed at places, where it isn't significant,+-- is's not inserted between tags and text containing non whitespace chars.+--+-- whitespace is only inserted or changed at places, where it's not significant.+-- preserving whitespace may be controlled in a document tree+-- by a tag attribute @xml:space@+--+-- allowed values for this attribute are @default | preserve@.+--+-- input is a complete document tree.+-- result the semantically equivalent formatted tree.+--+--+-- see also : 'removeDocWhiteSpace'++indentDoc		:: ArrowList a => a XmlTree XmlTree+indentDoc		= arrL EF.indentDoc++-- ------------------------------------------------------------++transfCdata'		:: LA XmlTree XmlTree+transfCdata'		= (getCdata >>> mkText) `when` isCdata++-- |+-- converts a CDATA section node into a normal text node++transfCdata		:: ArrowXml a => a XmlTree XmlTree+transfCdata		= fromLA $+			  transfCdata'++-- |+-- converts CDATA sections in whole document tree into normal text nodes++transfAllCdata		:: ArrowXml a => a XmlTree XmlTree+transfAllCdata		= fromLA $+			  processBottomUp transfCdata'+			  +--++transfCharRef'		:: LA XmlTree XmlTree+transfCharRef'		= ( getCharRef >>> arr (\ i -> [toEnum i]) >>> mkText )+		          `when`+			  isCharRef++-- |+-- converts character references to normal text++transfCharRef		:: ArrowXml a => a XmlTree XmlTree+transfCharRef		= fromLA $+			  transfCharRef'++-- |+-- recursively converts all character references to normal text++transfAllCharRef	:: ArrowXml a => a XmlTree XmlTree+transfAllCharRef	= fromLA $+			  processBottomUp transfCharRef'++-- ------------------------------------------------------------++hasXmlPi		:: ArrowXml a => a XmlTree XmlTree+hasXmlPi+    = fromLA+      ( getChildren+	>>>+	isPi+	>>>+	hasName t_xml+      )++-- | add an \<?xml version=\"1.0\"?\> processing instruction+-- if it's not already there++addXmlPi		:: ArrowXml a => a XmlTree XmlTree+addXmlPi+    = fromLA+      ( insertChildrenAt 0 ( ( mkPi (mkSNsName t_xml) none+			       >>>+			       addAttr a_version "1.0"+			     )+			     <+>+			     txt "\n"+			   )+	`whenNot`+	hasXmlPi+      )++-- | add an encoding spec to the \<?xml version=\"1.0\"?\> processing instruction++addXmlPiEncoding	:: ArrowXml a => String -> a XmlTree XmlTree+addXmlPiEncoding enc+    = fromLA $+      processChildren ( addAttr a_encoding enc+		        `when`+			( isPi >>> hasName t_xml )+		      )++-- | add an XHTML strict doctype declaration to a document++addXHtmlDoctypeStrict+  , addXHtmlDoctypeTransitional+  , addXHtmlDoctypeFrameset	:: ArrowXml a => a XmlTree XmlTree++-- | add an XHTML strict doctype declaration to a document++addXHtmlDoctypeStrict+    = addDoctypeDecl "html" "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"++-- | add an XHTML transitional doctype declaration to a document++addXHtmlDoctypeTransitional+    = addDoctypeDecl "html" "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"++-- | add an XHTML frameset doctype declaration to a document++addXHtmlDoctypeFrameset+    = addDoctypeDecl "html" "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"++-- | add a doctype declaration to a document+--+-- The arguments are the root element name, the PUBLIC id and the SYSTEM id++addDoctypeDecl	:: ArrowXml a => String -> String -> String -> a XmlTree XmlTree+addDoctypeDecl rootElem public system+    = fromLA $+      replaceChildren+      ( mkDTDDoctype [ (a_name, rootElem)+		     , (k_public, public)+		     , (k_system, system)+		     ] none+	<+>+	getChildren+      )++-- ------------------------------------------------------------
+ src/Text/XML/HXT/Arrow/GeneralEntitySubstitution.hs view
@@ -0,0 +1,344 @@+-- ------------------------------------------------------------++{- |+   Module     : Text.XML.HXT.Arrow.GeneralEntitySubstitution+   Copyright  : Copyright (C) 2005 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: GeneralEntitySubstitution.hs,v 1.13 2006/05/01 18:56:24 hxml Exp $++   general entity substitution++-}++-- ------------------------------------------------------------++module Text.XML.HXT.Arrow.GeneralEntitySubstitution+    ( processGeneralEntities )+where++import Control.Arrow				-- arrow classes+import Control.Arrow.ArrowList+import Control.Arrow.ArrowIf+import Control.Arrow.ArrowTree++import Text.XML.HXT.Arrow.DOMInterface+import Text.XML.HXT.Arrow.XmlArrow+import Text.XML.HXT.Arrow.XmlIOStateArrow++import Text.XML.HXT.Arrow.ParserInterface+    ( parseXmlAttrValue+    , parseXmlGeneralEntityValue+    )++import Text.XML.HXT.Arrow.Edit+    ( transfCharRef+    )++import Text.XML.HXT.Arrow.DocumentInput+    ( getXmlEntityContents+    )++import Data.Maybe++import qualified Data.Map as M+    ( Map+    , empty+    , lookup+    , insert)++-- ------------------------------------------------------------++data GEContext+    = ReferenceInContent+    | ReferenceInAttributeValue+    | ReferenceInEntityValue+    -- or OccursInAttributeValue				-- not used during substitution but during validation+    -- or ReferenceInDTD					-- not used: syntax check detects errors++type GESubstArrow	= GEContext -> RecList -> GEArrow XmlTree XmlTree++type GEArrow b c	= IOStateArrow GEEnv b c++type RecList		= [String]++-- ------------------------------------------------------------++newtype GEEnv	= GEEnv (M.Map String GESubstArrow)++emptyGeEnv	:: GEEnv+emptyGeEnv	= GEEnv M.empty++lookupGeEnv		:: String -> GEEnv -> Maybe GESubstArrow+lookupGeEnv k (GEEnv env)+    = M.lookup k env++addGeEntry	:: String -> GESubstArrow -> GEEnv -> GEEnv+addGeEntry k a (GEEnv env)+    = GEEnv $ M.insert k a env++-- ------------------------------------------------------------++-- |+-- substitution of general entities+--+-- input: a complete document tree including root node++processGeneralEntities	:: IOStateArrow s XmlTree XmlTree+processGeneralEntities+    = ( traceMsg 1 "processGeneralEntities: collect and substitute general enities"+	>>>+	withOtherUserState emptyGeEnv (processChildren (processGeneralEntity ReferenceInContent []))+	>>>+	setDocumentStatusFromSystemState "in general entity processing"+	>>>+	traceTree+	>>>+	traceSource+      )+      `when`+      documentStatusOk++      +processGeneralEntity	:: GESubstArrow+processGeneralEntity context recl+    = choiceA [ isElem		:-> ( processAttrl (processChildren substEntitiesInAttrValue)+		                      >>>+		                      processChildren (processGeneralEntity context recl)+				    )+	      , isDTDDoctype	:-> processChildren (processGeneralEntity context recl)+	      , isDTDEntity	:-> addEntityDecl+	      , isDTDAttlist	:-> substEntitiesInAttrDefaultValue+	      , isEntityRef	:-> substEntityRef+	      , this 		:-> this+	      ]+    where+    addEntityDecl	:: GEArrow XmlTree XmlTree+    addEntityDecl+	= perform ( choiceA [ isIntern		:-> addInternalEntity		-- don't change sequence of cases+			    , isExtern		:-> addExternalEntity+			    , isUnparsed	:-> addUnparsedEntity+			    ]+		  )+	where+	isIntern	= none `when` hasDTDAttr k_system+	isExtern	= none `when` hasDTDAttr k_ndata+	isUnparsed	= this++    addInternalEntity	:: GEArrow XmlTree b+    addInternalEntity+	= ( ( getDTDAttrValue a_name+	      >>>+	      traceString 2 (("processGeneralEntity: general entity definition for " ++) . show)+	    )+	    &&&+	    xshow (getChildren >>> isText)+	  )+          >>>+	  applyA ( arr2 $ \ entity str ->+		   listA ( ( ( txt str+			       >>>+			       parseXmlGeneralEntityValue ("general internal entity" ++ show entity)+			       >>>+			       filterErrorMsg+			     )+			     `orElse` txt ""+			   )+			   >>>+			   processGeneralEntity ReferenceInEntityValue (entity : recl)+			 )+		   >>>+		   applyA (arr $ \ ts -> insertEntity (substInternal ts) entity)+		 )+	  >>>+	  none++    addExternalEntity	:: GEArrow XmlTree b+    addExternalEntity+	= ( ( getDTDAttrValue a_name+	      >>>+	      traceString 2 (("processGeneralEntity: external entity definition for " ++) . show)+            )+	    &&&+	    getDTDAttrValue a_url 			-- the absolute URL, not the relative in attr: k_system+	  )+	  >>>+	  applyA (arr2 $ \ entity uri -> insertEntity (substExternalParsed1Time uri) entity)+	  >>>+	  none++    addUnparsedEntity	:: GEArrow XmlTree b+    addUnparsedEntity+	= getDTDAttrValue a_name+	  >>>+	  traceString 2 (("processGeneralEntity: unparsed entity definition for " ++) . show)+          >>>+	  applyA (arr (insertEntity substUnparsed))+	  >>>+	  none++    insertEntity	:: (String -> GESubstArrow) -> String -> GEArrow b b+    insertEntity fct entity+	= ( getUserState+	    >>>+	    applyA (arr checkDefined)+	  )+	  `guards`+	  addEntity fct entity+	where+	checkDefined geEnv+	    = maybe ok alreadyDefined . lookupGeEnv entity $ geEnv+	    where+	    ok	= this+	    alreadyDefined _+		= issueWarn ("entity " ++ show entity ++ " already defined, repeated definition ignored")++    addEntity	:: (String -> GESubstArrow) -> String -> GEArrow b b+    addEntity fct entity+	= changeUserState ins+	where+	ins _ geEnv = addGeEntry entity (fct entity) geEnv++    substEntitiesInAttrDefaultValue	:: GEArrow XmlTree XmlTree+    substEntitiesInAttrDefaultValue+	= applyA ( xshow ( getDTDAttrValue a_default			-- parse the default value+			   >>>						-- substitute enities+			   mkText					-- and convert value into a string+			   >>>+			   parseXmlAttrValue "default value of attribute"+			   >>>+			   filterErrorMsg+			   >>>+			   substEntitiesInAttrValue+			 )+		   >>> arr (setDTDAttrValue a_default)+		 )+          `when` hasDTDAttr a_default++    substEntitiesInAttrValue	:: GEArrow XmlTree XmlTree+    substEntitiesInAttrValue+	= ( processGeneralEntity ReferenceInAttributeValue recl+	    `when`+	    isEntityRef+	  )+          >>>+	  changeText normalizeWhiteSpace+	  >>>+	  transfCharRef+	where+	normalizeWhiteSpace = map ( \c -> if c `elem` "\n\t\r" then ' ' else c )+++    substEntityRef	:: GEArrow XmlTree XmlTree+    substEntityRef+	= applyA ( ( ( getEntityRef				-- get the entity name and the env+		       >>>					-- and compute the arrow to be applied+		       traceString 2 (("processGeneralEntity: entity reference for entity " ++) . show)+		       >>>+		       traceMsg 3 ("recursion list = " ++ show recl)+		     )+		     &&&+		     getUserState+		   ) >>>+		   arr2 substA+		 )+	  `orElse` this+	  where+	  substA	:: String -> GEEnv -> GEArrow XmlTree XmlTree+	  substA entity geEnv+	      = maybe entityNotFound entityFound . lookupGeEnv entity $ geEnv+	      where+	      errMsg msg+		  = issueErr msg++	      entityNotFound+		  = errMsg ("general entity reference \"&" ++ entity ++ ";\" not processed, no definition found, (forward reference?)")++	      entityFound fct+		  | entity `elem` recl+		      = errMsg ("general entity reference \"&" ++ entity ++ ";\" not processed, cyclic definition")+		  | otherwise+		      = fct context recl++    substExternalParsed1Time				:: String -> String -> GESubstArrow+    substExternalParsed1Time uri entity cx rl+ 	= perform ( traceMsg 2 ("substExternalParsed1Time: read and parse external parsed entity " ++ show entity)+		    >>>+		    runInLocalURIContext ( root [sattr a_source uri] []		-- uri must be an absolute uri+					   >>>					-- abs uri is computed during parameter entity handling+					   listA ( getXmlEntityContents+						   >>>+						   processExternalEntityContents+						 )+					 )+		    >>>+		    applyA ( arr $ \ ts -> addEntity (substExternalParsed ts) entity )+		  )+	  >>>+	  processGeneralEntity cx rl+	where+	processExternalEntityContents	:: IOStateArrow s XmlTree XmlTree+	processExternalEntityContents+	    = ( ( documentStatusOk				-- reading entity succeeded+		  >>>						-- with content stored in a text node+		  (getChildren >>> isText)+		)+		`guards`+		( getChildren+		  >>>+		  parseXmlGeneralEntityValue ("external parsed entity " ++ show entity)+		  >>>+		  filterErrorMsg+		)+	      )+	      `orElse`+	      issueErr ("illegal value for external parsed entity " ++ show entity)++    substExternalParsed					:: XmlTrees -> String -> GESubstArrow+    substExternalParsed	ts entity ReferenceInContent rl	= includedIfValidating ts rl entity+    substExternalParsed	_  entity ReferenceInAttributeValue _+                                                        = forbidden entity "external parsed general" "in attribute value"+    substExternalParsed	_  _      ReferenceInEntityValue _+                                                        = bypassed++    substInternal					:: XmlTrees -> String -> GESubstArrow+    substInternal ts entity ReferenceInContent rl	= included          ts rl entity+    substInternal ts entity ReferenceInAttributeValue rl= includedInLiteral ts rl entity+    substInternal _  _      ReferenceInEntityValue _	= bypassed++    substUnparsed					:: String -> GESubstArrow+    substUnparsed entity ReferenceInContent        _	= forbidden entity "unparsed" "content"+    substUnparsed entity ReferenceInAttributeValue _	= forbidden entity "unparsed" "attribute value"+    substUnparsed entity ReferenceInEntityValue    _	= forbidden entity "unparsed" "entity value"++									-- XML 1.0 chapter 4.4.2+    included		:: XmlTrees -> RecList -> String -> GEArrow XmlTree XmlTree+    included ts rl entity+	= arrL (const ts)+	  >>>+	  processGeneralEntity context (entity : rl)++									-- XML 1.0 chapter 4.4.3+    includedIfValidating		:: XmlTrees -> RecList -> String -> GEArrow XmlTree XmlTree+    includedIfValidating+	= included++									-- XML 1.0 chapter 4.4.4+    forbidden		:: String -> String -> String -> GEArrow XmlTree XmlTree+    forbidden entity msg cx+ 	= issueErr ("reference of " ++ msg ++ show entity ++ " forbidden in " ++ cx)++									-- XML 1.0 chapter 4.4.5+    includedInLiteral		:: XmlTrees -> RecList -> String -> GEArrow XmlTree XmlTree+    includedInLiteral+	= included++									-- XML 1.0 chapter 4.4.7+    bypassed		:: GEArrow XmlTree XmlTree+    bypassed+	= this++-- ------------------------------------------------------------
+ src/Text/XML/HXT/Arrow/Namespace.hs view
@@ -0,0 +1,432 @@+-- ------------------------------------------------------------++{- |+   Module     : Text.XML.HXT.Arrow.Namespace+   Copyright  : Copyright (C) 2005 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: Namespace.hs,v 1.13 2006/11/12 14:52:59 hxml Exp $++   namespace specific arrows++-}++-- ------------------------------------------------------------++module Text.XML.HXT.Arrow.Namespace+    ( attachNsEnv+    , cleanupNamespaces+    , collectNamespaceDecl+    , collectPrefixUriPairs+    , isNamespaceDeclAttr+    , getNamespaceDecl+    , processWithNsEnv+    , processWithNsEnvWithoutAttrl+    , propagateNamespaces+    , uniqueNamespaces+    , uniqueNamespacesFromDeclAndQNames+    , validateNamespaces+    )+where++import Control.Arrow				-- arrow classes+import Control.Arrow.ArrowList+import Control.Arrow.ArrowIf+import Control.Arrow.ArrowTree+import Control.Arrow.ListArrow++import Text.XML.HXT.Arrow.DOMInterface+import Text.XML.HXT.Arrow.XmlArrow++import Data.Maybe+    ( isNothing+    , fromJust+    )++import Data.List+    ( nub )++-- ------------------------------------------------------------++-- | test whether an attribute node contains an XML Namespace declaration++isNamespaceDeclAttr	:: ArrowXml a => a XmlTree XmlTree+isNamespaceDeclAttr+    = fromLA $+      (getAttrName >>> isA isNsQName) `guards` this+      where+      isNsQName n+	  = px == a_xmlns+	    &&+	    (null lp || (not . null . tail $ lp))+	  where+	  (px, lp) = span (/= ':') . qualifiedName $ n++-- | get the namespace prefix and the namespace URI out of+-- an attribute tree with a namespace declaration (see 'isNamespaceDeclAttr')+-- for all other nodes this arrow fails++getNamespaceDecl	:: ArrowXml a => a XmlTree (String, String)+getNamespaceDecl+    = fromLA $+      isNamespaceDeclAttr+      >>>+      ( ( getAttrName+	  >>>+	  arr getNsPrefix+	)+	&&& xshow getChildren+      )+      where+      getNsPrefix = drop 6 . qualifiedName	-- drop "xmlns:"++-- ------------------------------------------------------------++-- | collect all namespace declarations contained in a document+--+-- apply 'getNamespaceDecl' to a whole XmlTree++collectNamespaceDecl	:: LA XmlTree (String, String)+collectNamespaceDecl    = multi getAttrl >>> getNamespaceDecl++-- | collect all (namePrefix, namespaceUri) pairs from a tree+--+-- all qualified names are inspected, whether a namespace uri is defined,+-- for these uris the prefix and uri is returned. This arrow is useful for+-- namespace cleanup, e.g. for documents generated with XSLT. It can be used+-- together with 'collectNamespaceDecl' to 'cleanupNamespaces'++collectPrefixUriPairs	:: LA XmlTree (String, String)+collectPrefixUriPairs+    = multi (isElem <+> getAttrl <+> isPi)+      >>>+      getQName+      >>>+      arrL getPrefixUri+    where+    getPrefixUri	:: QName -> [(String, String)]+    getPrefixUri n+	| null uri	= []+	| px == a_xmlns+	  ||+	  px == a_xml	= []				-- these ones are reserved an predefined+	| otherwise	= [(namePrefix n, uri)]+	where+	uri = namespaceUri n+	px  = namePrefix   n++-- ------------------------------------------------------------++-- | generate unique namespaces and add all namespace declarations to the root element+--+-- Calls 'cleanupNamespaces' with 'collectNamespaceDecl'++uniqueNamespaces		:: ArrowXml a => a XmlTree XmlTree+uniqueNamespaces+    = fromLA $+      cleanupNamespaces collectNamespaceDecl++-- | generate unique namespaces and add all namespace declarations for all prefix-uri pairs in all qualified names+--+-- useful for cleanup of namespaces in generated documents.+-- Calls 'cleanupNamespaces' with @ collectNamespaceDecl <+> collectPrefixUriPairs @++uniqueNamespacesFromDeclAndQNames	:: ArrowXml a => a XmlTree XmlTree+uniqueNamespacesFromDeclAndQNames+    = fromLA $+      cleanupNamespaces (collectNamespaceDecl <+> collectPrefixUriPairs)++-- | does the real work for namespace cleanup.+--+-- The parameter is used for collecting namespace uris and prefixes from the input tree++cleanupNamespaces	:: LA XmlTree (String, String) -> LA XmlTree XmlTree+cleanupNamespaces collectNamespaces+    = renameNamespaces $< (listA collectNamespaces >>^ nub)+    where+    renameNamespaces :: NsEnv -> LA XmlTree XmlTree+    renameNamespaces env+	= processBottomUp+	  ( processAttrl+	    ( ( none `when` isNamespaceDeclAttr )	-- remove all namespace declarations+	      >>>+	      changeQName renamePrefix			-- update namespace prefix of attribute names, if namespace uri is set+	    )+	    >>>+	    changeQName renamePrefix			-- update namespace prefix of element names+	  )+	  >>>+	  attachEnv env1				-- all all namespaces as attributes to the root node attribute list+	where+	renamePrefix	:: QName -> QName+	renamePrefix n+	    | null uri		= n+	    | isNothing newPx	= n+	    | otherwise		= n {namePrefix = fromJust newPx}+	    where+	    uri   = namespaceUri n+	    newPx = lookup uri revEnv1+	    +        revEnv1 = map (\ (x, y) -> (y, x)) env1++	env1 :: NsEnv+	env1 = newEnv [] uris++	uris :: [String]+	uris = nub . map snd $ env++	genPrefixes :: [String]+        genPrefixes = map (("ns" ++) . show) [(0::Int)..]++        newEnv	:: NsEnv -> [String] -> NsEnv+	newEnv env' []+	    = env'++	newEnv env' (uri:rest)+	    = newEnv env'' rest+	    where+	    env''    = (prefix, uri) : env'+	    prefix+		= head (filter notAlreadyUsed $ preferedPrefixes ++ genPrefixes)+	    preferedPrefixes+		= map fst . filter ((==uri).snd) $ env+	    notAlreadyUsed s+		= isNothing . lookup s $ env'++-- ------------------------------------------------------------++-- | auxiliary arrow for processing with a namespace environment+--+-- process a document tree with an arrow, containing always the+-- valid namespace environment as extra parameter.+-- The namespace environment is implemented as a 'Data.AssocList.AssocList'.+-- Processing of attributes can be controlled by a boolean parameter++processWithNsEnv1	:: ArrowXml a => Bool -> (NsEnv -> a XmlTree XmlTree) -> NsEnv -> a XmlTree XmlTree+processWithNsEnv1 withAttr f env+    = ifA isElem						-- the test is just an optimization+      ( processWithExtendedEnv $< arr (extendEnv env) )		-- only element nodes contain namespace declarations+      ( processWithExtendedEnv env )+    where+    processWithExtendedEnv env'+	= f env'						-- apply the env filter+	  >>>+	  ( ( if withAttr+	      then processAttrl (f env')			-- apply the env to all attributes+	      else this+	    )+	    >>>+	    processChildren (processWithNsEnv f env')		-- apply the env recursively to all children+	  )+          `when` isElem						-- attrl and children only need processing for elem nodes++    extendEnv	:: NsEnv -> XmlTree -> NsEnv+    extendEnv env' t'+	= addEntries newDecls env'+	where+	newDecls = runLA ( getAttrl >>> getNamespaceDecl ) t'++-- ------------------------------------------------------------++-- | process a document tree with an arrow, containing always the+-- valid namespace environment as extra parameter.+--+-- The namespace environment is implemented as a 'Data.AssocList.AssocList'++processWithNsEnv		:: ArrowXml a => (NsEnv -> a XmlTree XmlTree) -> NsEnv -> a XmlTree XmlTree+processWithNsEnv		= processWithNsEnv1 True++-- | process all element nodes of a document tree with an arrow, containing always the+-- valid namespace environment as extra parameter. Attribute lists are not processed.+--+-- See also: 'processWithNsEnv'++processWithNsEnvWithoutAttrl	:: ArrowXml a => (NsEnv -> a XmlTree XmlTree) -> NsEnv -> a XmlTree XmlTree+processWithNsEnvWithoutAttrl	= processWithNsEnv1 False++-- -----------------------------------------------------------------------------++-- | attach all valid namespace declarations to the attribute list of element nodes.+--+-- This arrow is useful for document processing, that requires access to all namespace+-- declarations at any element node, but which cannot be done with a simple 'processWithNsEnv'.++attachNsEnv	:: ArrowXml a => NsEnv -> a XmlTree XmlTree+attachNsEnv initialEnv+    = fromLA $ processWithNsEnvWithoutAttrl attachEnv initialEnv+    where++attachEnv	:: NsEnv -> LA XmlTree XmlTree+attachEnv env+    = ( processAttrl (none `when` isNamespaceDeclAttr)+	>>>+	addAttrl (catA nsAttrl)+      )+      `when` isElem+    where+    nsAttrl		:: [LA XmlTree XmlTree]+    nsAttrl		= map nsDeclToAttr env++    nsDeclToAttr	:: (String, String) -> LA XmlTree XmlTree+    nsDeclToAttr (n, uri)+	= mkAttr qn (txt uri)+	where+	qn :: QName+	qn = mkNsName (a_xmlns ++ (if null n then "" else ':' : n)) xmlnsNamespace++-- -----------------------------------------------------------------------------++-- |+-- propagate all namespace declarations \"xmlns:ns=...\" to all element and attribute nodes of a document.+--+-- This arrow does not check for illegal use of namespaces.+-- The real work is done by 'propagateNamespaceEnv'.+--+-- The arrow may be applied repeatedly if neccessary.++propagateNamespaces	:: ArrowXml a => a XmlTree XmlTree+propagateNamespaces	= fromLA $ propagateNamespaceEnv [ (a_xml, xmlNamespace), (a_xmlns, xmlnsNamespace) ]++-- |+-- attaches the namespace info given by the namespace table+-- to a tag node and its attributes and children.++propagateNamespaceEnv	:: NsEnv -> LA XmlTree XmlTree+propagateNamespaceEnv+    = processWithNsEnv addNamespaceUri+    where+    addNamespaceUri	:: NsEnv -> LA XmlTree XmlTree+    addNamespaceUri env'+	= choiceA [ isElem :-> changeElemName (setNamespace env')+		  , isAttr :-> attachNamespaceUriToAttr env'+		  , isPi   :-> changePiName   (setNamespace env')+		  , this   :-> this+		  ]++    attachNamespaceUriToAttr	:: NsEnv -> LA XmlTree XmlTree+    attachNamespaceUriToAttr attrEnv+	= ( ( getName >>> isA hasPrefixLocalPart )+	    `guards`+	    changeAttrName (setNamespace attrEnv)+	  )+          `orElse`+	  ( changeAttrName (const xmlnsQN)+	    `when`+	    hasName a_xmlns+	  )+	where+	hasPrefixLocalPart	:: String -> Bool+	hasPrefixLocalPart s+	    = ( ':' `elem` s )				-- small optimization: only do some string handling when is ':' found+	      &&+	      ( let					-- check none empty prefix and local part+		(px, lp) = span (/= ':') s+		in+		not (null px) && not (null (drop 1 lp))+	      )++-- -----------------------------------------------------------------------------++-- |+-- validate the namespace constraints in a whole tree.+--+-- Result is the list of errors concerning namespaces.+-- Predicates 'isWellformedQName', 'isWellformedQualifiedName', 'isDeclaredNamespaces'+-- and 'isWellformedNSDecl' are applied to the appropriate elements and attributes.++validateNamespaces	:: ArrowXml a => a XmlTree XmlTree+validateNamespaces	= fromLA validateNamespaces1++validateNamespaces1	:: LA XmlTree XmlTree+validateNamespaces1+    = choiceA [ isRoot	:-> ( getChildren >>> validateNamespaces1 )		-- root is correct by definition+	      , this	:-> multi validate1Namespaces+	      ]++-- |+-- a single node for namespace constrains.++validate1Namespaces	:: LA XmlTree XmlTree+validate1Namespaces+    = choiceA+      [ isElem	:-> catA [ ( getQName >>> isA ( not . isWellformedQName )+			   )+			   `guards` nsError (\ n -> "element name " ++ show n ++ " is not a wellformed qualified name" )++			 , ( getQName >>> isA ( not . isDeclaredNamespace )+			   )+			   `guards` nsError (\ n -> "namespace for prefix in element name " ++ show n ++ " is undefined" )++		         , doubleOcc $< ( (getAttrl >>> getUniversalName) >>. doubles )++			 , getAttrl >>> validate1Namespaces+		         ]++      , isAttr	:-> catA [ ( getQName >>> isA ( not . isWellformedQName )+			   )+			   `guards` nsError (\ n -> "attribute name " ++ show n ++ " is not a wellformed qualified name" )++			 , ( getQName >>> isA ( not . isDeclaredNamespace )+			   )+			   `guards` nsError (\ n -> "namespace for prefix in attribute name " ++ show n ++ " is undefined" )++			 , ( hasNamePrefix a_xmlns >>> xshow getChildren >>> isA null+			   )+			   `guards` nsError (\ n -> "namespace value of namespace declaration for " ++ show n ++ " has no value" )++                         , ( getQName >>> isA (not . isWellformedNSDecl )+			   )+			   `guards`  nsError (\ n -> "illegal namespace declaration for name " ++ n ++ " starting with reserved prefix " ++ show "xml" )+			 ]++      , isDTD	:-> catA [ isDTDDoctype <+> isDTDAttlist <+> isDTDElement <+> isDTDName+		           >>>+			   getDTDAttrValue a_name+			   >>>+			   ( isA (not . isWellformedQualifiedName)+			     `guards`+			     nsErr (\ n -> "a DTD part contains a not wellformed qualified Name: " ++ show n)+			   )++			 , isDTDAttlist+			   >>>+			   getDTDAttrValue a_value+			   >>>+			   ( isA (not . isWellformedQualifiedName)+			     `guards`+			     nsErr (\ n -> "an ATTLIST declaration contains as attribute name a not wellformed qualified Name: " ++ show n)+			   )++                         , isDTDEntity <+> isDTDPEntity <+> isDTDNotation+			   >>>+			   getDTDAttrValue a_name+			   >>>+			   ( isA (not . isNCName)+                             `guards`+			     nsErr (\ n -> "an entity or notation declaration contains a not wellformed NCName: " ++ show n)+			   )+			 ]+      , isPi	:-> catA [ getName+		           >>>+			   ( isA (not . isNCName)+			     `guards`+			     nsErr (\ n -> "a PI contains a not wellformed NCName: " ++ show n)+			   )+			 ]+      ]+    where+    nsError	:: (String -> String) -> LA XmlTree XmlTree+    nsError msg+	= getName >>> nsErr msg++    nsErr	:: (String -> String) -> LA String XmlTree+    nsErr msg	= arr msg >>> mkError c_err++    doubleOcc	:: String -> LA XmlTree XmlTree+    doubleOcc an+	= nsError (\ n -> "multiple occurences of universal name for attributes of tag " ++ show n ++ " : " ++ show an )++-- ------------------------------------------------------------
+ src/Text/XML/HXT/Arrow/ParserInterface.hs view
@@ -0,0 +1,78 @@+-- |+-- interface to the HXT XML and DTD parsers+--+-- version: $Id: ParserInterface.hs,v 1.1 2006/05/01 18:56:24 hxml Exp $++module Text.XML.HXT.Arrow.ParserInterface+    ( module Text.XML.HXT.Arrow.ParserInterface )+where++import Control.Arrow.ArrowList++import Text.XML.HXT.Arrow.DOMInterface+import Text.XML.HXT.Arrow.XmlArrow++import qualified Text.XML.HXT.Parser.HtmlParsec          as HP+import qualified Text.XML.HXT.Parser.XmlParsec           as XP+import qualified Text.XML.HXT.Parser.XmlDTDParser	 as DP+import qualified Text.XML.HXT.Validator.ValidationFilter as VA++-- ------------------------------------------------------------++parseXmlDoc			:: ArrowXml a => a (String, String) XmlTree+parseXmlDoc			=  arr2L XP.parseXmlDocument++parseXmlDTDPart			:: ArrowXml a => a (String, XmlTree) XmlTree+parseXmlDTDPart			=  arr2L XP.parseXmlDTDPart++parseXmlContent			:: ArrowXml a => a String XmlTree+parseXmlContent			=  arrL XP.xread++parseXmlEntityEncodingSpec+  , parseXmlDocEncodingSpec+  , removeEncodingSpec+  , substXmlEntityRefs		:: ArrowXml a => a XmlTree XmlTree++parseXmlDocEncodingSpec		=  arrL XP.parseXmlDocEncodingSpec+parseXmlEntityEncodingSpec	=  arrL XP.parseXmlEntityEncodingSpec++removeEncodingSpec		=  arrL XP.removeEncodingSpec++parseXmlDTDdeclPart		:: ArrowXml a => a XmlTree XmlTree+parseXmlDTDdeclPart		=  arrL DP.parseXmlDTDdeclPart++parseXmlDTDdecl			:: ArrowXml a => a XmlTree XmlTree+parseXmlDTDdecl			=  arrL DP.parseXmlDTDdecl++parseXmlDTDEntityValue		:: ArrowXml a => a XmlTree XmlTree+parseXmlDTDEntityValue		=  arrL DP.parseXmlDTDEntityValue++parseXmlAttrValue		:: ArrowXml a => String -> a XmlTree XmlTree+parseXmlAttrValue context	=  arrL (XP.parseXmlAttrValue context)++parseXmlGeneralEntityValue	:: ArrowXml a => String -> a XmlTree XmlTree+parseXmlGeneralEntityValue context+				=  arrL (XP.parseXmlGeneralEntityValue context)++substXmlEntityRefs		=  arrL XP.substXmlEntities++-- ------------------------------------------------------------++parseHtmlDoc			:: ArrowList a => a (String, String) XmlTree+parseHtmlDoc			= arr2L HP.parseHtmlDocument++parseHtmlContent		:: ArrowList a => a String XmlTree+parseHtmlContent		= arrL  HP.parseHtmlContent++substHtmlEntityRefs		:: ArrowList a => a XmlTree XmlTree+substHtmlEntityRefs		= arrL HP.substHtmlEntities++-- ------------------------------------------------------------++validateDoc+  , transformDoc		:: ArrowList a => a XmlTree XmlTree++validateDoc			= arrL VA.validate+transformDoc			= arrL VA.transform++-- ------------------------------------------------------------
+ src/Text/XML/HXT/Arrow/ProcessDocument.hs view
@@ -0,0 +1,265 @@+-- ------------------------------------------------------------++{- |+   Module     : Text.XML.HXT.Arrow.ProcessDocument+   Copyright  : Copyright (C) 2005 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: ProcessDocument.hs,v 1.3 2006/08/30 16:20:52 hxml Exp $++Compound arrows for reading, parsing, validating and writing XML documents++All arrows use IO and a global state for options, errorhandling, ...+-}++-- ------------------------------------------------------------++module Text.XML.HXT.Arrow.ProcessDocument+    ( parseXmlDocument+    , parseHtmlDocument+    , validateDocument+    , propagateAndValidateNamespaces+    , getDocumentContents+    )+where++import Control.Arrow				-- arrow classes+import Control.Arrow.ArrowList+import Control.Arrow.ArrowIf+import Control.Arrow.ArrowTree++import Text.XML.HXT.Arrow.DOMInterface+import Text.XML.HXT.Arrow.XmlArrow+import Text.XML.HXT.Arrow.XmlIOStateArrow++import Text.XML.HXT.Arrow.ParserInterface+    ( parseXmlDoc+    , parseHtmlDoc+    , substHtmlEntityRefs+    , validateDoc+    , transformDoc+    )++import Text.XML.HXT.Arrow.Edit+    ( transfAllCharRef+    )++import Text.XML.HXT.Arrow.GeneralEntitySubstitution+    ( processGeneralEntities+    )++import Text.XML.HXT.Arrow.DTDProcessing+    ( processDTD+    )++import Text.XML.HXT.Arrow.DocumentInput+    ( getXmlContents+    )++import Text.XML.HXT.Arrow.Namespace+    ( propagateNamespaces+    , validateNamespaces+    )++-- ------------------------------------------------------------++{- | +XML parser++Input tree must be a root tree with a text tree as child containing the document to be parsed.+The parser generates from the input string a tree of a wellformed XML document,+processes the DTD (parameter substitution, conditional DTD parts, ...) and+substitutes all general entity references. Next step is character reference substitution.+Last step is the document validation.+Validation can be controlled by an extra parameter.++Example:++> parseXmlDocument True    -- parse and validate document+>+> parseXmlDocument False   -- only parse document, don't validate++This parser is useful for applications processing correct XML documents.+-}++parseXmlDocument	:: Bool -> IOStateArrow s XmlTree XmlTree+parseXmlDocument validate+    = ( replaceChildren ( ( getAttrValue a_source+			    &&&+			    xshow getChildren+			  )+			  >>>+			  parseXmlDoc+			  >>>+			  filterErrorMsg+			)+	>>>+	setDocumentStatusFromSystemState "parse XML document"+	>>>+	processDTD+	>>>+	processGeneralEntities+	>>>+	transfAllCharRef+	>>>+	( if validate+	  then validateDocument+	  else this+	)+      )+      `when` documentStatusOk++-- ------------------------------------------------------------++{- | +HTML parser++Input tree must be a root tree with a text tree as child containing the document to be parsed.+The parser tries to parse everything as HTML, if the HTML document is not wellformed XML or if+errors occur, warnings are generated. The warnings can be issued, or suppressed.++Example: @ parseHtmlDocument True @ : parse document and issue warnings++This parser is useful for applications like web crawlers, where the pages may contain+arbitray errors, but the application is only interested in parts of the document, e.g. the plain text.++-}++parseHtmlDocument	:: Bool -> IOStateArrow s XmlTree XmlTree+parseHtmlDocument warnings+    = ( perform ( getAttrValue a_source >>> traceString 1 (("parseHtmlDoc: parse HTML document " ++) . show) )+	>>>+	replaceChildren ( ( getAttrValue a_source		-- get source name+			    &&&+			    xshow getChildren+			  ) 					-- get string to be parsed+			  >>>+			  parseHtmlDoc				-- run parser+			  >>>+			  processTopDown substHtmlEntityRefs	-- substitute entity refs+			)+	>>>+	processTopDownWithAttrl ( if warnings		-- remove warnings inserted by parser and entity subst+				  then filterErrorMsg+				  else ( none+					 `when`+					 isError+				       )+				)+	>>>+	setDocumentStatusFromSystemState "parse HTML document"+	>>>+	traceTree+	>>>+	traceSource+	>>>+	perform ( getAttrValue a_source >>> traceString 1 (\ src -> "parse HTML document " ++ show src ++ " finished") )+      )+      `when` documentStatusOk++-- ------------------------------------------------------------++{- | Document validation++Input must be a complete document tree. The document+is validated with respect to the DTD spec.+Only useful for XML documents containing a DTD.++If the document is valid, it is transformed with respect to the DTD,+normalization of attribute values, adding default values, sorting attributes by name,...++If no error was found, result is the normalized tree,+else the error status is set in the list of attributes+of the root node \"\/\" and the document content is removed from the tree.++-}++validateDocument	:: IOStateArrow s XmlTree XmlTree+validateDocument+    = ( traceMsg 1 "validating document"+	>>>+	perform ( validateDoc+		  >>>+		  filterErrorMsg+		)+	>>>+	setDocumentStatusFromSystemState "document validation"+	>>>+	transformDoc+	>>>+	traceMsg 1 "document validated"+	>>>+	traceSource+	>>>+	traceTree+      )+      `when`+      documentStatusOk+      +-- ------------------------------------------------------------++{- | Namespace propagation++Input must be a complete document tree. The namespace declarations+are evaluated and all element and attribute names are processed by+splitting the name into prefix, local part and namespace URI.++Naames are checked with respect to the XML namespace definition++If no error was found, result is the unchanged input tree,+else the error status is set in the list of attributes+of the root node \"\/\" and the document content is removed from the tree.+++-}++propagateAndValidateNamespaces	:: IOStateArrow s XmlTree XmlTree+propagateAndValidateNamespaces+    = ( traceMsg 1 "propagating namespaces"+	>>>+	propagateNamespaces+	>>>+	traceTree+	>>>+	traceSource+	>>>+	traceMsg 1 "validating namespaces"+	>>>+	( setDocumentStatusFromSystemState "namespace propagation"+	  `when`+	  ( validateNamespaces >>> perform filterErrorMsg )+	)+	>>>+	traceMsg 1 "namespace validation finished"+      )+      `when`+      documentStatusOk++-- ------------------------------------------------------------++{- |+   creates a new document root, adds all options+   as attributes to the document root and calls 'getXmlContents'.++   If the document name is the empty string, the document will be read+   from standard input.++   For supported protocols see 'Text.XML.HXT.Arrow.DocumentInput.getXmlContents'+-}++getDocumentContents	:: Attributes -> String -> IOStateArrow s b XmlTree+getDocumentContents options src+    = root [] []+      >>>+      addAttr a_source src+      >>>+      seqA (map (uncurry addAttr) options)					-- add all options to doc root+      >>>									-- e.g. getXmlContents needs some of these+      traceMsg 1 ("readDocument: start processing document " ++ show src)+      >>>+      getXmlContents++-- ------------------------------------------------------------
+ src/Text/XML/HXT/Arrow/ReadDocument.hs view
@@ -0,0 +1,293 @@+-- ------------------------------------------------------------++{- |+   Module     : Text.XML.HXT.Arrow.ReadDocument+   Copyright  : Copyright (C) 2005 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: ReadDocument.hs,v 1.10 2006/11/24 07:41:37 hxml Exp $++Compound arrows for reading an XML\/HTML document or an XML\/HTML string++-}++-- ------------------------------------------------------------++module Text.XML.HXT.Arrow.ReadDocument+    ( readDocument+    , readFromDocument+    , readString+    , readFromString+    , hread+    , xread+    )+where++import Control.Arrow.ListArrows++import Text.XML.HXT.Arrow.DOMInterface+import Text.XML.HXT.Arrow.XmlArrow+import Text.XML.HXT.Arrow.XmlIOStateArrow++import Text.XML.HXT.Arrow.Edit+    ( canonicalizeAllNodes+    , canonicalizeForXPath+    , canonicalizeContents+    , removeDocWhiteSpace+    )++import Text.XML.HXT.Arrow.ParserInterface+    +import Text.XML.HXT.Arrow.ProcessDocument+    ( getDocumentContents+    , parseXmlDocument+    , parseHtmlDocument+    , propagateAndValidateNamespaces+    )++import Text.XML.HXT.RelaxNG.Validator+    ( validateDocumentWithRelaxSchema+    )++-- ------------------------------------------------------------++{- |+the main document input filter++this filter can be configured by an option list, a value of type "Attributes"++available options:++* 'a_parse_html': use HTML parser, else use XML parser (default)++- 'a_validate' : validate document againsd DTD (default), else skip validation++- 'a_relax_schema' : validate document with Relax NG, the options value is the schema URI+                     this implies using XML parser, no validation against DTD, and canonicalisation++- 'a_check_namespaces' : check namespaces, else skip namespace processing (default)++- 'a_canonicalize' : canonicalize document (default), else skip canonicalization++- 'a_preserve_comment' : preserve comments during canonicalization, else remove comments (default)++- 'a_remove_whitespace' : remove all whitespace, used for document indentation, else skip this step (default)++- 'a_indent' : indent document by inserting whitespace, else skip this step (default)++- 'a_issue_warnings' : issue warnings, when parsing HTML (default), else ignore HTML parser warnings++- 'a_issue_errors' : issue all error messages on stderr (default), or ignore all error messages (default)++- 'a_trace' : trace level: values: 0 - 4++- 'a_proxy' : proxy for http access, e.g. www-cache:3128++- 'a_use_curl' : for http access via external programm curl, default is native HTTP access++- 'a_options_curl' : more options for external program curl++- 'a_encoding' : default document encoding ('utf8', 'isoLatin1', 'usAscii', ...)++All attributes not evaluated by readDocument are stored in the created document root node for easy access of the various+options in e.g. the input\/output modules++If the document name is the empty string or an uri of the form \"stdin:\", the document is read from standard input.++examples:++> readDocument [ ] "test.xml"++reads and validates a document \"test.xml\", no namespace propagation, only canonicalization is performed ++> readDocument [ (a_validate, "0")+>              , (a_encoding, isoLatin1)+>              ] "test.xml"++reads document \"test.xml\" without validation, default encoding 'isoLatin1'.+++> readDocument [ (a_parse_html, "1")+>              , (a_encoding, isoLatin1)+>              ] ""++reads a HTML document from standard input, no validation is done when parsing HTML, default encoding is 'isoLatin1'++> readDocument [ (a_parse_html,     "1")+>              , (a_proxy,          "www-cache:3128")+>              , (a_curl,           "1")+>              , (a_issue_warnings, "0")+>              ] "http://www.haskell.org/"++reads Haskell homepage with HTML parser ignoring any warnings, with http access via external program curl and proxy \"www-cache\" at port 3128++> readDocument [ (a_validate,          "1")+>              , (a_check_namespace,   "1")+>              , (a_remove_whitespace, "1")+>              , (a_trace,             "2")+>              ] "http://www.w3c.org/"++read w3c home page (xhtml), validate and check namespaces, remove whitespace between tags, trace activities with level 2++for minimal complete examples see 'Text.XML.HXT.Arrow.WriteDocument.writeDocument' and 'runX', the main starting point for running an XML arrow.+-}++readDocument	:: Attributes -> String -> IOStateArrow s b XmlTree+readDocument userOptions src+    = traceLevel+      >>>+      addInputOptionsToSystemState+      >>>+      getDocumentContents remainingOptions src+      >>>+      parse+      >>>+      checknamespaces+      >>>+      canonicalize+      >>>+      whitespace+      >>>+      relax+      >>>+      traceMsg 1 ("readDocument: " ++ show src ++ " processed")+      >>>+      traceSource+      >>>+      traceTree+    where+    parse+	| validateWithRelax		= parseXmlDocument False		-- for Relax NG use XML parser without validation++	| hasOption a_parse_html	= parseHtmlDocument			-- parse as HTML+					  (hasOption a_issue_warnings)++	| otherwise			= parseXmlDocument+					  (hasOption a_validate)		-- parse as XML++    checknamespaces+	| hasOption a_check_namespaces+	  ||+	  validateWithRelax		= propagateAndValidateNamespaces+	| otherwise			= this++    canonicalize+	| validateWithRelax		= canonicalizeAllNodes+	| hasOption a_canonicalize+	  &&+	  hasOption a_preserve_comment	= canonicalizeForXPath+	| hasOption a_canonicalize	= canonicalizeAllNodes+	| otherwise			= this++    relax+	| validateWithRelax		= validateDocumentWithRelaxSchema remainingOptions relaxSchema+	| otherwise			= this++    whitespace+	| hasOption a_remove_whitespace	= removeDocWhiteSpace+	| otherwise			= this++    addInputOptionsToSystemState+	= addSysOptions (filter ((`elem` httpOptions) . fst) remainingOptions)+	  where+	  addSysOptions+	      = seqA . map (uncurry setParamString)++    traceLevel+	= maybe this (setTraceLevel . read) . lookup a_trace $ options++    validateWithRelax+	= hasEntry a_relax_schema options++    relaxSchema+	= lookup1 a_relax_schema options++    hasOption n+	= optionIsSet n options++    options = addEntries userOptions defaultOptions++    defaultOptions+	= [ ( a_parse_html,		v_0 )+	  , ( a_validate,		v_1 )+	  , ( a_issue_warnings,		v_1 )+	  , ( a_check_namespaces,	v_0 )+	  , ( a_canonicalize,		v_1 )+	  , ( a_preserve_comment,	v_0 )+	  , ( a_remove_whitespace,	v_0 )+	  ]++    httpOptions+	= [a_proxy, a_use_curl, a_options_curl]++    remainingOptions+	 = filter (not . flip hasEntry defaultOptions . fst) options++-- ------------------------------------------------------------++-- |+-- the arrow version of 'readDocument', the arrow input is the source URI++readFromDocument	:: Attributes -> IOStateArrow s String XmlTree+readFromDocument userOptions+    = applyA ( arr $ \ s -> readDocument userOptions s )++-- ------------------------------------------------------------++-- |+-- read a document that is stored in a normal Haskell String+--+-- the same function as readDocument, but the parameter forms the input.+-- All options available for 'readDocument' are applicable for readString.+--+-- Default encoding: No encoding is done, the String argument is taken as Unicode string++readString	:: Attributes -> String -> IOStateArrow s b XmlTree+readString userOptions content+    = readDocument ( (a_encoding, unicodeString) : userOptions ) (stringProtocol ++ content)++-- ------------------------------------------------------------++-- |+-- the arrow version of 'readString', the arrow input is the source URI++readFromString	:: Attributes -> IOStateArrow s String XmlTree+readFromString userOptions+    = applyA ( arr $ \ s -> readString userOptions s )++-- ------------------------------------------------------------++-- |+-- parse a string as HTML content, substitute all HTML entity refs and canonicalize tree+-- (substitute char refs, ...). Errors are ignored.+-- +-- A simpler version of 'readFromString' but with less functionality.+-- Does not run in the IO monad++hread			:: ArrowXml a => a String XmlTree+hread+    = parseHtmlContent+      >>>+      processTopDown substHtmlEntityRefs+      >>>+      processTopDown ( none `when` isError )+      >>>+      canonicalizeContents++-- |+-- parse a string as XML content, substitute all predefined XML entity refs and canonicalize tree+-- (substitute char refs, ...)++xread			:: ArrowXml a => a String XmlTree+xread+    = parseXmlContent+      >>>+      processTopDown substXmlEntityRefs+      >>>+      canonicalizeContents++-- ------------------------------------------------------------+
+ src/Text/XML/HXT/Arrow/WriteDocument.hs view
@@ -0,0 +1,192 @@+-- ------------------------------------------------------------++{- |+   Module     : Text.XML.HXT.Arrow.WriteDocument+   Copyright  : Copyright (C) 2005 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: WriteDocument.hs,v 1.8 2006/11/09 20:27:42 hxml Exp $++Compound arrow for writing XML documents++-}++-- ------------------------------------------------------------++module Text.XML.HXT.Arrow.WriteDocument+    ( writeDocument+    , writeDocumentToString+    )+where++import Control.Arrow				-- arrow classes+import Control.Arrow.ArrowList+import Control.Arrow.ArrowIf+import Control.Arrow.ArrowTree++import Text.XML.HXT.Arrow.DOMInterface+import Text.XML.HXT.Arrow.XmlArrow+import Text.XML.HXT.Arrow.XmlIOStateArrow++import Text.XML.HXT.Arrow.Edit+    ( indentDoc+    , removeDocWhiteSpace+    , treeRepOfXmlDoc+    , haskellRepOfXmlDoc+    , escapeXmlDoc+    , escapeHtmlDoc+    )++import Text.XML.HXT.Arrow.DocumentOutput+    ( putXmlDocument+    , encodeDocument+    )++-- ------------------------------------------------------------++{- |+the main filter for writing documents++this filter can be configured by an option list like 'Text.XML.HXT.Arrow.ReadDocument.readDocument'++usage: @ writeDocument optionList destination @++if @ destination @ is the empty string or \"-\", stdout is used as output device++available options are++* 'a_indent' : indent document for readability, (default: no indentation)++- 'a_remove_whitespace' : remove all redundant whitespace for shorten text (default: no removal)++- 'a_output_encoding' : encoding of document, default is 'a_encoding' or 'utf8'++- 'a_output_xml' : (default) issue XML: quote special XML chars \>,\<,\",\',& where neccessary+                   add XML processing instruction+                   and encode document with respect to 'a_output_encoding',+                   if explicitly switched of, the plain text is issued, this is useful+                   for non XML output, e.g. generated Haskell code, LaTex, Java, ...++- 'a_output_html' : issue XHTML: quote alle XML chars, use HTML entity refs or char refs for none ASCII chars++- 'a_no_xml_pi' : suppress generation of \<?xml ... ?\> processing instruction++- 'a_show_tree' : show tree representation of document (for debugging)++- 'a_show_haskell' : show Haskell representaion of document (for debugging)++ a minimal main program for copying a document+ has the following structure:++> module Main+> where+> +> import Text.XML.HXT.Arrow+> +> main        :: IO ()+> main+>     = do+>       runX ( readDocument  [] "hello.xml"+>              >>>+>              writeDocument [] "bye.xml"+>            )+>       return ()++an example for copying a document to standard output with tracing and evaluation of+error code is:++> module Main+> where+> +> import Text.XML.HXT.Arrow+> import System.Exit+> +> main        :: IO ()+> main+>     = do+>       [rc] <- runX ( readDocument  [ (a_trace, "1")+>                                    ] "hello.xml"+>                      >>>+>                      writeDocument [ (a_output_encoding, isoLatin1)+>                                    ] "-"        -- output to stdout+>                      >>>+>                      getErrStatus+>                    )+>       exitWith ( if rc >= c_err+>                  then ExitFailure 1+>                  else ExitSuccess+>                )+-}++writeDocument	:: Attributes -> String -> IOStateArrow s XmlTree XmlTree+writeDocument userOptions dst+    = perform ( traceMsg 1 ("writeDocument: destination is " ++ show dst)+		>>>+		prepareContents userOptions+		>>>+		putXmlDocument dst+		>>>+		traceMsg 1 "writeDocument: finished"+	      )+      `when`+      documentStatusOk++-- ------------------------------------------------------------++-- |+-- Convert a document into a string. Formatiing is done the same way+-- and with the same options as in 'writeDocument'.++writeDocumentToString	:: Attributes  ->  IOStateArrow s XmlTree String+writeDocumentToString userOptions+    = prepareContents userOptions+      >>>+      xshow getChildren++-- ------------------------------------------------------------++prepareContents	:: Attributes -> IOStateArrow s XmlTree XmlTree+prepareContents userOptions+    = indent+      >>>+      format+    where+    indent+	| hasOption a_indent		= indentDoc			-- document indentation+	| hasOption a_remove_whitespace	= removeDocWhiteSpace		-- remove all whitespace between tags+	| otherwise			= this++    format+	| hasOption a_show_tree		= treeRepOfXmlDoc+	| hasOption a_show_haskell	= haskellRepOfXmlDoc+	| hasOption a_output_html	= escapeHtmlDoc			-- escape al XML and HTML chars >= 128+					  >>>+					  encodeDocument		-- convert doc into text with respect to output encoding with ASCII as default+					    suppressXmlPi ( lookupDef usAscii a_output_encoding options )+	| hasOption a_output_xml	= escapeXmlDoc			-- escape lt, gt, amp, quot, +					  >>>+					  encodeDocument		-- convert doc into text with respect to output encoding+					    suppressXmlPi ( lookupDef "" a_output_encoding options )+	| otherwise			= this++    suppressXmlPi							-- remove <?xml ... ?> when set+	= hasOption a_no_xml_pi++    hasOption n+	= optionIsSet n options++    options = addEntries +              userOptions +	      [ ( a_indent,		v_0 )+	      , ( a_remove_whitespace,	v_0 )+	      , ( a_output_xml,		v_1 )+	      , ( a_show_tree,		v_0 )+	      , ( a_show_haskell,	v_0 )+	      , ( a_output_html,	v_0 )+	      , ( a_no_xml_pi,          v_0 )+	      ]++-- ------------------------------------------------------------
+ src/Text/XML/HXT/Arrow/XmlArrow.hs view
@@ -0,0 +1,621 @@+-- ------------------------------------------------------------++{- |+   Module     : Text.XML.HXT.Arrow.XmlArrow+   Copyright  : Copyright (C) 2005 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: XmlArrow.hs,v 1.34 2006/11/02 16:43:39 hxml Exp $++Basic arrows for processing XML documents++All arrows use IO and a global state for options, errorhandling, ...+-}++-- ------------------------------------------------------------++module Text.XML.HXT.Arrow.XmlArrow+    ( module Text.XML.HXT.Arrow.XmlArrow )+where++import Data.Maybe++import Control.Arrow			-- classes+import Control.Arrow.ArrowList+import Control.Arrow.ArrowIf+import Control.Arrow.ArrowTree++import Control.Arrow.ListArrow		-- arrow types+import Control.Arrow.StateListArrow+import Control.Arrow.IOListArrow+import Control.Arrow.IOStateListArrow++import           Text.XML.HXT.DOM.TypeDefs+import qualified Text.XML.HXT.DOM           as XD (t_root, xshow)+import qualified Text.XML.HXT.Arrow.XmlNode as XN++{- | Arrows for processing 'Text.XML.HXT.DOM.TypeDefs.XmlTree's++These arrows can be grouped into predicates, selectors, constructors, and transformers.++All predicates (tests) act like 'Control.Arrow.ArrowIf.none' for failure and 'Control.Arrow.ArrowIf.this' for success.+A logical and can be formed by @ a1 >>> a2 @, a locical or by @ a1 \<+\> a2 @.++Selector arrows will fail, when applied to wrong input, e.g. selecting the text of a node with 'getText'+will fail when applied to a none text node.++Edit arrows will remain the input unchanged, when applied to wrong argument, e.g. editing the content of a text node+with 'changeText' applied to an element node will return the unchanged element node.+-}++infixl 7 +=++class (Arrow a, ArrowList a, ArrowTree a) => ArrowXml a where++    -- discriminating predicates++    -- | test for text nodes+    isText		:: a XmlTree XmlTree+    isText		= isA XN.isText++    -- | test for char reference, used during parsing+    isCharRef		:: a XmlTree XmlTree+    isCharRef		= isA XN.isCharRef++    -- | test for entity reference, used during parsing+    isEntityRef		:: a XmlTree XmlTree+    isEntityRef		= isA XN.isEntityRef++    -- | test for comment+    isCmt		:: a XmlTree XmlTree+    isCmt		= isA XN.isCmt++    -- | test for CDATA section, used during parsing+    isCdata		:: a XmlTree XmlTree+    isCdata		= isA XN.isCdata++    -- | test for processing instruction+    isPi		:: a XmlTree XmlTree+    isPi		= isA XN.isPi++    -- | test for processing instruction \<?xml ...\>+    isXmlPi		:: a XmlTree XmlTree+    isXmlPi		= isPi >>> hasName "xml"++    -- | test for element+    isElem		:: a XmlTree XmlTree+    isElem		= isA XN.isElem++    -- | test for DTD part, used during parsing+    isDTD		:: a XmlTree XmlTree+    isDTD		= isA XN.isDTD++    -- | test for attribute tree+    isAttr		:: a XmlTree XmlTree+    isAttr		= isA XN.isAttr++    -- | test for error message+    isError		:: a XmlTree XmlTree+    isError		= isA XN.isError++    -- | test for root node (element with name \"\/\")+    isRoot		:: a XmlTree XmlTree+    isRoot		= isElem >>> hasName XD.t_root++    -- | test for text nodes with text, for which a predicate holds+    --+    -- example: @hasText (all (\`elem\` \" \\t\\n\"))@ check for text nodes with only whitespace content+    +    hasText		:: (String -> Bool) -> a XmlTree XmlTree+    hasText p		= (isText >>> getText >>> isA p) `guards` this++    -- |+    -- test whether a node (element, attribute, pi) has a name with a special property++    hasNameWith		:: (QName  -> Bool) -> a XmlTree XmlTree+    hasNameWith p	= (getQName        >>> isA p) `guards` this++    -- |+    -- test whether a node (element, attribute, pi) has a specific qualified name+    -- useful only after namespace propagation+    hasQName		:: QName  -> a XmlTree XmlTree+    hasQName n		= (getQName        >>> isA (== n)) `guards` this++    -- |+    -- test whether a node has a specific name (prefix:localPart ore localPart),+    -- generally useful, even without namespace handling+    hasName		:: String -> a XmlTree XmlTree+    hasName n		= (getName         >>> isA (== n)) `guards` this++    -- |+    -- test whether a node has a specific name as local part,+    -- useful only after namespace propagation+    hasLocalPart	:: String -> a XmlTree XmlTree+    hasLocalPart n	= (getLocalPart    >>> isA (== n)) `guards` this++    -- |+    -- test whether a node has a specific name prefix,+    -- useful only after namespace propagation+    hasNamePrefix	:: String -> a XmlTree XmlTree+    hasNamePrefix n	= (getNamePrefix   >>> isA (== n)) `guards` this++    -- |+    -- test whether a node has a specific namespace URI+    -- useful only after namespace propagation+    hasNamespaceUri	:: String -> a XmlTree XmlTree+    hasNamespaceUri n	= (getNamespaceUri >>> isA (== n)) `guards` this++    -- |+    -- test whether an element node has an attribute node with a specific name+    hasAttr		:: String -> a XmlTree XmlTree+    hasAttr n		= (getAttrl        >>> hasName n)  `guards` this++    -- |+    -- test whether an element node has an attribute node with a specific qualified name+    hasQAttr		:: QName -> a XmlTree XmlTree+    hasQAttr n		= (getAttrl        >>> hasQName n)  `guards` this++    -- |+    -- test whether an element node has an attribute with a specific value+    hasAttrValue	:: String -> (String -> Bool) -> a XmlTree XmlTree+    hasAttrValue n p	= (getAttrl >>> hasName n >>> xshow getChildren >>> isA p)  `guards` this++    -- |+    -- test whether an element node has an attribute with a qualified name and a specific value+    hasQAttrValue	:: QName -> (String -> Bool) -> a XmlTree XmlTree+    hasQAttrValue n p	= (getAttrl >>> hasQName n >>> xshow getChildren >>> isA p)  `guards` this++    -- constructor arrows ------------------------------------------------------------++    -- | text node construction arrow+    mkText		:: a String XmlTree+    mkText		= arr  XN.mkText++    -- | char reference construction arrow, useful for document output+    mkCharRef		:: a Int    XmlTree+    mkCharRef		= arr  XN.mkCharRef++    -- | entity reference construction arrow, useful for document output+    mkEntityRef		:: a String XmlTree+    mkEntityRef		= arr  XN.mkEntityRef++    -- | comment node construction, useful for document output+    mkCmt		:: a String XmlTree+    mkCmt		= arr  XN.mkCmt++    -- | CDATA construction, useful for document output+    mkCdata		:: a String XmlTree+    mkCdata		= arr  XN.mkCdata++    -- | error node construction, useful only internally+    mkError		:: Int -> a String XmlTree+    mkError level	= arr (XN.mkError level)++    -- | element construction:+    -- | the attributes and the content of the element are computed by applying arrows+    -- to the input+    mkElement		:: QName -> a n XmlTree -> a n XmlTree -> a n XmlTree+    mkElement n af cf	= (listA af &&& listA cf)+			  >>>+			  arr2 (\ al cl -> XN.mkElement n al cl)+    -- | attribute node construction:+    -- | the attribute value is computed by applying an arrow to the input+    mkAttr		:: QName -> a n XmlTree -> a n XmlTree+    mkAttr qn f		= listA f >>> arr (XN.mkAttr qn)++    -- | processing instruction construction:+    -- | the content of the processing instruction is computed by applying an arrow to the input+    mkPi		:: QName -> a n XmlTree -> a n XmlTree+    mkPi qn f		= listA f >>> arr (XN.mkPi   qn)++    -- convenient arrows for constructors --------------------------------------------------++    -- | convenient arrow for element construction, more comfortable variant of 'mkElement'+    --+    -- example for simplifying 'mkElement' :+    --+    -- > mkElement qn (a1 <+> ... <+> ai) (c1 <+> ... <+> cj)+    --+    -- equals+    --+    -- > mkqelem qn [a1,...,ai] [c1,...,cj]++    mkqelem		:: QName -> [a n XmlTree] -> [a n XmlTree] -> a n XmlTree+    mkqelem  n afs cfs	= mkElement n (catA afs) (catA cfs)++    -- | convenient arrow for element construction with strings instead of qualified names as tagnames, see also 'mkElement' and 'mkelem'+    mkelem		:: String -> [a n XmlTree] -> [a n XmlTree] -> a n XmlTree+    mkelem  n afs cfs	= mkElement (mkSNsName n) (catA afs) (catA cfs)++    -- | convenient arrow for element constrution with attributes but without content, simple variant of 'mkelem' and 'mkElement'+    aelem		:: String -> [a n XmlTree]                  -> a n XmlTree+    aelem n afs		= catA afs >. \ al -> XN.mkElement (mkSNsName n) al []++    -- | convenient arrow for simple element constrution without attributes, simple variant of 'mkelem' and 'mkElement'+    selem		:: String                  -> [a n XmlTree] -> a n XmlTree+    selem n cfs		= catA cfs >.         XN.mkElement (mkSNsName n) []++    -- | convenient arrow for constrution of empty elements without attributes, simple variant of 'mkelem' and 'mkElement'+    eelem		:: String                                   -> a n XmlTree+    eelem n		= constA      (XN.mkElement (mkSNsName n) [] [])++    -- | construction of an element node with name \"\/\" for document roots+    root		::           [a n XmlTree] -> [a n XmlTree] -> a n XmlTree+    root		= mkelem XD.t_root++    -- | alias for 'mkAttr'+    qattr		:: QName -> a n XmlTree -> a n XmlTree+    qattr		= mkAttr++    -- | convenient arrow for attribute constrution, simple variant of 'mkAttr'+    attr		:: String -> a n XmlTree -> a n XmlTree+    attr		= mkAttr . mkSNsName++    -- constant arrows (ignoring the input) for tree construction ------------------------------++    -- | constant arrow for text nodes+    txt			:: String -> a n XmlTree+    txt			= constA .  XN.mkText++    -- | constant arrow for char reference nodes+    charRef		:: Int    -> a n XmlTree+    charRef		= constA .  XN.mkCharRef++    -- | constant arrow for entity reference nodes+    entityRef		:: String -> a n XmlTree+    entityRef		= constA .  XN.mkEntityRef++    -- | constant arrow for comment+    cmt			:: String -> a n XmlTree+    cmt			= constA .  XN.mkCmt++    -- | constant arrow for warning+    warn		:: String -> a n XmlTree+    warn		= constA . (XN.mkError c_warn)++    -- | constant arrow for errors+    err			:: String -> a n XmlTree+    err			= constA . (XN.mkError c_err)++    -- | constant arrow for fatal errors+    fatal		:: String -> a n XmlTree+    fatal		= constA . (XN.mkError c_fatal)++    -- | constant arrow for simple processing instructions, see 'mkPi'+    spi			:: String -> String -> a n XmlTree+    spi piName piCont	= constA (XN.mkPi   (mkSNsName piName) [XN.mkText piCont])++    -- | constant arrow for attribute nodes, attribute name is a qualified name and value is a text,+    -- | see also 'mkAttr', 'qattr', 'attr'+    sqattr		:: QName -> String -> a n XmlTree+    sqattr an av	= constA (XN.mkAttr an                 [XN.mkText av])++    -- | constant arrow for attribute nodes, attribute name and value are+    -- | given by parameters, see 'mkAttr'+    sattr		:: String -> String -> a n XmlTree+    sattr an av		= constA (XN.mkAttr (mkSNsName an)     [XN.mkText av])++    -- selector arrows --------------------------------------------------++    -- | select the text of a text node+    getText		:: a XmlTree String+    getText		= arrL (maybeToList  . XN.getText)++    -- | select the value of a char reference+    getCharRef		:: a XmlTree Int+    getCharRef		= arrL (maybeToList  . XN.getCharRef)++    -- | select the name of a entity reference node+    getEntityRef	:: a XmlTree String+    getEntityRef	= arrL (maybeToList  . XN.getEntityRef)++    -- | select the comment of a comment node+    getCmt		:: a XmlTree String+    getCmt		= arrL (maybeToList  . XN.getCmt)++    -- | select the content of a CDATA node+    getCdata		:: a XmlTree String+    getCdata		= arrL (maybeToList  . XN.getCdata)++    -- | select the name of a processing instruction+    getPiName		:: a XmlTree QName+    getPiName		= arrL (maybeToList  . XN.getPiName)++    -- | select the content of a processing instruction+    getPiContent	:: a XmlTree XmlTree+    getPiContent	= arrL (fromMaybe [] . XN.getPiContent)++    -- | select the name of an element node+    getElemName		:: a XmlTree QName+    getElemName		= arrL (maybeToList  . XN.getElemName)++    -- | select the attribute list of an element node+    getAttrl		:: a XmlTree XmlTree+    getAttrl		= arrL (fromMaybe [] . XN.getAttrl)++    -- | select the DTD type of a DTD node+    getDTDPart		:: a XmlTree DTDElem+    getDTDPart		= arrL (maybeToList  . XN.getDTDPart)++    -- | select the DTD attributes of a DTD node+    getDTDAttrl		:: a XmlTree Attributes+    getDTDAttrl		= arrL (maybeToList  . XN.getDTDAttrl)++    -- | select the name of an attribute+    getAttrName		:: a XmlTree QName+    getAttrName		= arrL (maybeToList  . XN.getAttrName)++    -- | select the error level (c_warn, c_err, c_fatal) from an error node+    getErrorLevel	:: a XmlTree Int+    getErrorLevel	= arrL (maybeToList  . XN.getErrorLevel)++    -- | select the error message from an error node+    getErrorMsg		:: a XmlTree String+    getErrorMsg		= arrL (maybeToList  . XN.getErrorMsg)++    -- | select the qualified name from an element, attribute or pi+    getQName		:: a XmlTree QName+    getQName		= arrL (maybeToList  . XN.getName)++    -- | select the prefix:localPart or localPart from an element, attribute or pi+    getName		:: a XmlTree String+    getName		= arrL (maybeToList  . XN.getQualifiedName)++    -- | select the univeral name ({namespace URI} ++ localPart)+    getUniversalName	:: a XmlTree String+    getUniversalName	= arrL (maybeToList  . XN.getUniversalName)++    -- | select the univeral name (namespace URI ++ localPart)+    getUniversalUri	:: a XmlTree String+    getUniversalUri	= arrL (maybeToList  . XN.getUniversalUri)++    -- | select the local part+    getLocalPart	:: a XmlTree String+    getLocalPart	= arrL (maybeToList  . XN.getLocalPart)++    -- | select the name prefix+    getNamePrefix	:: a XmlTree String+    getNamePrefix	= arrL (maybeToList  . XN.getNamePrefix)++    -- | select the namespace URI+    getNamespaceUri	:: a XmlTree String+    getNamespaceUri	= arrL (maybeToList  . XN.getNamespaceUri)++    -- | select the value of an attribute of an element node,+    -- always succeeds with empty string as default value \"\"+    getAttrValue	:: String -> a XmlTree String+    getAttrValue n	= xshow (getAttrl >>> hasName n >>> getChildren)++    -- | like 'getAttrValue', but fails if the attribute does not exist+    getAttrValue0	:: String -> a XmlTree String+    getAttrValue0 n	= getAttrl >>> hasName n >>> xshow getChildren++    -- | like 'getAttrValue', but select the value of an attribute given by a qualified name,+    -- always succeeds with empty string as default value \"\"+    getQAttrValue	:: QName -> a XmlTree String+    getQAttrValue n	= xshow (getAttrl >>> hasQName n >>> getChildren)++    -- | like 'getQAttrValue', but fails if attribute does not exist+    getQAttrValue0	:: QName -> a XmlTree String+    getQAttrValue0 n	= getAttrl >>> hasQName n >>> xshow getChildren++    -- edit arrows --------------------------------------------------++    -- | edit the string of a text node+    changeText		:: (String -> String) -> a XmlTree XmlTree+    changeText cf	= arr (XN.changeText     cf) `when` isText++    -- | edit the comment string of a comment node+    changeCmt		:: (String -> String) -> a XmlTree XmlTree+    changeCmt  cf	= arr (XN.changeCmt      cf) `when` isCmt++    -- | edit an element-, attribute- or pi- name+    changeQName		:: (QName  -> QName) -> a XmlTree XmlTree+    changeQName cf	= arr (XN.changeName  cf) `when` getQName++    -- | edit an element name+    changeElemName	:: (QName  -> QName) -> a XmlTree XmlTree+    changeElemName cf	= arr (XN.changeElemName  cf) `when` isElem++    -- | edit an attribute name+    changeAttrName	:: (QName  -> QName) -> a XmlTree XmlTree+    changeAttrName cf	= arr (XN.changeAttrName cf) `when` isAttr++    -- | edit a pi name+    changePiName	:: (QName  -> QName) -> a XmlTree XmlTree+    changePiName cf	= arr (XN.changePiName  cf) `when` isPi++    -- | edit an attribute value+    changeAttrValue	:: (String -> String) -> a XmlTree XmlTree+    changeAttrValue cf	= replaceChildren ( xshow getChildren+					    >>> arr cf+					    >>> mkText+					  )+			  `when` isAttr+++    -- | edit an attribute list of an element node+    changeAttrl		:: (XmlTrees -> XmlTrees -> XmlTrees) -> a XmlTree XmlTree -> a XmlTree XmlTree+    changeAttrl cf f	= ( ( listA f &&& this )+			    >>>+			    arr2 changeAL+			  )+                          `when`+			  ( isElem <+> isPi )+			where+			changeAL as x = XN.changeAttrl (\ xs -> cf xs as) x++    -- | replace an element, attribute or pi name+    setQName		:: QName -> a XmlTree XmlTree+    setQName  n		= changeQName  (const n)++    -- | replace an element name+    setElemName		:: QName -> a XmlTree XmlTree+    setElemName  n	= changeElemName  (const n)++    -- | replace an attribute name+    setAttrName		:: QName -> a XmlTree XmlTree+    setAttrName n	= changeAttrName (const n)++    -- | replace an element name+    setPiName		:: QName -> a XmlTree XmlTree+    setPiName  n	= changePiName  (const n)++    -- | replace an atribute list of an element node+    setAttrl		:: a XmlTree XmlTree -> a XmlTree XmlTree+    setAttrl		= changeAttrl (const id) 		-- (\ x y -> y)++    -- | add a list of attributes list to an element+    addAttrl		:: a XmlTree XmlTree -> a XmlTree XmlTree+    addAttrl		= changeAttrl (XN.mergeAttrl)++    -- | add (or replace) an attribute+    addAttr		:: String -> String  -> a XmlTree XmlTree+    addAttr an av	= addAttrl (sattr an av)++    -- | remove an attribute+    removeAttr		:: String  -> a XmlTree XmlTree+    removeAttr an	= processAttrl (none `when` hasName an)++    -- | remove an attribute with a qualified name+    removeQAttr		:: QName  -> a XmlTree XmlTree+    removeQAttr an	= processAttrl (none `when` hasQName an)++    -- | process the attributes of an element node with an arrow+    processAttrl	:: a XmlTree XmlTree -> a XmlTree XmlTree+    processAttrl f	= setAttrl (getAttrl >>> f)++    -- | process a whole tree inclusive attribute list of element nodes+    -- see also: 'Control.Arrow.ArrowTree.processTopDown'++    processTopDownWithAttrl	:: a XmlTree XmlTree -> a XmlTree XmlTree+    processTopDownWithAttrl f	= processTopDown ( f >>> ( processAttrl (processTopDown f) `when` isElem))++    -- | convenient op for adding attributes or children to a node+    --+    -- usage: @ tf += cf @+    --+    -- the @tf@ arrow computes an element node, and all trees computed by @cf@ are+    -- added to this node, if a tree is an attribute, it is inserted in the attribute list+    -- else it is appended to the content list.+    --+    -- attention: do not build long content list this way because '+=' is implemented by +++    --+    -- examples:+    --+    -- > eelem "a"+    -- >   += sattr "href" "page.html"+    -- >   += sattr "name" "here"+    -- >   += txt "look here"+    --+    -- is the same as+    --+    -- > mkelem [ sattr "href" "page.html"+    -- >        , sattr "name" "here"+    -- >        ]+    -- >        [ txt "look here" ]+    --+    -- and results in the XML fragment: \<a href=\"page.html\" name=\"here\"\>look here\<\/a\>+    --+    -- advantage of the '+=' operator is, that attributes and content can be added+    -- any time step by step.+    -- if @tf@ computes a whole list of trees, e.g. a list of \"td\" or \"tr\" elements,+    -- the attributes or content is added to all trees. useful for adding \"class\" or \"style\" attributes+    -- to table elements.++    (+=)		:: a b XmlTree -> a b XmlTree -> a b XmlTree+    tf += cf		= (tf &&& listA cf) >>> arr2 addChildren+	                where+			addChildren	:: XmlTree -> XmlTrees -> XmlTree+			addChildren t cs+			    = foldl addChild t cs+			addChild 	:: XmlTree -> XmlTree -> XmlTree+			addChild t c+			    | not (XN.isElem t)+				= t+			    | XN.isAttr c+				= XN.changeAttrl (XN.addAttr c) t+			    | otherwise+				= XN.changeChildren (++ [c]) t++    -- | apply an arrow to the input and convert the resulting XML trees into a string representation+    xshow		:: a n XmlTree -> a n String+    xshow f		= f >. XD.xshow++{- | Document Type Definition arrows++These are separated, because they are not needed for document processing,+only when processing the DTD, e.g. for generating access funtions for the toolbox+from a DTD (se example DTDtoHaskell in the examples directory)+-}+++class (ArrowXml a) => ArrowDTD a where+    isDTDDoctype	:: a XmlTree XmlTree+    isDTDDoctype	= isA (maybe False (== DOCTYPE ) . XN.getDTDPart)++    isDTDElement	:: a XmlTree XmlTree+    isDTDElement	= isA (maybe False (== ELEMENT ) . XN.getDTDPart)++    isDTDContent	:: a XmlTree XmlTree+    isDTDContent	= isA (maybe False (== CONTENT ) . XN.getDTDPart)++    isDTDAttlist	:: a XmlTree XmlTree+    isDTDAttlist	= isA (maybe False (== ATTLIST ) . XN.getDTDPart)++    isDTDEntity		:: a XmlTree XmlTree+    isDTDEntity		= isA (maybe False (== ENTITY  ) . XN.getDTDPart)++    isDTDPEntity	:: a XmlTree XmlTree+    isDTDPEntity	= isA (maybe False (== PENTITY ) . XN.getDTDPart)++    isDTDNotation	:: a XmlTree XmlTree+    isDTDNotation	= isA (maybe False (== NOTATION) . XN.getDTDPart)++    isDTDCondSect	:: a XmlTree XmlTree+    isDTDCondSect	= isA (maybe False (== CONDSECT) . XN.getDTDPart)++    isDTDName		:: a XmlTree XmlTree+    isDTDName		= isA (maybe False (== NAME    ) . XN.getDTDPart)++    isDTDPERef		:: a XmlTree XmlTree+    isDTDPERef		= isA (maybe False (== PEREF   ) . XN.getDTDPart)++    hasDTDAttr		:: String -> a XmlTree XmlTree+    hasDTDAttr n	= isA (isJust . lookup n . fromMaybe [] . XN.getDTDAttrl)++    getDTDAttrValue	:: String -> a XmlTree String+    getDTDAttrValue n	= arrL (maybeToList . lookup n . fromMaybe [] . XN.getDTDAttrl)++    setDTDAttrValue	:: String -> String -> a XmlTree XmlTree+    setDTDAttrValue n v	= arr (XN.changeDTDAttrl (addEntry n v)) `when` isDTD++    mkDTDElem		:: DTDElem -> Attributes -> a n XmlTree -> a n XmlTree+    mkDTDElem e al cf	= listA cf >>> arr (XN.mkDTDElem e al)++    mkDTDDoctype	:: Attributes -> a n XmlTree -> a n XmlTree+    mkDTDDoctype	= mkDTDElem DOCTYPE++    mkDTDElement	:: Attributes -> a n XmlTree+    mkDTDElement al	= mkDTDElem ELEMENT al none++    mkDTDEntity		:: Attributes -> a n XmlTree+    mkDTDEntity al	= mkDTDElem ENTITY al none++    mkDTDPEntity	:: Attributes -> a n XmlTree+    mkDTDPEntity al	= mkDTDElem PENTITY al none++instance ArrowXml LA+instance ArrowXml (SLA s)+instance ArrowXml IOLA+instance ArrowXml (IOSLA s)++instance ArrowDTD LA+instance ArrowDTD (SLA s)+instance ArrowDTD IOLA+instance ArrowDTD (IOSLA s)++-- ------------------------------------------------------------
+ src/Text/XML/HXT/Arrow/XmlIOStateArrow.hs view
@@ -0,0 +1,899 @@+-- ------------------------------------------------------------++{- |+   Module     : Text.XML.HXT.Arrow.XmlIOStateArrow+   Copyright  : Copyright (C) 2005 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: XmlIOStateArrow.hs,v 1.39 2006/11/09 20:27:42 hxml Exp $++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++-}++-- ------------------------------------------------------------++module Text.XML.HXT.Arrow.XmlIOStateArrow+    ( -- * Data Types+      XIOState(..),+      XIOSysState(..),+      IOStateArrow,+      IOSArrow,++      -- * Running Arrows+      initialState,+      initialSysState,+      runX,++      -- * User State Manipulation+      getUserState,+      setUserState,+      changeUserState,+      withExtendedUserState,+      withOtherUserState,++      -- * Global System State Access+      getSysParam,+      changeSysParam,++      setParamList,+      setParam,+      unsetParam,+      getParam,+      getAllParams,+      setParamString,+      getParamString,+      setParamInt,+      getParamInt,+      +      -- * Error Message Handling+      clearErrStatus,+      setErrStatus,+      getErrStatus,+      setErrMsgStatus,+      setErrorMsgHandler,++      errorMsgStderr,+      errorMsgCollect,+      errorMsgStderrAndCollect,+      errorMsgIgnore,++      getErrorMessages,++      filterErrorMsg,+      issueWarn,+      issueErr,+      issueFatal,+      setDocumentStatus,+      setDocumentStatusFromSystemState,+      documentStatusOk,++      -- * Document Base+      setBaseURI,+      getBaseURI,+      changeBaseURI,+      setDefaultBaseURI,+      getDefaultBaseURI,+      runInLocalURIContext,++      -- * Tracing+      setTraceLevel,+      getTraceLevel,+      withTraceLevel,+      trace,+      traceMsg,+      traceString,+      traceSource,+      traceTree,+      traceDoc,+      traceState,++      -- * URI Manipulation+      expandURIString,+      expandURI,+      mkAbsURI,++      getFragmentFromURI,+      getPathFromURI,+      getPortFromURI,+      getQueryFromURI,+      getRegNameFromURI,+      getSchemeFromURI,+      getUserInfoFromURI+      )+where++import Control.Arrow				-- arrow classes+import Control.Arrow.ArrowList+import Control.Arrow.ArrowIf+import Control.Arrow.ArrowTree+import Control.Arrow.ArrowIO+import Control.Arrow.IOStateListArrow++import Control.Strategies.DeepSeq++import Text.XML.HXT.Arrow.DOMInterface+import Text.XML.HXT.Arrow.XmlArrow++import Text.XML.HXT.Arrow.Edit+    ( addHeadlineToXmlDoc+    , treeRepOfXmlDoc+    , indentDoc+    )++import Data.Maybe++import Network.URI+    ( URI+    , escapeURIChar+    , isUnescapedInURI+    , nonStrictRelativeTo+    , parseURIReference+    , uriAuthority+    , uriFragment+    , uriPath+    , uriPort+    , uriQuery+    , uriRegName+    , uriScheme+    , uriUserInfo+    )++import System.IO+    ( hPutStrLn+    , hFlush+    , stderr+    )++import System.Directory+    ( getCurrentDirectory+    )++-- ------------------------------------------------------------+{- $datatypes -}+++-- |+-- predefined system state data type with all components for the+-- system functions, like trace, error handling, ...++data XIOSysState	= XIOSys  { xio_trace			:: ! Int+				  , xio_errorStatus		:: ! Int+				  , xio_errorModule		:: ! String+				  , xio_errorMsgHandler		::   String -> IO ()+				  , xio_errorMsgCollect		:: ! Bool+				  , xio_errorMsgList		:: ! XmlTrees+				  , xio_baseURI			:: ! String+				  , xio_defaultBaseURI		:: ! String+				  , xio_attrList		:: ! (AssocList String XmlTrees)+				  }++instance DeepSeq XIOSysState where+    deepSeq (XIOSys tr es em emh emc eml bu du al) y+	= deepSeq tr $ deepSeq es $ deepSeq em $ deepSeq emh $ deepSeq emc $ deepSeq eml $ deepSeq bu $ deepSeq du $ deepSeq al y++-- |+-- state datatype consists of a system state and a user state+-- the user state is not fixed++data XIOState us	= XIOState { xio_sysState		:: ! XIOSysState+				   , xio_userState		:: ! us+				   }++instance (DeepSeq us) => DeepSeq (XIOState us) where+    deepSeq (XIOState sys usr) y	= deepSeq sys $ deepSeq usr y++-- |+-- The arrow type for stateful arrows++type IOStateArrow s b c	= IOSLA (XIOState s) b c++-- |+-- The arrow for stateful arrows with no user defined state++type IOSArrow b c	= IOStateArrow () b c++-- ------------------------------------------------------------+++-- | the default global state, used as initial state when running an 'IOSArrow' with 'runIOSLA' or+-- 'runX'++initialState	:: us -> XIOState us+initialState s	= XIOState { xio_sysState 	= initialSysState+			   , xio_userState	= s+			   }++initialSysState	:: XIOSysState+initialSysState	= XIOSys { xio_trace		= 0+			 , xio_errorStatus	= c_ok+			 , xio_errorModule	= ""+			 , xio_errorMsgHandler	= hPutStrLn stderr+			 , xio_errorMsgCollect	= False+			 , xio_errorMsgList	= []+			 , xio_baseURI		= ""+			 , xio_defaultBaseURI	= ""+			 , xio_attrList		= []+			 }++-- ------------------------------------------------------------++-- |+-- apply an 'IOSArrow' to an empty root node with 'initialState' () as initial state+--+-- the main entry point for running a state arrow with IO+--+-- when running @ runX f@ an empty XML root node is applied to @f@.+-- usually @f@ will start with a constant arrow (ignoring the input), e.g. a 'Text.XML.HXT.Arrow.ReadDocument.readDocument' arrow.+--+-- for usage see examples with 'Text.XML.HXT.Arrow.WriteDocument.writeDocument'+--+-- if input has to be feed into the arrow use 'Control.Arrow.IOStateListArrow.runIOSLA' like in @ runIOSLA f emptyX inputDoc @++runX		:: IOSArrow XmlTree c -> IO [c]+runX		= runXIOState (initialState ())++runXIOState	:: XIOState s -> IOStateArrow s XmlTree c -> IO [c]+runXIOState s0 f+    = do+      (_finalState, res) <- runIOSLA (emptyRoot >>> f) s0 undefined+      return res+    where+    emptyRoot    = root [] []++-- ------------------------------------------------------------++{- user state -}++-- | read the user defined part of the state++getUserState	:: IOStateArrow s b s+getUserState+    = IOSLA $ \ s _ ->+      return (s, [xio_userState s])++-- | change the user defined part of the state++changeUserState		:: (b -> s -> s) -> IOStateArrow s b b+changeUserState cf+    = IOSLA $ \ s v ->+      let s' = s { xio_userState = cf v (xio_userState s) }+      in return (s', [v])++-- | set the user defined part of the state++setUserState		:: IOStateArrow s s s+setUserState+    = changeUserState const++-- | extend user state+--+-- Run an arrow with an extended user state component, The old component+-- is stored together with a new one in a pair, the arrow is executed with this+-- extended state, and the augmented state component is removed form the state+-- when the arrow has finished its execution++withExtendedUserState	:: s1 -> IOStateArrow (s1, s0) b c -> IOStateArrow s0 b c+withExtendedUserState initS1 f+    = IOSLA $ \ s0 x ->+      do+      ~(finalS, res) <- runIOSLA f ( XIOState { xio_sysState  =          xio_sysState  s0+					      , xio_userState = (initS1, xio_userState s0)+					      }+				   ) x+      return ( XIOState { xio_sysState  =      xio_sysState  finalS+			, xio_userState = snd (xio_userState finalS)+			}+	     , res+	     )++-- | change the type of user state+--+-- This conversion is useful, when running a state arrow with another+-- structure of the user state, e.g. with () when executing some IO arrows++withOtherUserState	:: s1 -> IOStateArrow s1 b c -> IOStateArrow s0 b c+withOtherUserState s1 f+    = IOSLA $ \ s x ->+      do+      (s', res) <- runIOSLA f ( XIOState { xio_sysState  = xio_sysState s+					 , xio_userState = s1+					 }+			      ) x+      return ( XIOState { xio_sysState  = xio_sysState  s'+			, xio_userState = xio_userState s+			}+	     , res+	     )++-- ------------------------------------------------------------++{- $system state params -}++getSysParam	:: (XIOSysState -> c) -> IOStateArrow s b c+getSysParam f+    = IOSLA $ \ s _x ->+      return (s, (:[]) . f . xio_sysState $ s)++changeSysParam		:: (b -> XIOSysState -> XIOSysState) -> IOStateArrow s b b+changeSysParam cf+    = ( IOSLA $ \ s v ->+	let s' = changeSysState (cf v) s+	in return (s', [v])+      )+    where+    changeSysState css s = s { xio_sysState = css (xio_sysState s) }++-- | store a single XML tree in global state under a given attribute name++setParam	:: String -> IOStateArrow s XmlTree XmlTree+setParam n+    = (:[]) ^>> setParamList n++-- | store a list of XML trees in global system state under a given attribute name++setParamList	:: String -> IOStateArrow s XmlTrees XmlTree+setParamList n+    = changeSysParam addE+      >>>+      arrL id+    where+    addE x s = s { xio_attrList = addEntry n x (xio_attrList s) }++-- | remove an entry in global state, arrow input remains unchanged++unsetParam	:: String -> IOStateArrow s b b+unsetParam n+    = changeSysParam delE+    where+    delE _ s = s { xio_attrList = delEntry n (xio_attrList s) }++-- | read an attribute value from global state++getParam	:: String -> IOStateArrow s b XmlTree+getParam n+    = getAllParams+      >>>+      arrL (lookup1 n)++-- | read all attributes from global state++getAllParams	:: IOStateArrow s b (AssocList String XmlTrees)+getAllParams+    = getSysParam xio_attrList++setParamString	:: String -> String -> IOStateArrow s b b+setParamString n v+    = perform ( txt v+		>>>+		setParam n+	      )++-- | read a string value from global state,+-- if parameter not set \"\" is returned++getParamString	:: String -> IOStateArrow s b String+getParamString n+    = xshow (getParam n)++-- | store an int value in global state++setParamInt	:: String -> Int -> IOStateArrow s b b+setParamInt n v+    = setParamString n (show v)++-- | read an int value from global state+-- +-- > getParamInt 0 myIntAttr++getParamInt	:: Int -> String -> IOStateArrow s b Int+getParamInt def n+    = getParamString n+      >>^+      (\ x -> if null x then def else read x)++-- ------------------------------------------------------------++-- | reset global error variable++changeErrorStatus	:: (Int -> Int -> Int) -> IOStateArrow s Int Int+changeErrorStatus f+    = changeSysParam (\ l s -> s { xio_errorStatus = f l (xio_errorStatus s) })++clearErrStatus		:: IOStateArrow s b b+clearErrStatus+    = perform (constA 0 >>> changeErrorStatus min)++-- | set global error variable++setErrStatus		:: IOStateArrow s Int Int+setErrStatus+    = changeErrorStatus max++-- | read current global error status++getErrStatus		:: IOStateArrow s XmlTree Int+getErrStatus+    = getSysParam xio_errorStatus++-- | raise the global error status level to that of the input tree++setErrMsgStatus	:: IOStateArrow s XmlTree XmlTree+setErrMsgStatus+    = perform ( getErrorLevel+		>>>+		setErrStatus+	      )++-- | set the error message handler and the flag for collecting the errors++setErrorMsgHandler	:: Bool -> (String -> IO ()) -> IOStateArrow s b b+setErrorMsgHandler c f+    = changeSysParam cf+    where+    cf _ s = s { xio_errorMsgHandler = f+	       , xio_errorMsgCollect = c }++-- | error message handler for output to stderr+		  +sysErrorMsg		:: IOStateArrow s XmlTree XmlTree+sysErrorMsg+    = perform ( getErrorLevel &&& getErrorMsg+		>>>+		arr formatErrorMsg+		>>>+		( IOSLA $ \ s e ->+		  do+		  (xio_errorMsgHandler . xio_sysState $ s) e+		  return (s, undefined)+		)+	      )+    where+    formatErrorMsg (level, msg)	= "\n" ++ errClass level ++ ": " ++ msg+    errClass l+	= fromMaybe "fatal error" . lookup l $ msgList+	  where+	  msgList	= [ (c_ok,	"no error")+			  , (c_warn,	"warning")+			  , (c_err,	"error")+			  , (c_fatal,	"fatal error")+			  ]+++-- | the default error message handler: error output to stderr++errorMsgStderr		:: IOStateArrow s b b+errorMsgStderr		= setErrorMsgHandler False (hPutStrLn stderr)++-- | error message handler for collecting errors++errorMsgCollect		:: IOStateArrow s b b+errorMsgCollect		= setErrorMsgHandler True (const $ return ())++-- | error message handler for output to stderr and collecting++errorMsgStderrAndCollect	:: IOStateArrow s b b+errorMsgStderrAndCollect	= setErrorMsgHandler True (hPutStrLn stderr)++-- | error message handler for ignoring errors++errorMsgIgnore		:: IOStateArrow s b b+errorMsgIgnore		= setErrorMsgHandler False (const $ return ())++-- |+-- 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++getErrorMessages	:: IOStateArrow s b XmlTree+getErrorMessages+    = getSysParam (reverse . xio_errorMsgList)		-- reverse the list of errors+      >>>+      clearErrorMsgList					-- clear the error list in the system state+      >>>+      arrL id++clearErrorMsgList	:: IOStateArrow s b b+clearErrorMsgList+    = changeSysParam (\ _ s -> s { xio_errorMsgList = [] } )++addToErrorMsgList	:: IOStateArrow s XmlTree XmlTree+addToErrorMsgList+    = changeSysParam cf+    where+    cf t s = if xio_errorMsgCollect s+	     then s { xio_errorMsgList = t : xio_errorMsgList s }+	     else s++-- ------------------------------------------------------------++-- |+-- filter error messages from input trees and issue errors++filterErrorMsg		:: IOStateArrow s XmlTree XmlTree+filterErrorMsg+    = ( setErrMsgStatus+	>>>+	sysErrorMsg+	>>>+	addToErrorMsgList+	>>>+	none+      )+      `when`+      isError++-- | generate a warnig message++issueWarn		:: String -> IOStateArrow s b b+issueWarn msg		= perform (warn msg  >>> filterErrorMsg)++-- | generate an error message+issueErr		:: String -> IOStateArrow s b b+issueErr msg		= perform (err msg   >>> filterErrorMsg)++-- | generate a fatal error message, e.g. document not found++issueFatal		:: String -> IOStateArrow s b b+issueFatal msg		= perform (fatal msg >>> filterErrorMsg)++-- |+-- 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++setDocumentStatus	:: Int -> String -> IOStateArrow s XmlTree XmlTree+setDocumentStatus level msg+    = ( addAttrl ( sattr a_status (show level)+		   <+>+		   sattr a_module msg+		 )+	>>>+	( if level >= c_err+	  then setChildren []+	  else this+	)+      )+      `when`+      isRoot++-- |+-- 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++setDocumentStatusFromSystemState		:: String -> IOStateArrow s XmlTree XmlTree+setDocumentStatusFromSystemState msg+    = setStatus $< getErrStatus+    where+    setStatus level+	| level <= c_warn	= this+	| otherwise		= setDocumentStatus level msg+++-- |+-- check whether tree is a document root and the status attribute has a value less than 'c_err'++documentStatusOk	:: IOStateArrow s XmlTree XmlTree+documentStatusOk+    = isRoot+      >>>+      ( (getAttrValue a_status+	 >>>+	 isA (\ v -> null v || ((read v)::Int) <= c_warn)+	)+	`guards`+	this+      )++-- ------------------------------------------------------------++-- | set the base URI of a document, used e.g. for reading includes, e.g. external entities,+-- the input must be an absolute URI++setBaseURI		:: IOStateArrow s String String+setBaseURI+    = changeSysParam (\ b s -> s { xio_baseURI = b } )+      >>>+      traceString 2 (("setBaseURI: new base URI is " ++) . show)++-- | read the base URI from the globale state++getBaseURI		:: IOStateArrow s b String+getBaseURI+    = getSysParam xio_baseURI+      >>>+      ( ( getDefaultBaseURI+	  >>>+	  setBaseURI		+	  >>>+	  getBaseURI+	)+	`when`+	isA null				-- set and get it, if not yet done+      )++-- | change the base URI with a possibly relative URI, can be used for+-- evaluating the xml:base attribute. Returns the new absolute base URI.+-- Fails, if input is not parsable with parseURIReference+--+-- see also: 'setBaseURI', 'mkAbsURI'++changeBaseURI		:: IOStateArrow s String String+changeBaseURI+    = mkAbsURI+      >>>+      setBaseURI++-- | set the default base URI, if parameter is null, the system base (@ file:\/\/\/\<cwd\>\/ @) is used,+-- else the parameter, must be called before any document is read++setDefaultBaseURI	:: String -> IOStateArrow s b String+setDefaultBaseURI base+    = ( if null base+	then arrIO getDir+	else constA base+      )+      >>>+      changeSysParam (\ b s -> s { xio_defaultBaseURI = b } )+      >>>+      traceString 2 (("setDefaultBaseURI: new default base URI is " ++) . show)+    where+    getDir _ = do+	       cwd <- getCurrentDirectory+	       return ("file://" ++ normalize cwd ++ "/")++    -- under Windows getCurrentDirectory returns something like: "c:\path\to\file"+    -- backslaches are not allowed in URIs and paths must start with a /+    -- so this is transformed into "/c:/path/to/file"++    normalize wd'@(d : ':' : _)+	| d `elem` ['A'..'Z'] || d `elem` ['a'..'z']+	    = '/' : concatMap win32ToUriChar wd'+    normalize wd'+	= concatMap escapeNonUriChar wd'+				 +    win32ToUriChar '\\' = "/"+    win32ToUriChar c    = escapeNonUriChar c++    escapeNonUriChar c  = escapeURIChar isUnescapedInURI c   -- from Network.URI+++-- | get the default base URI++getDefaultBaseURI	:: IOStateArrow s b String+getDefaultBaseURI+    = getSysParam xio_defaultBaseURI		-- read default uri in system  state+      >>>+      ( setDefaultBaseURI ""			-- set the default uri in system state+	>>>+	getDefaultBaseURI ) `when` isA null	-- when uri not yet set++-- ------------------------------------------------------------++-- | remember base uri, run an arrow and restore the base URI, used with external entity substitution++runInLocalURIContext	:: IOStateArrow s b c -> IOStateArrow s b c+runInLocalURIContext f+    = ( getBaseURI &&& this )+      >>>+      ( this *** listA f )+      >>>+      ( setBaseURI *** this )+      >>>+      arrL snd++-- ------------------------------------------------------------++-- | set the global trace level++setTraceLevel	:: Int -> IOStateArrow s b b+setTraceLevel l+    = changeSysParam (\ _ s -> s { xio_trace = l } )++-- | read the global trace level++getTraceLevel	:: IOStateArrow s b Int+getTraceLevel+    = getSysParam xio_trace++-- | run an arrow with a given trace level, the old trace level is restored after the arrow execution++withTraceLevel	:: Int -> IOStateArrow s b c -> IOStateArrow s b c+withTraceLevel level f+    = ( getTraceLevel       &&& this )+      >>>+      ( setTraceLevel level *** listA f )+      >>>+      ( restoreTraceLevel   *** this )+      >>>+      arrL snd+    where+    restoreTraceLevel	:: IOStateArrow s Int Int+    restoreTraceLevel+	= setTraceLevel $< this++-- | apply a trace arrow and issue message to stderr++trace		:: Int -> IOStateArrow s b String -> IOStateArrow s b b+trace level trc+    = perform ( trc+		>>>+		arrIO (\ s -> ( do+				hPutStrLn stderr s+				hFlush stderr+			      )+		      )+	      )+      `when` ( getTraceLevel+	       >>>+	       isA (>= level)+	     )++-- | issue a string message as trace +traceMsg	:: Int -> String -> IOStateArrow s b b+traceMsg level msg+    = perform ( trace level $+		constA ('-' : "- (" ++ show level ++ ") " ++ msg)+	      )++-- | issue the string input of an arrow+traceString	:: Int -> (String -> String) -> IOStateArrow s String String+traceString level f+    = perform (applyA (arr f >>> arr (traceMsg level)))++-- | issue the source representation of a document if trace level >= 3+--+-- for better readability the source is formated with indentDoc++traceSource	:: IOStateArrow s XmlTree XmlTree+traceSource +    = trace 3 $+      xshow+      ( choiceA [ isRoot :-> indentDoc+		, isElem :-> ( root [] [this]+			       >>> indentDoc+			       >>> getChildren+			       >>> isElem+			     )+		, this   :-> this+		]+      )++-- | issue the tree representation of a document if trace level >= 4+traceTree	:: IOStateArrow s XmlTree XmlTree+traceTree+    = trace 4 $+      xshow ( treeRepOfXmlDoc+	      >>>+	      addHeadlineToXmlDoc+	      >>>+	      getChildren+	    )++-- | trace a main computation step+-- issue a message when trace level >= 1, issue document source if level >= 3, issue tree when level is >= 4++traceDoc	:: String -> IOStateArrow s XmlTree XmlTree+traceDoc msg+    = traceMsg 1 msg+      >>>+      traceSource+      >>>+      traceTree++-- | trace the global state++traceState	:: IOStateArrow s b b+traceState+    = perform ( xshow ( (getAllParams >>. concat)+			>>>+			applyA (arr formatParam)+		      )+		>>>+		traceString 2 ("global state:\n" ++)+	      )+      where+      -- formatParam	:: (String, XmlTrees) -> IOStateArrow s b1 XmlTree+      formatParam (n, v)+	  = mkelem "param" [sattr "name" n] [arrL (const v)] <+> txt "\n"++-- ----------------------------------------------------------++-- | compute the absolut URI for a given URI and a base URI++expandURIString	:: String -> String -> Maybe String+expandURIString uri base+    = do+      base' <- parseURIReference base+      uri'  <- parseURIReference uri+      abs'  <- nonStrictRelativeTo uri' base'+      return $ show abs'++-- | arrow variant of 'expandURIString', fails if 'expandURIString' returns Nothing++expandURI		:: ArrowXml a => a (String, String) String+expandURI+    = arrL (maybeToList . uncurry expandURIString)++-- | arrow for expanding an input URI into an absolute URI using global base URI, fails if input is not a legal URI++mkAbsURI		:: IOStateArrow s String String+mkAbsURI+    = ( this &&& getBaseURI ) >>> expandURI++-- | arrow for selecting the scheme (protocol) of the URI, fails if input is not a legal URI.+--+-- See Network.URI for URI components++getSchemeFromURI	:: ArrowList a => a String String+getSchemeFromURI	= getPartFromURI scheme+    where+    scheme = init . uriScheme++-- | arrow for selecting the registered name (host) of the URI, fails if input is not a legal URI++getRegNameFromURI	:: ArrowList a => a String String+getRegNameFromURI	= getPartFromURI host+    where+    host = maybe "" uriRegName . uriAuthority++-- | arrow for selecting the port number of the URI without leading \':\', fails if input is not a legal URI++getPortFromURI		:: ArrowList a => a String String+getPortFromURI		= getPartFromURI port+    where+    port = dropWhile (==':') . maybe "" uriPort . uriAuthority++-- | arrow for selecting the user info of the URI without trailing \'\@\', fails if input is not a legal URI++getUserInfoFromURI		:: ArrowList a => a String String+getUserInfoFromURI		= getPartFromURI ui+    where+    ui = reverse . dropWhile (=='@') . reverse . maybe "" uriUserInfo . uriAuthority++-- | arrow for computing the path component of an URI, fails if input is not a legal URI++getPathFromURI		:: ArrowList a => a String String+getPathFromURI		= getPartFromURI uriPath++-- | arrow for computing the query component of an URI, fails if input is not a legal URI++getQueryFromURI		:: ArrowList a => a String String+getQueryFromURI		= getPartFromURI uriQuery++-- | arrow for computing the fragment component of an URI, fails if input is not a legal URI++getFragmentFromURI	:: ArrowList a => a String String+getFragmentFromURI	= getPartFromURI uriFragment++-- | arrow for computing the path component of an URI, fails if input is not a legal URI++getPartFromURI		:: ArrowList a => (URI -> String) -> a String String+getPartFromURI sel+    = arrL (maybeToList . getPart)+      where+      getPart s = do+		  uri <- parseURIReference s+		  return (sel uri)++-- ------------------------------------------------------------
+ src/Text/XML/HXT/Arrow/XmlNode.hs view
@@ -0,0 +1,317 @@+-- ------------------------------------------------------------++{- |+   Module     : Text.XML.HXT.Arrow.XmlNode+   Copyright  : Copyright (C) 2005 Uwe Schmidt+   License    : MIT+++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: XmlNode.hs,v 1.14 2006/08/28 19:14:15 hxml Exp $++   Interface for XmlArrow to basic data types NTree and XmlTree++-}++-- ------------------------------------------------------------++module Text.XML.HXT.Arrow.XmlNode+    ( module Text.XML.HXT.Arrow.XmlNode+    , module Data.Tree.NTree.TypeDefs+    )+where++import Control.Monad++import Data.Tree.NTree.TypeDefs+import Data.Maybe++import Text.XML.HXT.Arrow.DOMInterface++class XmlNode a where+    -- discriminating predicates++    isText		:: a -> Bool+    isCharRef		:: a -> Bool+    isEntityRef		:: a -> Bool+    isCmt		:: a -> Bool+    isCdata		:: a -> Bool+    isPi		:: a -> Bool+    isElem		:: a -> Bool+    isDTD		:: a -> Bool+    isAttr		:: a -> Bool+    isError		:: a -> Bool++    -- constructor functions for leave nodes++    mkText		:: String -> a+    mkCharRef		:: Int    -> a+    mkEntityRef		:: String -> a+    mkCmt		:: String -> a+    mkCdata		:: String -> a+    mkPi		:: QName  -> XmlTrees -> a+    mkError		:: Int    -> String   -> a++    -- selectors++    getText		:: a -> Maybe String+    getCharRef		:: a -> Maybe Int+    getEntityRef	:: a -> Maybe String+    getCmt		:: a -> Maybe String+    getCdata		:: a -> Maybe String+    getPiName		:: a -> Maybe QName+    getPiContent	:: a -> Maybe XmlTrees+    getElemName		:: a -> Maybe QName+    getAttrl		:: a -> Maybe XmlTrees+    getDTDPart		:: a -> Maybe DTDElem+    getDTDAttrl		:: a -> Maybe Attributes+    getAttrName		:: a -> Maybe QName+    getErrorLevel	:: a -> Maybe Int+    getErrorMsg		:: a -> Maybe String++    -- derived selectors++    getName		:: a -> Maybe QName+    getQualifiedName	:: a -> Maybe String+    getUniversalName	:: a -> Maybe String+    getUniversalUri	:: a -> Maybe String+    getLocalPart	:: a -> Maybe String+    getNamePrefix	:: a -> Maybe String+    getNamespaceUri	:: a -> Maybe String++    -- "modifier" functions++    changeText		:: (String   -> String)   -> a -> a+    changeCmt		:: (String   -> String)   -> a -> a+    changeName		:: (QName    -> QName)    -> a -> a+    changeElemName	:: (QName    -> QName)    -> a -> a+    changeAttrl		:: (XmlTrees -> XmlTrees) -> a -> a+    changeAttrName	:: (QName    -> QName)    -> a -> a+    changePiName	:: (QName    -> QName)    -> a -> a+    changeDTDAttrl	:: (Attributes -> Attributes) -> a -> a++    setText		:: String   -> a -> a+    setCmt		:: String   -> a -> a+    setName		:: QName    -> a -> a+    setElemName		:: QName    -> a -> a+    setElemAttrl	:: XmlTrees -> a -> a+    setAttrName		:: QName    -> a -> a+    setPiName		:: QName    -> a -> a+    setDTDAttrl		:: Attributes -> a -> a++    -- default implementations++    getName n		= getElemName n `mplus` getAttrName n `mplus` getPiName n+    getQualifiedName n	= getName n >>= \ n' -> return (qualifiedName n')+    getUniversalName n	= getName n >>= \ n' -> return (universalName n')+    getUniversalUri n	= getName n >>= \ n' -> return (universalUri n')+    getLocalPart n	= getName n >>= \ n' -> return (localPart n')+    getNamePrefix n	= getName n >>= \ n' -> return (namePrefix n')+    getNamespaceUri n	= getName n >>= \ n' -> return (namespaceUri n')++    setText t		= changeText     (const t)+    setCmt c		= changeCmt      (const c)+    setName n		= changeName     (const n)+    setElemName n	= changeElemName (const n)+    setElemAttrl al	= changeAttrl    (const al)+    setAttrName	n	= changeAttrName (const n)+    setPiName	n	= changePiName   (const n)+    setDTDAttrl	al	= changeDTDAttrl (const al)++-- XNode and XmlTree are instances of XmlNode++instance XmlNode XNode where+    isText (XText _)		= True+    isText _			= False++    isCharRef (XCharRef _)	= True+    isCharRef _			= False++    isEntityRef (XEntityRef _)	= True+    isEntityRef _		= False++    isCmt (XCmt _)		= True+    isCmt _			= False++    isCdata (XCdata _)		= True+    isCdata _			= False++    isPi (XPi _ _)		= True+    isPi _			= False++    isElem (XTag _ _)		= True+    isElem _			= False++    isDTD (XDTD _ _)		= True+    isDTD _			= False++    isAttr (XAttr _)		= True+    isAttr _			= False++    isError (XError _ _)	= True+    isError _			= False+++    mkText t			= XText t+    mkCharRef c			= XCharRef c+    mkEntityRef e		= XEntityRef e+    mkCmt c			= XCmt c+    mkCdata d			= XCdata d+    mkPi n c			= XPi n (if null c then [] else [mkAttr (mkName a_value) c])+    mkError l msg		= XError l msg+++    getText (XText t)		= Just t+    getText _			= Nothing++    getCharRef (XCharRef c)	= Just c+    getCharRef _		= Nothing++    getEntityRef (XEntityRef e)	= Just e+    getEntityRef _		= Nothing++    getCmt (XCmt c)		= Just c+    getCmt _			= Nothing++    getCdata (XCdata d)		= Just d+    getCdata _			= Nothing++    getPiName (XPi n _)		= Just n+    getPiName _			= Nothing++    getPiContent (XPi _ c)	= Just c+    getPiContent _		= Nothing++    getElemName (XTag n _)	= Just n+    getElemName _		= Nothing++    getAttrl (XTag _ al)	= Just al+    getAttrl (XPi  _ al)	= Just al+    getAttrl _			= Nothing++    getDTDPart (XDTD p _)	= Just p+    getDTDPart _		= Nothing++    getDTDAttrl (XDTD _ al)	= Just al+    getDTDAttrl _		= Nothing++    getAttrName (XAttr n)	= Just n+    getAttrName _		= Nothing++    getErrorLevel (XError l _)	= Just l+    getErrorLevel _		= Nothing++    getErrorMsg (XError _ m)	= Just m+    getErrorMsg _		= Nothing++    changeText cf (XText t)		= XText (cf t)+    changeText _ _			= error "changeText undefined"++    changeCmt cf (XCmt c)		= XCmt (cf c)+    changeCmt _ _			= error "changeCmt undefined"++    changeName cf (XTag n al)		= XTag (cf n) al+    changeName cf (XAttr n)		= XAttr (cf n)+    changeName cf (XPi n al)		= XPi (cf n) al+    changeName _ _			= error "changeName undefined"++    changeElemName cf (XTag n al)	= XTag (cf n) al+    changeElemName _ _			= error "changeElemName undefined"++    changeAttrl cf (XTag n al)		= XTag n (cf al)+    changeAttrl cf (XPi  n al)		= XPi  n (cf al)+    changeAttrl _ _			= error "changeAttrl undefined"++    changeAttrName cf (XAttr n)		= XAttr (cf n)+    changeAttrName _ _			= error "changeAttrName undefined"++    changePiName cf (XPi n al)		= XPi (cf n) al+    changePiName _ _			= error "changeAttrName undefined"++    changeDTDAttrl cf (XDTD p al)	= XDTD p (cf al)+    changeDTDAttrl _ _			= error "changeDTDAttrl undefined"++mkElementNode	:: QName -> XmlTrees -> XNode+mkElementNode	= XTag++mkAttrNode	:: QName -> XNode+mkAttrNode	= XAttr++mkDTDNode	:: DTDElem -> Attributes -> XNode+mkDTDNode	= XDTD++instance XmlNode a => XmlNode (NTree a) where+    isText		= isText      . getNode+    isCharRef		= isCharRef   . getNode+    isEntityRef		= isEntityRef . getNode+    isCmt		= isCmt       . getNode+    isCdata		= isCdata     . getNode+    isPi		= isPi        . getNode+    isElem		= isElem      . getNode+    isDTD		= isDTD       . getNode+    isAttr		= isAttr      . getNode+    isError		= isError     . getNode++    mkText		= mkLeaf . mkText+    mkCharRef		= mkLeaf . mkCharRef+    mkEntityRef		= mkLeaf . mkEntityRef+    mkCmt		= mkLeaf . mkCmt+    mkCdata		= mkLeaf . mkCdata+    mkPi n		= mkLeaf . mkPi n+    mkError l		= mkLeaf . mkError l++    getText		= getText       . getNode+    getCharRef		= getCharRef    . getNode+    getEntityRef	= getEntityRef  . getNode+    getCmt		= getCmt        . getNode+    getCdata		= getCdata      . getNode+    getPiName		= getPiName     . getNode+    getPiContent	= getPiContent  . getNode+    getElemName		= getElemName   . getNode+    getAttrl		= getAttrl      . getNode+    getDTDPart		= getDTDPart    . getNode+    getDTDAttrl		= getDTDAttrl   . getNode+    getAttrName		= getAttrName   . getNode+    getErrorLevel	= getErrorLevel . getNode+    getErrorMsg		= getErrorMsg   . getNode++    changeText cf	= changeNode (changeText cf)+    changeCmt cf	= changeNode (changeCmt  cf)+    changeName cf	= changeNode (changeName cf)+    changeElemName cf	= changeNode (changeElemName cf)+    changeAttrl cf	= changeNode (changeAttrl cf)+    changeAttrName cf	= changeNode (changeAttrName cf)+    changePiName cf	= changeNode (changePiName cf)+    changeDTDAttrl cf	= changeNode (changeDTDAttrl cf)++mkElement	:: QName -> XmlTrees -> XmlTrees -> XmlTree+mkElement n al	= mkTree (mkElementNode n al)++mkAttr		:: QName -> XmlTrees -> XmlTree+mkAttr n	= mkTree (mkAttrNode n)++mkDTDElem	:: DTDElem -> Attributes -> XmlTrees -> XmlTree+mkDTDElem e al	= mkTree (mkDTDNode e al)++addAttr		:: XmlTree -> XmlTrees -> XmlTrees+addAttr a al+    | isAttr a	= add al+    | otherwise	= al+    where+    an = (qualifiedName . fromJust . getAttrName) a+    add []+	= [a]+    add (a1:al1)+	| isAttr a1+	  &&+	  (qualifiedName . fromJust . getAttrName) a1 == an+	    = a : al1+	| otherwise+	    = a1 : add al1++mergeAttrl	:: XmlTrees -> XmlTrees -> XmlTrees+mergeAttrl 	= foldr addAttr++-- ------------------------------------------------------------
+ src/Text/XML/HXT/Arrow/XmlNodeSet.hs view
@@ -0,0 +1,278 @@+-- ------------------------------------------------------------++{- |+   Module     : Text.XML.HXT.Arrow.XmlNodeSet+   Copyright  : Copyright (C) 2006 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: XmlNodeSet.hs,v 1.5 2006/11/12 14:52:59 hxml Exp $++   Arrows for working with XPath and XmlNodeSets.++   Most of the XPath arrows come in two versions,+   one without dealing with namespaces, element and attribute names+   in XPath expressions are taken as they ar ignoring any prefix:localname structure.++   The second variant uses a namespace environment for associating the right+   namespace for the appropriate prefix. an entry for the empty prefix+   defines the default namespace for the expression.++   The second variant should be used, when in the application namespaces+   are significant, that means when namespace propagation is done for+   the documents to be processed.++   NodeSets are sets of \"pointer\" into an XML tree to reference+   subnodes. These nodesets can be computed by XPath expressions or+   normal arrows. The nodesets can then be used later for selecting+   or modifying subtrees of this tree in an efficient way.++-}++-- ------------------------------------------------------------++module Text.XML.HXT.Arrow.XmlNodeSet+    ( getXPathTreesInDoc+    , getXPathTreesInDocWithNsEnv+    , getXPathTrees+    , getXPathTreesWithNsEnv+    , getElemNodeSet+    , getElemAndAttrNodeSet+    , getXPathNodeSet+    , getFromNodeSet+    , processXPathTrees+    , processXPathTreesWithNsEnv+    , processFromNodeSet+    )+where++import qualified Text.XML.HXT.XPath as PT+    ( getXPathWithNsEnv+    , getXPathSubTreesWithNsEnv+    , getXPathNodeSetWithNsEnv+    )++import Control.Arrow.ListArrows++import Text.XML.HXT.Arrow.DOMInterface+import Text.XML.HXT.Arrow.XmlArrow++-- ------------------------------------------------------------++-- |+-- Select parts of a whole XML document with root node by a XPath expression.+--+-- The main filter for selecting parts of a document via XPath.+--+-- The string argument must be a XPath expression with an absolute location path,+-- the argument tree must be a complete document tree.+--+-- Before evaluating the xpath query, the document is canonicalized+-- with 'Text.XML.HXT.Arrow.Edit.canonicalizeForXPath'+--+-- Result is a possibly empty list of XmlTrees forming the set of selected XPath values.+-- XPath values other than XmlTrees (numbers, attributes, tagnames, ...)+-- are convertet to text nodes.++getXPathTreesInDoc			:: ArrowList a => String -> a XmlTree XmlTree+getXPathTreesInDoc			= getXPathTreesInDocWithNsEnv []++-- | Same as 'getXPathTreesInDoc' but with namespace environment for the XPath names++getXPathTreesInDocWithNsEnv		:: ArrowList a => NsEnv -> String -> a XmlTree XmlTree+getXPathTreesInDocWithNsEnv env query	= arrL (PT.getXPathWithNsEnv env query)++-- |+-- Select parts of an arbitrary XML tree by a XPath expression.+--+-- The main filter for selecting parts of an arbitrary XML tree via XPath.+-- The string argument must be a XPath expression with an absolute location path,+-- There are no restrictions on the argument tree.+--+-- No canonicalization is performed before evaluating the query+--+-- Result is a possibly empty list of XmlTrees forming the set of selected XPath values.+-- XPath values other than XmlTrees (numbers, attributes, tagnames, ...)+-- are convertet to text nodes.++getXPathTrees				:: ArrowList a => String -> a XmlTree XmlTree+getXPathTrees				= getXPathTreesWithNsEnv []++-- | Same as 'getXPathTrees' but with namespace environment for the XPath names++getXPathTreesWithNsEnv			:: ArrowList a => NsEnv -> String -> a XmlTree XmlTree+getXPathTreesWithNsEnv env query	= arrL (PT.getXPathSubTreesWithNsEnv env query)++-- | Select a set of nodes via an XPath expression from an arbitray XML tree+--+-- The result is a set of \"pointers\" to nodes. This set can be used to+-- access or modify the values of the subnodes in subsequent calls to 'getFromNodeSet' or 'processFromNodeSet'.+--+-- This function enables for parsing an XPath expressions and traversing the tree for node selection once+-- and reuse this result possibly many times for later selection and modification operations.++getXPathNodeSet				:: ArrowList a => String -> a XmlTree XmlNodeSet+getXPathNodeSet				= getXPathNodeSetWithNsEnv []++-- | Same as 'getXPathNodeSet' but with namespace environment for the XPath names++getXPathNodeSetWithNsEnv		:: ArrowList a => NsEnv -> String -> a XmlTree XmlNodeSet+getXPathNodeSetWithNsEnv nsEnv query	= arr (PT.getXPathNodeSetWithNsEnv nsEnv query)++-- ------------------------------------------------------------++getNodeSet	:: ArrowXml a => a XmlTree QName -> a XmlTree XmlTree -> a XmlTree XmlNodeSet+getNodeSet af f+    = ( ( listA ( getChildren+		  >>>+		  getNodeSet af f+		)+	  >>>+	  arr filterNodeSet+	)+	&&&+	listA af+	&&&+	listA f+      )+      >>^ (\ ~(cl, (al, n)) -> XNS (not . null $ n) al cl)+    where+    filterNodeSet	:: [XmlNodeSet] -> ChildNodes+    filterNodeSet+	= concat . zipWith filterIx [0..]++    filterIx	:: Int -> XmlNodeSet -> ChildNodes+    filterIx _ix (XNS False [] [])+	= []+    filterIx ix ps+	= [(ix, ps)]++-- |+-- compute a node set from a tree, containing all nodes selected by the predicate arrow+--+-- computation of the set of element nodes with name \"a\" is done with+--+-- > getElemNodeSet (hasName "a")++getElemNodeSet		:: ArrowXml a => a XmlTree XmlTree -> a XmlTree XmlNodeSet+getElemNodeSet f+    = getNodeSet none f++-- |+-- compute a node set from a tree, containing all nodes including attribute nodes+-- elected by the predicate arrow++getElemAndAttrNodeSet	:: ArrowXml a => a XmlTree XmlTree -> a XmlTree XmlNodeSet+getElemAndAttrNodeSet f+    = getNodeSet ( getAttrl+		   >>>+		   ( f `guards` getAttrName )+		 ) f++-- ------------------------------------------------------------++-- |+-- select all subtrees specified by a previously computed node set+--+-- the following law holds:+--+-- > getFromNodeSet $< getElemNodeSet f == multi f++getFromNodeSet		:: ArrowXml a => XmlNodeSet -> a XmlTree XmlTree+getFromNodeSet (XNS t al cl)+    = fromLA $+      ( if t then this else none )+      <+>+      ( getAttrl >>> getFromAttrl al )+      <+>+      ( getFromChildren (0-1) cl $< listA getChildren )+    where++    getFromAttrl	:: [QName] -> LA XmlTree XmlTree+    getFromAttrl l+	= ( catA . map hasQName $ l)+	  `guards`+	  this++    getFromChildren	:: Int -> ChildNodes -> XmlTrees -> LA XmlTree XmlTree+    getFromChildren _ [] _+	= none++    getFromChildren i' ((i, sp) : sps) ts+	= ( arrL (const t') >>> getFromNodeSet sp )+	  <+>+	  getFromChildren i sps ts'+	  where+	  (t', ts') = splitAt 1 . drop (i-i'-1) $ ts++-- ------------------------------------------------------------++-- |+-- process all subtrees selected by an XPath expression+--+-- the following law holds:+--+-- > processXPathTrees p xpathExpr == processFromNodeSet p $< getXPathNodeSet xpathExpr+++processXPathTrees		:: ArrowXml a => a XmlTree XmlTree  -> String -> a XmlTree XmlTree+processXPathTrees f		= processXPathTreesWithNsEnv f []++-- | Same as 'processXPathTrees' but with namespace environment for the XPath names++processXPathTreesWithNsEnv	:: ArrowXml a => a XmlTree XmlTree  -> NsEnv -> String -> a XmlTree XmlTree+processXPathTreesWithNsEnv f nsEnv query+    = processFromNodeSet f $< getXPathNodeSetWithNsEnv nsEnv query++-- |+-- process all subtrees specified by a previously computed node set in bottom up manner+--+-- the follwoing law holds:+--+-- > processFromNodeSet g $< getElemNodeSet f == processBottomUp (g `when` f)+--+-- when attributes are contained in the node set (see 'getElemAndAttrNodeSet'), these are processed+-- after the children and before the node itself+--+-- the advantage of processFromNodeSet is the separation of the selection of set of nodes to be processed (e.g. modified)+-- from the real proccessing. The selection sometimes can be done once, the processing possibly many times.++processFromNodeSet	:: ArrowXml a => a XmlTree XmlTree  -> XmlNodeSet -> a XmlTree XmlTree+processFromNodeSet f (XNS t al cl)+    = ( if null cl+	then this+	else replaceChildren ( processC (0-1) cl $< listA getChildren )+      )+      >>>+      ( if null al+	then this+	else processAttrl (processA al)+      )+      >>>+      ( if not t+	then this+	else f+      )+    where++    -- processA		:: ChildNodes -> a XmlTree XmlTree+    processA l+	= f `when` ( catA . map hasQName $ l)++    -- processC		:: ChildNodes -> XmlTrees -> a XmlTree XmlTree+    processC _ [] ts+	= arrL (const ts)++    processC i' ((i, sp) : sps) ts+	= arrL (const ts1)+	  <+>+	  ( arrL (const ti) >>> processFromNodeSet f sp)+	  <+>+	  processC i sps ts21+	  where+	  (ts1, ts2) = splitAt (i-i'-1) ts+	  (ti, ts21) = splitAt 1 ts2++-- ------------------------------------------------------------
+ src/Text/XML/HXT/DOM.hs view
@@ -0,0 +1,28 @@+-- |+-- DOM data types and functions+--+-- Version : $Id: DOM.hs,v 1.2 2006/11/12 14:52:59 hxml Exp $+--+--+-- export of all basic datatypes and functions of the toolbox DOM.+--++module Text.XML.HXT.DOM+    ( module Text.XML.HXT.DOM.XmlTree+    , module Text.XML.HXT.DOM.XmlState+    , module Text.XML.HXT.DOM.EditFilters+    , module Text.XML.HXT.DOM.FormatXmlTree+    , module Text.XML.HXT.DOM.Namespace+    , module Text.XML.HXT.DOM.XmlOptions+    )+where++import Text.XML.HXT.DOM.XmlTree+import Text.XML.HXT.DOM.XmlState+import Text.XML.HXT.DOM.EditFilters+import Text.XML.HXT.DOM.FormatXmlTree+import Text.XML.HXT.DOM.Namespace+import Text.XML.HXT.DOM.XmlOptions++-- ------------------------------------------------------------+
+ src/Text/XML/HXT/DOM/EditFilters.hs view
@@ -0,0 +1,564 @@+-- |+-- XML editing filters+--+-- Version : $Id: EditFilters.hs,v 1.5 2006/11/12 14:52:59 hxml Exp $++module Text.XML.HXT.DOM.EditFilters+    ( canonicalizeTree+    , canonicalizeAllNodes+    , canonicalizeForXPath++    , collapseXText+    , collapseAllXText++    , indentDoc++    , removeWhiteSpace+    , removeAllWhiteSpace+    , removeDocWhiteSpace++    , removeComment+    , removeAllComment++    , transfCdata		, transfAllCdata	-- CDATA to text+    , transfCdataEscaped	, transfAllCdataEscaped	-- CDATA to text+    , transfCharRef		, transfAllCharRef	-- &#nnn; to text++    , escapeXmlDoc+    , escapeXmlText+    , escapeXmlAttrValue++    , unparseXmlDoc+    , numberLinesInXmlDoc	, numberLines+    , treeRepOfXmlDoc+    , haskellRepOfXmlDoc+    , addHeadlineToXmlDoc+    , addXmlPiToDoc+    )+where++import Text.XML.HXT.DOM.XmlTree++import Text.XML.HXT.DOM.Unicode+    ( getOutputEncodingFct)++import Text.XML.HXT.DOM.FormatXmlTree+    ( formatXmlContents )++import Data.Maybe++-- ------------------------------------------------------------++-- |+-- remove Comments++removeComment		:: XmlFilter+removeComment		= none `when` isXCmt++-- |+-- remove all Comments recursively++removeAllComment	:: XmlFilter+removeAllComment	= processBottomUp removeComment++-- ------------------------------------------------------------++-- |+-- simple filter for removing whitespace.+--+-- no check on sigificant whitespace is done.+--+--+-- see also : 'removeAllWhiteSpace', 'removeDocWhiteSpace'++removeWhiteSpace	:: XmlFilter+removeWhiteSpace	= none `when` isWhiteSpace++-- |+-- simple recursive filter for removing all whitespace.+--+-- removes all text nodes in a tree that consist only of whitespace.+--+--+-- see also : 'removeWhiteSpace', 'removeDocWhiteSpace'++removeAllWhiteSpace	:: XmlFilter+removeAllWhiteSpace	= processBottomUp removeWhiteSpace++-- ------------------------------------------------------------+-- |+-- converts CDATA sections in whole document tree into normal text nodes++transfAllCdataEscaped	:: XmlFilter+transfAllCdataEscaped	= processBottomUp transfCdataEscaped++-- |+-- converts CDATA section in normal text nodes++transfCdataEscaped	:: XmlFilter+transfCdataEscaped (NTree (XCdata str) _)+    = xtext str++transfCdataEscaped n+    = [n]+++-- ------------------------------------------------------------+-- |+-- converts CDATA sections in whole document tree++transfAllCdata		:: XmlFilter+transfAllCdata		= processBottomUp transfCdata++-- |+-- converts CDATA section in normal text sections++transfCdata		:: XmlFilter+transfCdata (NTree (XCdata str) _)+    = xtext str++transfCdata n+    = [n]+++-- ------------------------------------------------------------+-- |+-- converts character references to normal text++transfCharRef		:: XmlFilter+transfCharRef (NTree (XCharRef i) _)+    = xtext $ [toEnum i]++transfCharRef n+    = [n]++-- ------------------------------------------------------------+-- |+-- recursively converts all character references to normal text++transfAllCharRef	:: XmlFilter+transfAllCharRef	= processBottomUp transfCharRef++-- ------------------------------------------------------------++-- |+-- Applies some "Canonical XML" rules to the nodes of a tree.+--+-- The rule differ slightly for canonical XML and XPath in handling of comments+--+-- Note: This is not the whole canonicalization as it is specified by the W3C+-- Recommendation. Adding attribute defaults or sorting attributes in lexicographic+-- order is done by the @transform@ function of module @Text.XML.HXT.Validator.Validation@.+-- Replacing entities or line feed normalization is done by the parser.+--+--+-- Not implemented yet:+--+--  - Whitespace within start and end tags is normalized+--+--  - Special characters in attribute values and character content are replaced by character references+--+-- see 'canonicalizeAllNodes' and 'canonicalizeForXPath'++canonicalizeTree	:: XmlFilter -> XmlFilter+canonicalizeTree toBeRemoved+    = processChildren (none `when` isXText)+      .>+      processBottomUp canonicalize1Node+      where+      canonicalize1Node	:: XmlFilter+      canonicalize1Node+	  = (deep isXPi `when` isXDTD)		-- remove DTD parts, except PIs+	    .>+	    (none `when` toBeRemoved)		-- remove unintersting nodes+	    .>+	    ( processAttr ( processChildren transfCharRef+			    .>+			    collapseXText+			  ) `when` isXTag)+	    .>+	    transfCdata				-- CDATA -> text+	    .>+	    transfCharRef			-- Char refs -> text+	    .>+	    collapseXText			-- combine text+++-- |+-- canonicalize tree and remove comments and \<?xml ... ?> declarations+--+-- see 'canonicalizeTree'++canonicalizeAllNodes	:: XmlFilter+canonicalizeAllNodes+    = canonicalizeTree (isXCmt		-- remove comment+			++++			isPi t_xml	-- remove xml declaration+		       )++-- |+-- Canonicalize a tree for XPath+-- Comment nodes are not removed+--+-- see 'canonicalizeTree'++canonicalizeForXPath	:: XmlFilter+canonicalizeForXPath+    = canonicalizeTree (isPi t_xml)++-- ------------------------------------------------------------++-- |+-- Collects sequences of child XText nodes into one XText node.++collapseXText		:: XmlFilter+collapseXText n+    = replaceChildren (collapseXText' $ getChildren n) n+    where+    collapseXText' :: XmlSFilter+    collapseXText' ((NTree (XText t1) _) : (NTree (XText t2) _):zs)+        = collapseXText' $ (xtext (t1++t2)) ++ zs++    collapseXText' (x:xs)+        = x : (collapseXText' xs)++    collapseXText' []+        = []+++-- |+-- Applies collapseXText recursively.+--+--+-- see also : 'collapseXText'++collapseAllXText	:: XmlFilter+collapseAllXText	= processBottomUp collapseXText+++-- ------------------------------------------------------------+--++-- |+-- filter for indenting a document tree for pretty printing.+--+-- the tree is traversed for inserting whitespace for tag indentation.+--+-- whitespace is only inserted or changed at places, where it isn't significant,+-- is's not inserted between tags and text containing non whitespace chars.+--+-- whitespace is only inserted or changed at places, where it's not significant.+-- preserving whitespace may be controlled in a document tree+-- by a tag attribute @xml:space@+--+-- allowed values for this attribute are @default | preserve@.+--+-- input is a complete document tree.+-- result the semantically equivalent formatted tree.+--+--+-- see also : 'removeDocWhiteSpace'++indentDoc	:: XmlFilter+indentDoc +    = modifyChildren (indentRootChildren $$)+      `when`+      isRoot+      where+      indentRootChildren	:: XmlFilter+      indentRootChildren+	  = insertNL `o` indentChild `o` removeText+	    where+	    removeText+		= none `when` isXText+	    insertNL+		= this +++ txt "\n"+	    indentChild+		= modifyChildren (indentTrees (insertIndentation 2) False 1)+		  `whenNot`+		  isXDTD		-- DTD elements are not indented++-- |+-- filter for removing all not significant whitespace.+--+-- the tree traversed for removing whitespace between tags,+-- that was inserted for indentation and readability.+-- whitespace is only removed at places, where it's not significat+-- preserving whitespace may be controlled in a document tree+-- by a tag attribute @xml:space@+--+-- allowed values for this attribute are @default | preserve@+--+-- input is root node of the document to be cleaned up+-- output the semantically equivalent simplified tree+--+--+-- see also : 'indentDoc', 'removeAllWhiteSpace'++removeDocWhiteSpace	:: XmlFilter+removeDocWhiteSpace+    =  processChildren processRootElement+      `when`+      isRoot+      where+      processRootElement	:: XmlFilter+      processRootElement+	  = removeText .> processChild+	    where+	    removeText+		= none `when` isWhiteSpace+	    processChild+		= choice [ isXDTD+			   :-> removeAllWhiteSpace			-- whitespace in DTD is redundant+			 , this+			   :-> modifyChildren				-- same strategie as for indentation+			         (indentTrees insertNothing False 1)+			 ]++indentTrees	:: (Int -> XmlFilter) -> Bool -> Int -> XmlTrees -> XmlTrees+indentTrees _ _ _ []+    = []+indentTrees indentFilter preserveSpace level ts+    = (lsf $$ ls) ++ indentRest rs+      where+      (ls, rs)+	  = break (satisfies isXTag) ts++      isSignificant	:: Bool+      isSignificant+	  = preserveSpace+	    ||+	    any (satisfies isSignificantPart) ls++      isSignificantPart	:: XmlFilter+      isSignificantPart+	  = cat [ isXText `guards` neg isWhiteSpace+		, isXCdata+		, isXCharRef+		, isXEntityRef+		]++      lsf	:: XmlFilter+      lsf+	  | isSignificant+	      = this+	  | otherwise+	      = (none `when` isWhiteSpace)+                .>+                (indentFilter level +++ this)++      indentRest	:: XmlSFilter++      indentRest []+	  | isSignificant+	      = []+	  | otherwise+	      = indentFilter (level - 1) (mkXTextTree "")++      indentRest (t':ts')+	      = ( (modifyChildren indentChildren .> lsf)+		  `when`+                  isXTag+		  $ t'+		)+                +++		( if null ts'+		  then indentRest ts'+		  else indentTrees indentFilter preserveSpace level ts'+		)+		where+		xmlSpaceAttrName  = "xml:space"+		xmlSpaceAttrValue = valueOf xmlSpaceAttrName t'+		preserveSpace'+		    = fromMaybe preserveSpace+		      .+		      lookup xmlSpaceAttrValue+                      $ [ ("preserve", True)+			, ("default",  False)+			]+		indentChildren+		    | all (satisfies isWhiteSpace) $ getChildren t'+			= (none $$)+		    | otherwise+			= indentTrees indentFilter preserveSpace' (level + 1)++-- filter for indenting tags++insertIndentation	:: Int -> Int -> XmlFilter+insertIndentation indentWidth level+    = txt ('\n' : replicate (level * indentWidth) ' ')++-- filter for removing all whitespace++insertNothing		:: Int -> XmlFilter+insertNothing _		= none++-- ------------------------------------------------------------++-- |+-- escape XmlText,+-- transform all special XML chars into CharRefs++escapeString	:: (Char -> Bool) -> String -> XmlTrees+escapeString _isEsc []+    = []+escapeString isEsc (c:s1)+    | isEsc c+	= mkXCharRefTree (fromEnum c) : escapeString isEsc s1+escapeString isEsc s+    = mkXTextTree s1 : escapeString isEsc s2+      where+      (s1, s2) = break isEsc s++escapeText		:: (Char -> Bool) -> XmlFilter+escapeText isEsc (NTree (XText str) _)+    = escapeString isEsc str++escapeText isEsc (NTree (XCmt c) _)+    = xcmt (xshow . escapeString isEsc $ c)++escapeText _ t+    = [t]++-- |+-- convert the special XML chars in a text or comment node+-- into character references+--+-- see also 'escapeXmlDoc'+ +escapeXmlText		:: XmlFilter+escapeXmlText		= escapeText (`elem` "<&")	-- no escape for ", ' and > required: XML standard 2.4++-- |+-- convert the special XML chars in an attribute value into+-- charachter references. Not only the XML specials but also \\n, \\r and \\t are converted+--+-- see also: 'escapeXmlDoc', 'escapeXmlText'++escapeXmlAttrValue	:: XmlFilter+escapeXmlAttrValue	= escapeText (`elem` "<>\"\'&\n\r\t")++-- |+-- convert the special XML chars \", \<, \>, & and \' in a document to char references,+-- attribute values are converted with 'escapeXmlAttrValue'+--+-- see also: 'escapeXmlText', 'escapeXmlAttrValue'++escapeXmlDoc		:: XmlFilter+escapeXmlDoc+    = choice [ isXTag  :-> (processChildren (escapeXmlDoc)+			    .>+			    processAttr escVal+			   )+	     , isXText :-> escapeXmlText+	     -- , isXCmt  :-> escapeXmlText -- no escape in comments reqired: XML standard 2.4+	     , isXDTD  :-> processTopDown escDTD+	     , this    :-> this+	     ]+      where+      escVal   = processChildren escapeXmlAttrValue+      escDTD   = escVal `when` (isEntity +++ isParameterEntity)++-- ------------------------------------------------------------++-- |+-- convert a document tree into an output string representation+-- with respect to the output encoding.+--+-- The children of the document root are stubstituted by+-- a single text node for the text representation of the document.+--+-- Encoding of the document is performed with respect+-- to the @output-encoding@ attribute in the root node, or if not present,+-- of the @encoding@ attribute for the original input encoding.+-- If the encoding is not specified or not supported, UTF-8 is taken.++unparseXmlDoc	:: XmlFilter+unparseXmlDoc n+    = modifyChildren ((modifyText encFct $$) . xmlTreesToText) n+    where+    encFct = fromMaybe id (getOutputEncodingFct (encSpec n))++encSpec :: XmlTree -> String+encSpec n+    = head . filter (not . null)+      $ [ valueOf a_output_encoding n+	, valueOf a_encoding n+	, utf8+	]++-- ------------------------------------------------------------+--+-- add or modify a XML directive for a document+-- for specifying the encoding scheme++addXmlPiToDoc		:: XmlFilter+addXmlPiToDoc n+    = ( modifyChildren addX				-- add <?xml ...>, if neccessary+	`whenNot`+	(getChildren .> isPi t_xml)+      )+      .>+      processChildren ( addAttr a_encoding enc		-- set or replace encoding="..."+			`when`+			isPi t_xml+		      )+      $ n+    where+    enc = encSpec n+    addX cs = mkXmlDeclTree (xattr a_version "1.0") : xtext "\n" ++ cs++-- ------------------------------------------------------------++-- |+-- convert a document into a text and add line numbers to the text representation.+-- +-- Result is a root node with a single text node as child.+-- Useful for debugging and trace output.+-- see also : 'haskellRepOfXmlDoc', 'treeRepOfXmlDoc'++numberLinesInXmlDoc	:: XmlFilter+numberLinesInXmlDoc+    = modifyChildren ((modifyText numberLines $$) . xmlTreesToText)++numberLines	:: String -> String+numberLines str+    = concat $+      zipWith (\ n l -> lineNr n ++ l ++ "\n") [1..] (lines str)+      where+      lineNr	:: Int -> String+      lineNr n	= (reverse (take 6(reverse (show n) ++ replicate 6 ' '))) ++ "  "++-- ------------------------------------------------------------++-- |+-- convert a document into a text representation in tree form.+--+-- Useful for debugging and trace output.+-- see also : 'haskellRepOfXmlDoc', 'numberLinesInXmlDoc'++treeRepOfXmlDoc		:: XmlFilter+treeRepOfXmlDoc+    = rootTag [getAttrl] [formatXmlContents]++-- |+-- convert a document into a Haskell representation (with show).+--+-- Useful for debugging and trace output.+-- see also : 'treeRepOfXmlDoc', 'numberLinesInXmlDoc'++haskellRepOfXmlDoc	:: XmlFilter+haskellRepOfXmlDoc n+    = rootTag [getAttrl] [txt $ show n] n++-- ------------------------------------------------------------++addHeadlineToXmlDoc	:: XmlFilter+addHeadlineToXmlDoc n+    = replaceChildren (xtext title ++ getChildren n ++ xtext "\n") n+      where+      headline  = "content of: " ++ valueOf a_source n+      underline = map (\_ -> '=') headline+      title     = "\n" ++ headline ++ "\n" ++ underline ++ "\n\n"++-- ------------------------------------------------------------
+ src/Text/XML/HXT/DOM/FormatXmlTree.hs view
@@ -0,0 +1,52 @@+-- |+-- format a xml tree in tree representation+--+-- Version : $Id: FormatXmlTree.hs,v 1.2 2006/05/01 18:56:24 hxml Exp $+++module Text.XML.HXT.DOM.FormatXmlTree+    ( formatXmlTree+    , formatXmlContents+    )+where++import Text.XML.HXT.DOM.XmlTree++-- ------------------------------------------------------------+++formatXmlContents	:: XmlFilter+formatXmlContents t+    = [mkXTextTree (formatXmlTree t)]++formatXmlTree		:: XmlTree  -> String+formatXmlTree+    = formatTree xnode2String++xnode2String	:: XNode -> String+xnode2String (XTag n al)+    = "XTag " ++ showQn n ++ concatMap showAl al++xnode2String (XPi n al)+    = "XPi "  ++ showQn n ++ concatMap showAl al++xnode2String n+    = show n++showAl		:: XmlTree -> String+showAl (NTree (XAttr an) av)+    = "\n|   " ++ showQn an ++ "=" ++ show (xshow av)+showAl t+    = show t++showQn		:: QName -> String+showQn n+    | null ns+	= show $ qualifiedName n+    | otherwise+	= show $ "{" ++ ns ++ "}" ++ qualifiedName n+    where+    ns = namespaceUri n++-- ------------------------------------------------------------+
+ src/Text/XML/HXT/DOM/Namespace.hs view
@@ -0,0 +1,54 @@+-- |+-- main namespace filter for propagation, checking, tracing and error handling+--+-- $Id: Namespace.hs,v 1.3 2005/01/06 10:48:07 hxml Exp $+--+module Text.XML.HXT.DOM.Namespace+    ( module Text.XML.HXT.DOM.Namespace+    , module Text.XML.HXT.DOM.NamespaceFilter+    )+where++import Text.XML.HXT.DOM.XmlTree+import Text.XML.HXT.DOM.XmlState+import Text.XML.HXT.DOM.NamespaceFilter++import Text.XML.HXT.Parser.XmlOutput+    ( traceTree+    , traceSource+    , traceMsg+    )++-- -----------------------------------------------------------------------------++-- |+-- propagate all namespace declarations, check namespace constraints and issue errors.+-- If no error was found, result is the unchanged input tree, else the root node \"\/\" with an empty document is returned.+--+-- see also : 'propagateNamespaces', 'validateNamespaces'++propagateAndValidateNamespaces	:: XmlStateFilter a+propagateAndValidateNamespaces+    = traceMsg 2 "propagating namespaces"+      .>>+      liftMf propagateNamespaces+      .>>+      traceTree+      .>>+      traceSource+      .>>+      traceMsg 2 "validating namespaces"+      .>>+      validate+    where+    validate	:: XmlStateFilter a+    validate t+	= let+	  errs = validateNamespaces t+	  in if null errs+	     then thisM t+	     else do+		  liftF this $$< errs+		  return (setStatus c_err "namespace propagation" t)+	  +-- -----------------------------------------------------------------------------
+ src/Text/XML/HXT/DOM/NamespaceFilter.hs view
@@ -0,0 +1,226 @@+-- |+-- Namespace filter+--+-- $Id: NamespaceFilter.hs,v 1.4 2006/11/12 14:53:00 hxml Exp $+--+-- Namespaces are processed with two main filter, 'propagateNamespaces'+-- and 'validateNamespaces'.+--+-- 'propagateNamespaces' takes a XML tree and+-- attaches extra namespace info at every tag name and attribute name.+-- So after processing a tree with 'propagateNamespaces', the access functions+-- "namespaceOf" and "universalNameOf" deliver the associated namespace (or \"\")+-- for tag names and attribute names.+--+-- 'validateNamespaces' checks whether names are wellformed related to the XML namespace definition.+-- whether a legal namespace is declared for all prefixes, and whether attribute names are unique+-- related to universal names.++module Text.XML.HXT.DOM.NamespaceFilter+    ( module Text.XML.HXT.DOM.NamespaceFilter+    , module Text.XML.HXT.DOM.NamespacePredicates+    )+where++import Text.XML.HXT.DOM.XmlTree++import Text.XML.HXT.DOM.NamespacePredicates++import Text.XML.HXT.DOM.Util+    ( doubles )++-- -----------------------------------------------------------------------------+--++-- |+-- Type for the namespace association list, used when propagating namespaces by+-- modifying the 'QName' values in a tree++type NamespaceTable = NsEnv++-- -----------------------------------------------------------------------------++-- |+-- propagate all namespace declarations \"xmlns:ns=...\" to all+-- tag and attribute nodes of a document.+--+-- This filter does not check for illegal use of namespaces.+-- The real work is done by 'propagateNamespaceEnv'.+--+-- The filter may be applied repeatedly if neccessary.++propagateNamespaces	:: XmlFilter+propagateNamespaces	= propagateNamespaceEnv [ (a_xml, xmlNamespace), (a_xmlns, xmlnsNamespace) ]++-- |+-- attaches the namespace info given by the namespace table+-- to a tag node and its attributes and children.++propagateNamespaceEnv	:: NamespaceTable -> XmlFilter+propagateNamespaceEnv env n+    = ( ( processAttr (attachNamespaceUrisToAttr newEnv)+	  .>+	  processChildren (propagateNamespaceEnv newEnv)+	  .>+	  modifyQName (setNamespace newEnv)+	)+	`when`+	isXTag+      )+      $ n+    where+    nsAttrs	= getAttrl				-- scan all attributes+		  .>+		  isOfAttr ( (\ (px, lp)+			     -> (px == a_xmlns		-- check for prefix or whole name is "xmlns"+				 &&+				 lp /= ":"		-- check for none empty local part, "xmlns:" is not a legal name+				)+			     )+			     . span (/= ':')		-- break the name into a pair ("prefix", ":localPart")+			     . aName			-- select attribute name+			   )+		  $ n+    nsDecl	= zip (map (drop 1			-- drop the ":", empty local part represents default name space+			    . snd			-- take the local part with leading ":"+			    . span (/= ':')		-- break it like above+			    . nameOf			-- select attribute name+			   ) nsAttrs)+		      (map (xshow+			    .+			    getChildren+			   ) nsAttrs)+    newEnv	= addEntries nsDecl env++    attachNamespaceUrisToAttr	:: NamespaceTable -> XmlFilter+    attachNamespaceUrisToAttr attrEnv+	= ( isOfAttr ( (\ (px, lp)+			-> ( (not . null . drop 1) lp	-- prefix and local part must not be empty+			     &&+			     (not . null) px+			   )+		       )+		       . span (/= ':')			-- break the name into a pair ("prefix", ":localPart")+		       . aName				-- select attribute name+		     )+	    `guards`+	    modifyQName (setNamespace attrEnv)+	  )+          `orElse`+	  ( modifyQName (const xmlnsQN)			-- "xmlns" ist the only attr name without prefix but with an associated namespace URI+	    `when`+	    isAttr a_xmlns+	  )++-- -----------------------------------------------------------------------------++-- |+-- validate the namespace constraints in a whole tree.+-- result is the list of errors concerning namespaces.+-- Work is done by applying 'validate1Namespaces' to all nodes.+-- Predicates 'isWellformedQName', 'isWellformedQualifiedName', 'isDeclaredNamespace'+-- and 'isWellformedNSDecl' are applied to the appropriate tags and attributes.++validateNamespaces	:: XmlFilter+validateNamespaces+    = choice [ isRoot+               :-> getChildren .> validateNamespaces		-- root is correct by definition+	     , this+	       :-> multi validate1Namespaces+	     ]++-- |+-- a single node for namespace constrains.++validate1Namespaces	:: XmlFilter+validate1Namespaces+    = choice [ isXTag+	       :->+	       cat [ isOfTag ( not . isWellformedQName )+		     `guards`+		     (\ n -> err ("tag name " ++ show (nameOf n) ++ " is not a wellformed qualified name") n )++		   , isOfTag ( not . isDeclaredNamespace )+		     `guards`+		     (\ n -> err ("namespace for prefix in tag name " ++ show (nameOf n) ++ " is undefined") n )++                   , (\ n -> ( let+		               dbls = doubles ((map universalNameOf . getAttrl) n)+		               in+		               if null dbls+		               then none+                               else err ( "multiple occurences of universal names for attributes of tag "+					  ++ show (nameOf n)+					  ++ " : " ++ foldr1 (\ x y -> x ++ ", " ++ y) (map show dbls)+					)+			     ) $ n+		     )++		   , getAttrl .> validate1Namespaces+		   ]++	     , isXAttr+	       :->+	       cat [ isOfAttr ( not . isWellformedQName )+		     `guards`+		     (\ n -> err ("attribute name " ++ show (nameOf n) ++ " is not a wellformed qualified name") n )++		   , isOfAttr ( not . isDeclaredNamespace )+	             `guards`+		     (\ n -> err ("namespace for prefix in attribute name " ++ show (nameOf n) ++ " is undefined") n )++                   , ( hasPrefix a_xmlns .> neg (xmlTreesToText . getChildren) )+		     `guards`+		     (\ n -> err ("namespace value of namespace declaration for " ++ show (nameOf n) ++ " has no value") n )++                   , isOfAttr ( not . isWellformedNSDecl )+		     `guards`+		     (\ n -> err ("illegal namespace declaration with reserved prefix " ++ show (localPartOf n) ++ " starting with \"xml\"") n )+	           ]++             , isXDTD+	       :->+	       cat [ ( ( isDoctype +++ isAttlist +++ isElement +++ isDTDName )+		       .>+		       isOf ( not . isWellformedQualifiedName . valueOfDTD a_name )+		     )+		     `guards`+                     (\ n -> err ("a DTD part contains a not wellformed qualified Name: " ++ show (valueOfDTD a_name n)) n )++		   , ( isAttlist+		       .>+		       isOf ( not . isWellformedQualifiedName . valueOfDTD a_value )+		     )+		     `guards`+                     (\ n -> err ("an ATTLIST declaration contains as attribute name a not wellformed qualified Name: " ++ show (valueOfDTD a_value n)) n )++                   , ( ( isEntity +++ isParameterEntity +++ isNotation )+		       .>+		       isOf ( not . isNCName . valueOfDTD a_name )+		     )+                     `guards`+                     (\ n -> err ("an entity or notation declaration contains a not wellformed NCName: " ++ show (valueOfDTD a_name n)) n )+		   ]+             , isXPi+	       :->+	       ( isOf ( not . isNCName . nameOf )+	         `guards`+                 (\ n -> err ("a PI contains a not wellformed NCName: " ++ show (nameOf n)) n )+	       )+	     ]++-- -----------------------------------------------------------------------------++isNamespaceDecl	:: XmlFilter+isNamespaceDecl+    = isOfAttr xmlnsName+      where+      xmlnsName	:: AttrName -> Bool+      xmlnsName a+	  = px == a_xmlns+	    &&+	    ( null ln || head ln == ':')+	  where+	  (px, ln) = splitAt 5 . qualifiedName $ a++-- -----------------------------------------------------------------------------
+ src/Text/XML/HXT/DOM/NamespacePredicates.hs view
@@ -0,0 +1,139 @@+-- |+-- basic Namespace and QName predicates and functions+--+-- $Id: NamespacePredicates.hs,v 1.3 2006/11/12 14:53:00 hxml Exp $+--++module Text.XML.HXT.DOM.NamespacePredicates+    ( module Text.XML.HXT.DOM.NamespacePredicates+    )+where++import Text.XML.HXT.DOM.XmlTreeTypes		-- NTree and XNode types+import Text.XML.HXT.DOM.XmlKeywords		-- keywords for DTD++import Text.XML.HXT.DOM.Unicode+    ( isXmlNCNameStartChar+    , isXmlNCNameChar+    )++-- -----------------------------------------------------------------------------+--++-- |+-- Compute the name prefix and the namespace uri for a qualified name.+--+-- This function does not test whether the name is a wellformed qualified name.+-- see Namespaces in XML Rule [6] to [8]. Error checking is done with separate functions,+-- see 'isWellformedQName' and 'isWellformedQualifiedName' for error checking.++setNamespace	:: NsEnv -> QName -> QName+setNamespace nst n+    = uncurry ns . span (/= ':') $ qn+    where+    qn = qualifiedName n	-- using qualifiedName instead of localPart enables recomputing of setNamespace++    ns :: String -> String -> QName+    ns lp ""					-- no ":" found in name+	= QN { namePrefix   = ""		-- use default namespace uri+	     , localPart    = lp+	     , namespaceUri = lookup1 "" nst+	     }++    ns px@(_:_) (':' : lp@(_:_))		-- none empty prefix and none empty local part found+	= QN { namePrefix   = px+	     , localPart    = lp+	     , namespaceUri = lookup1 px nst+	     }++    ns _ _					-- not a legal qualified name, don't change name+	= n++xmlnsQN	:: QName+xmlnsQN	= QN { namePrefix	= ""+	     , localPart	= a_xmlns+	     , namespaceUri	= xmlnsNamespace+	     }++-- -----------------------------------------------------------------------------+--++-- |+-- test for wellformed NCName, rule [4] XML Namespaces++isNCName	:: String -> Bool+isNCName []+    = False+isNCName n+    = and ( zipWith ($)+	    (isXmlNCNameStartChar : repeat isXmlNCNameChar)+	    n+	  )++-- |+-- test for wellformed QName, rule [6] XML Namespaces+-- predicate is used in filter 'valdateNamespaces'.++isWellformedQualifiedName	:: String -> Bool+isWellformedQualifiedName s+    | null s+	= True+    | null lp+	= isNCName px+    | otherwise+	= isNCName px && isNCName (tail lp)+    where+    (px, lp) = span (/= ':') s++-- |+-- test for wellformed QName values.+-- A QName is wellformed, if the local part is a NCName, the namePrefix, if not empty, is also a NCName.+-- predicate is used in filter 'valdateNamespaces'.++isWellformedQName	:: QName -> Bool+isWellformedQName n+    = isNCName lp				-- rule [8] XML Namespaces+      &&+      ( null px					-- rule [6] XML Namespaces+	||+	isNCName px				-- rule [7] XML Namespaces+      )+    where+    px = namePrefix n+    lp = localPart n++-- |+-- test for a wellformed namespace declaration+-- all namespace prefixes starting with \"xml\" are reserved for XML related definitions.+-- predicate is used in filter 'valdateNamespaces'.++isWellformedNSDecl	:: QName -> Bool+isWellformedNSDecl n+    = null px+      ||+      px /= a_xmlns+      ||+      (take 3 lp) /= a_xml+    where+    lp = localPart  n+    px = namePrefix n++-- |+-- +-- predicate is used in filter 'valdateNamespaces'.++isDeclaredNamespace	:: QName -> Bool+isDeclaredNamespace n+    | null px					-- no namespace used+	= True+    | px == a_xmlns				-- "xmlns" has a predefined namespace uri+	= ns == xmlnsNamespace+    | px == a_xml				-- "xml" has a predefiend namespace"+	= ns == xmlNamespace+    | otherwise					-- namespace values are not empty+	= (not . null) ns+    where+    px = namePrefix   n+    ns = namespaceUri n++-- -----------------------------------------------------------------------------
+ src/Text/XML/HXT/DOM/TypeDefs.hs view
@@ -0,0 +1,317 @@+-- |+-- The core data types of HDOM.+--+-- Version : $Id: TypeDefs.hs,v 1.13 2006/11/09 20:27:42 hxml Exp $++module Text.XML.HXT.DOM.TypeDefs+    ( module Data.AssocList+    , module Text.XML.HXT.DOM.TypeDefs+    )++where+import Control.Strategies.DeepSeq+import Data.AssocList+import Data.Char		(toLower)+import Data.Tree.NTree.TypeDefs+import Data.Typeable++-- -----------------------------------------------------------------------------+--+-- Basic types for xml tree and filters++-- | Node of xml tree representation++type XmlTree	= NTree    XNode++-- | List of nodes of xml tree representation++type XmlTrees	= NTrees   XNode++-- -----------------------------------------------------------------------------+--+-- XNode++-- | Represents elements++data XNode	= XText		  String			-- ^ ordinary text				(leaf)+		| XCharRef	  Int				-- ^ character reference			(leaf)+		| XEntityRef	  String			-- ^ entity reference				(leaf)+		| XCmt		  String			-- ^ comment					(leaf)+		| XCdata	  String			-- ^ CDATA section				(leaf)+		| XPi		  QName XmlTrees		-- ^ Processing Instr with qualified name	(leaf)+								--   with list of attributes.+								--   If tag name is xml, attributs are \"version\", \"encoding\", \"standalone\",+								--   else attribute list is empty, content is a text child node+		| XTag		  QName XmlTrees		-- ^ tag with qualified name and list of attributes (inner node or leaf)+		| XDTD		  DTDElem  Attributes		-- ^ DTD element with assoc list for dtd element features+		| XAttr		  QName				-- ^ attribute with qualified name, the attribute value is stored in children+		| XError	  Int  String			-- ^ error message with level and text+		  deriving (Eq, Ord, Show, Read, Typeable)++instance DeepSeq XNode where+    deepSeq (XText s) y		= deepSeq s y+    deepSeq (XCharRef i) y	= deepSeq i y+    deepSeq (XEntityRef n) y	= deepSeq n y+    deepSeq (XCmt c) y		= deepSeq c y+    deepSeq (XCdata s) y	= deepSeq s y+    deepSeq (XPi qn ts) y	= deepSeq qn $ deepSeq ts y+    deepSeq (XTag qn cs) y	= deepSeq qn $ deepSeq cs y+    deepSeq (XDTD de al) y	= deepSeq de $ deepSeq al y+    deepSeq (XAttr qn) y	= deepSeq qn y+    deepSeq (XError n e) y	= deepSeq n  $ deepSeq e y++-- -----------------------------------------------------------------------------+--+-- DTDElem++-- | Represents a DTD element++data DTDElem	= DOCTYPE	-- ^ attr: name, system, public,	XDTD elems as children+		| ELEMENT	-- ^ attr: name, kind+		                --+				--  name: element name+		                --+				--  kind: \"EMPTY\" | \"ANY\" | \"\#PCDATA\" | children | mixed+		| CONTENT	-- ^ element content+		                --+				--  attr: kind, modifier+		                --+				--  modifier: \"\" | \"?\" | \"*\" | \"+\"+		                --+				--  kind: seq | choice+		| ATTLIST	-- ^ attributes:+		                --  name - name of element+		                --+				--  value - name of attribute+		                --+				--  type: \"CDATA\" | \"ID\" | \"IDREF\" | \"IDREFS\" | \"ENTITY\" | \"ENTITIES\" |+		                --+				--        \"NMTOKEN\" | \"NMTOKENS\" |\"NOTATION\" | \"ENUMTYPE\"+		                --+				--  kind: \"#REQUIRED\" | \"#IMPLIED\" | \"DEFAULT\"+		| ENTITY	-- ^ for entity declarations+		| PENTITY	-- ^ for parameter entity declarations+		| NOTATION	-- ^ for notations+		| CONDSECT	-- ^ for INCLUDEs, IGNOREs and peRefs: attr: type+		                --+				--  type = INCLUDE, IGNORE or %...;+		| NAME		-- ^ attr: name+		                --+				--  for lists of names in notation types or nmtokens in enumeration types+		| PEREF		-- ^ for Parameter Entity References in DTDs+		  deriving (Eq, Ord, Show, Read, Typeable)++instance DeepSeq DTDElem++-- -----------------------------------------------------------------------------++-- | Attribute list+--+-- used for storing option lists and features of DTD parts++type Attributes	= AssocList String String++-- -----------------------------------------------------------------------------+--+-- |+-- Namespace support for element and attribute names.+--+-- A qualified name consists of a name prefix, a local name+-- and a namespace uri.+-- All modules, which are not namespace aware, use only the 'localPart' component.+-- When dealing with namespaces, the document tree must be processed by "propagateNamespaces"+-- to split names of structure \"prefix:localPart\" and label the name with the apropriate namespace uri++data QName = QN { namePrefix	:: String	-- ^ the name prefix part of a qualified name \"namePrefix:localPart\"+		, localPart	:: String	-- ^ the local part of a qualified name \"namePrefix:localPart\"+		, namespaceUri	:: String	-- ^ the associated namespace uri+		}+	     deriving (Eq, Ord, Show, Read, Typeable)++instance DeepSeq QName where+    deepSeq (QN np lp ns) y	= deepSeq np $ deepSeq lp $ deepSeq ns y++-- |+-- builds the full name \"prefix:localPart\", if prefix is not null, else the local part is the result++qualifiedName		:: QName -> String+qualifiedName n+    | null px+	= lp+    | otherwise+	= px ++ (':' : lp)+    where+    px = namePrefix n+    lp = localPart  n++-- |+-- builds the \"universal\" name, that is the namespace uri surrounded with \"{\" and \"}\" followed by the local part+-- (specialisation of 'buildUniversalName')++universalName	:: QName -> String+universalName	= buildUniversalName (\ ns lp -> '{' : (ns ++ ('}' : lp)))++-- |+-- builds an \"universal\" uri, that is the namespace uri followed by the local part. This is usefull for RDF applications,+-- where the subject, predicate and object often are concatenated from namespace uri and local part+-- (specialisation of 'buildUniversalName')++universalUri	:: QName -> String+universalUri	= buildUniversalName (++)++-- |+-- builds a string from the namespace uri and the local part. If the namespace uri is empty, the local part is returned, else+-- namespace uri and local part are combined with the combining function given by the first parameter++buildUniversalName	:: (String -> String -> String) -> QName -> String+buildUniversalName bf n+    | null ns+	= lp+    | otherwise+	= bf ns lp+    where+    ns = namespaceUri n+    lp = localPart    n++-- |+-- constructs a simple, namespace unaware name, 'namePrefix' and 'namespaceUri' are set to the empty string.++mkName	:: String -> QName+mkName s+    = QN { namePrefix	= ""+	 , localPart	= s+	 , namespaceUri	= ""+	 }++-- |+-- constructs a simple name, with prefix and localPart but without a namespace uri.+--+-- see also 'mkName', 'mkNsName', 'mkSNsName'++mkPrefixLocalPart	:: String -> String -> QName+mkPrefixLocalPart p l+    = QN { namePrefix	= p+	 , localPart	= l+	 , namespaceUri	= ""+	 }++-- |+-- constructs a simple, namespace aware name, with prefix:localPart as first parameter, namspace uri as second.+--+-- see also 'mkName', 'mkPrefixLocalPart'++mkNsName	:: String -> String -> QName+mkNsName n ns+    = QN { namePrefix	= p+	 , localPart	= l+	 , namespaceUri	= ns+	 }+      where+      (x1, x2) = span (/= ':') n+      (p, l)+	  | null x2	= ("", x1)+	  | otherwise	= (x1, tail x2)+++-- |+-- constructs a simple name, with prefix:localPart as 1 parameter, with empty namspace uri, same as 'mkPrefixLocalPart, but with a single parameter+--+-- see also 'mkNsName', 'mkPrefixLocalPart'++mkSNsName	:: String -> QName+mkSNsName n	= mkNsName n ""++-- | Empty QName++nullQName	:: QName+nullQName	= QN "" "" ""++-- | Equality of QNames: Two QNames are equal, if the local parts are equal+-- and the namespace URIs are equal.+-- The comparison works with and without namespace propagation.+-- If namespaces have been propagated, the name is split into prefix and local part+-- and the namespace uri is set. In this case the prefix is not significant for equality test.+-- If namespaces have not been propagated, the local part contains the full name, prefix+-- and namespace URI are empty. The full name (prefix and local part) is used for comparison.++equalQName	:: QName -> QName -> Bool+equalQName 	= equalQNameBy (==)++-- | Equivalent QNames are defined as follows: The URIs are normalized before comparison.+-- Comparison is done with 'equalQNameBy' and 'equivUri'++equivQName	:: QName -> QName -> Bool+equivQName	= equalQNameBy equivUri++-- | Comparison of normalized namespace URIs using 'normalizeNsUri'++equivUri	:: String -> String -> Bool+equivUri x y	= normalizeNsUri x == normalizeNsUri y++-- | Sometimes a weaker equality relation than 'equalQName' is appropriate, e.g no case significance in names, ...+-- a name normalization function can be applied to the strings before comparing. Called by 'equalQName' and+-- 'equivQName'++equalQNameBy	:: (String -> String -> Bool) -> QName -> QName -> Bool+equalQNameBy equiv q1 q2+    = localPart q1 == localPart q2+      &&+      (namespaceUri q1 `equiv` namespaceUri q2)++-- |  Normalization of URIs: Normalization is done by conversion into lowercase letters. A trailing \"\/\" is ignored++normalizeNsUri	:: String -> String+normalizeNsUri+    = map toLower . stripSlash+    where+    stripSlash ""	= ""+    stripSlash s+	| last s == '/'	= init s+	| otherwise	= s++-- -----------------------------------------------------------------------------+--++-- |+-- Type for the namespace association list, used when propagating namespaces by+-- modifying the 'QName' values in a tree++type NsEnv = AssocList String String++-- -----------------------------------------------------------------------------+--+-- Constants for error levels++-- | no error, everything is ok+c_ok	:: Int+c_ok	= 0++-- | Error level for XError, type warning+c_warn  :: Int+c_warn  = c_ok + 1++-- | Error level for XError, type error+c_err   :: Int+c_err   = c_warn + 1++-- | Error level for XError, type fatal error+c_fatal :: Int+c_fatal = c_err + 1++-- -----------------------------------------------------------------------------++-- | data type for representing a set of nodes as a tree structure+--+-- this structure is e.g. used to repesent the result of an XPath query+-- such that the selected nodes can be processed or selected later in+-- processing a document tree++data XmlNodeSet	= XNS { thisNode	:: Bool		-- ^ is this node part of the set ?+		      , attrNodes	:: [QName]	-- ^ the set of attribute nodes+		      , childNodes	:: ChildNodes	-- ^ the set of child nodes, a list of pairs of index and node set +		      }+		  deriving (Eq, Show, Typeable)++type ChildNodes	= [(Int, XmlNodeSet)]++-- -----------------------------------------------------------------------------
+ src/Text/XML/HXT/DOM/Unicode.hs view
@@ -0,0 +1,1056 @@+-- |+-- Unicode (UCS-2) and UTF-8 Conversion Funtions+--+++-- Module: $Id: Unicode.hs,v 1.4 2006/08/17 15:33:53 hxml Exp $++module Text.XML.HXT.DOM.Unicode+    (+     -- * Unicode Type declarations+     Unicode,+     UString,+     UTF8Char,+     UTF8String,++      -- * Unicode and UTF-8 predicates+      isLeadingMultiByteChar+    , isFollowingMultiByteChar+    , isMultiByteChar+    , isNByteChar++    , is1ByteXmlChar+    , isMultiByteXmlChar++    , isXmlChar+    , isXmlLatin1Char+    , isXmlSpaceChar+    , isXml11SpaceChar+    , isXmlNameChar+    , isXmlNameStartChar+    , isXmlNCNameChar+    , isXmlNCNameStartChar+    , isXmlPubidChar+    , isXmlLetter+    , isXmlBaseChar+    , isXmlIdeographicChar+    , isXmlCombiningChar+    , isXmlDigit+    , isXmlExtender+    , isXmlControlOrPermanentlyUndefined++      -- * UTF-8 and Unicode conversion functions+    , utf8ToUnicodeChar+    , utf8ToUnicode+    , utf8WithByteMarkToUnicode+    , latin1ToUnicode+    , ucs2ToUnicode+    , ucs2BigEndianToUnicode+    , ucs2LittleEndianToUnicode+    , utf16beToUnicode+    , utf16leToUnicode++    , unicodeCharToUtf8 ++    , unicodeToUtf8 +    , unicodeToXmlEntity+    , unicodeToLatin1+    , unicodeRemoveNoneAscii+    , unicodeRemoveNoneLatin1++    , intToCharRef+    , intToCharRefHex++    , getEncodingFct+    , getOutputEncodingFct++    , normalizeNL+    , guessEncoding+    )+where++import Text.XML.HXT.DOM.XmlKeywords++import Data.Char( toUpper )++import Text.XML.HXT.DOM.Util( intToHexString )++-- ------------------------------------------------------------++-- | Unicode is represented as the Char type+--   Precondition for this is the support of Unicode character range+--   in the compiler (e.g. ghc but not hugs)+type Unicode	= Char++-- | the type for Unicode strings+type UString	= [Unicode]++-- | UTF-8 charachters are represented by the Char type+type UTF8Char	= Char++-- | UTF-8 strings are implemented as Haskell strings+type UTF8String	= String++-- ------------------------------------------------------------+--+-- Unicode predicates++-- |+-- test for a legal 1 byte XML char++is1ByteXmlChar		:: Unicode -> Bool+is1ByteXmlChar c+    = c < '\x80'+      && ( c >= ' '+	   ||+	   c == '\n'+	   ||+	   c == '\t'+	   ||+	   c == '\r'+	 )++-- |+-- test for a legal multi byte XML char++isMultiByteXmlChar	:: Unicode -> Bool+isMultiByteXmlChar i+    = ( i >= '\x00000080' && i <= '\x0000D7FF' )+      ||+      ( i >= '\x0000E000' && i <= '\x0000FFFD' )+      ||+      ( i >= '\x00010000' && i <= '\x0010FFFF' )+++-- |+-- test for a legal latin1 XML char++isXmlLatin1Char		:: Unicode -> Bool+isXmlLatin1Char i+    = is1ByteXmlChar i+      ||+      (i >= '\x80' && i <= '\xff')+++-- |+-- test for leading multibyte UTF-8 character++isLeadingMultiByteChar	:: Char -> Bool+isLeadingMultiByteChar	c+    = c >= '\xC0' && c <= '\xFD'++-- |+-- test for following multibyte UTF-8 character++isFollowingMultiByteChar	:: Char -> Bool+isFollowingMultiByteChar	c+    = c >= '\x80' && c < '\xC0'++-- |+-- test for following multibyte UTF-8 character++isMultiByteChar	:: Char -> Bool+isMultiByteChar	c+    = c >= '\x80' && c <= '\xBF'++-- |+-- compute the number of following bytes and the mask bits of a leading UTF-8 multibyte char++isNByteChar	:: Unicode -> (Int, Int, Int)+isNByteChar c+    | c >= '\xc0' && c <= '\xdf' = (1, 0xC0, 0x00000080)+    | c >= '\xe0' && c <= '\xef' = (2, 0xE0, 0x00000800)+    | c >= '\xf0' && c <= '\xf7' = (3, 0xF0, 0x00010000)+    | c >= '\xf8' && c <= '\xfb' = (4, 0xF8, 0x00200000)+    | c >= '\xfc' && c <= '\xfd' = (5, 0xFC, 0x04000000)+    | otherwise	= error ("isNByteChar: illegal leading UTF-8 character " ++ show c)++-- ------------------------------------------------------------++-- |+-- conversion of a UTF-8 encoded single Unicode character into the corresponding Unicode value.+-- precondition: the character is a valid UTF-8 encoded character++utf8ToUnicodeChar		:: UTF8String -> Unicode+utf8ToUnicodeChar c+    = case (utf8ToUnicode c)+      of+      [u] -> u+      _   -> error ("utf8ToUnicodeChar: illegal UTF-8 charachter " ++ show c)++-- ------------------------------------------------------------++-- |+-- conversion of a UTF-8 encoded string into a sequence of unicode values.+-- precondition: the string is a valid UTF-8 encoded string++utf8ToUnicode		:: UTF8String -> UString+utf8ToUnicode (c : cs)+    | c < '\x80' +	= c : utf8ToUnicode cs+    | isLeadingMultiByteChar c+      &&+      resAsInt <= fromEnum (maxBound::Char)+      &&+      l1 == length cs0+	= toEnum resAsInt			-- (utf8ToU (fromEnum c - mask) cs0)+	  : utf8ToUnicode cs1+    | otherwise+	= error ("utf8ToUnicode: illegal UTF-8 charachter sequence " ++ show (c : cs) ++ " (try -" ++ "-encoding=" ++ isoLatin1 ++ ")")+	  where+	  (l1, mask, _min)	= isNByteChar c+	  (cs0, cs1)		= splitAt l1 cs++	  resAsInt		:: Int+	  resAsInt		= utf8ToU (fromEnum c - mask) cs0++	  utf8ToU i []	    = i+	  utf8ToU i (c1:l)+	      | isFollowingMultiByteChar c1+		  = utf8ToU (i * 0x40 + (fromEnum c1 - 0x80)) l+	      | otherwise+		  = error ("utf8ToUnicode: illegal UTF-8 multibyte character " ++ show (c : cs0) ++ " (try -" ++ "-encoding=" ++ isoLatin1 ++ ")")++utf8ToUnicode []+    = []++-- ------------------------------------------------------------++-- |+-- conversion from Unicode strings (UString) to UTF8 encoded strings.++unicodeToUtf8		:: UString -> UTF8String+unicodeToUtf8		= concatMap unicodeCharToUtf8++-- |+-- conversion from Unicode (Char) to a UTF8 encoded string.++unicodeCharToUtf8	:: Unicode -> UTF8String+unicodeCharToUtf8 c+    | i >= 0          && i <= 0x0000007F	-- 1 byte UTF8 (7 bits)+	= [ toEnum i ]+    | i >= 0x00000080 && i <= 0x000007FF	-- 2 byte UTF8 (5 + 6 bits)+	= [ toEnum (0xC0 + i `div` 0x40)+	  , toEnum (0x80 + i                  `mod` 0x40)+	  ]+    | i >= 0x00000800 && i <= 0x0000FFFF	-- 3 byte UTF8 (4 + 6 + 6 bits)+	= [ toEnum (0xE0 +  i `div`   0x1000)+	  , toEnum (0x80 + (i `div`     0x40) `mod` 0x40)+	  , toEnum (0x80 +  i                 `mod` 0x40)+	  ]+    | i >= 0x00010000 && i <= 0x001FFFFF	-- 4 byte UTF8 (3 + 6 + 6 + 6 bits)+	= [ toEnum (0xF0 +  i `div`    0x40000)+	  , toEnum (0x80 + (i `div`     0x1000) `mod` 0x40)+	  , toEnum (0x80 + (i `div`       0x40) `mod` 0x40)+	  , toEnum (0x80 +  i                   `mod` 0x40)+	  ]+    | i >= 0x00200000 && i <= 0x03FFFFFF	-- 5 byte UTF8 (2 + 6 + 6 + 6 + 6 bits)+	= [ toEnum (0xF8 +  i `div`  0x1000000)+	  , toEnum (0x80 + (i `div`    0x40000) `mod` 0x40)+	  , toEnum (0x80 + (i `div`     0x1000) `mod` 0x40)+	  , toEnum (0x80 + (i `div`       0x40) `mod` 0x40)+	  , toEnum (0x80 +  i                   `mod` 0x40)+	  ]+    | i >= 0x04000000 && i <= 0x7FFFFFFF	-- 6 byte UTF8 (1 + 6 + 6 + 6 + 6 + 6 bits)+	= [ toEnum (0xFC +  i `div` 0x40000000)+	  , toEnum (0x80 + (i `div`  0x1000000) `mod` 0x40)+	  , toEnum (0x80 + (i `div`    0x40000) `mod` 0x40)+	  , toEnum (0x80 + (i `div`     0x1000) `mod` 0x40)+	  , toEnum (0x80 + (i `div`       0x40) `mod` 0x40)+	  , toEnum (0x80 +  i                   `mod` 0x40)+	  ]+    | otherwise					-- other values not supported+	= error ("unicodeCharToUtf8: illegal integer argument " ++ show i)+    where+    i = fromEnum c++-- ------------------------------------------------------------++-- |+-- checking for valid XML characters++isXmlChar		:: Unicode -> Bool+isXmlChar c+    = isInList c+      [ ('\x0009', '\x000A')+      , ('\x000D', '\x000D')+      , ('\x0020', '\xD7FF')+      , ('\xE000', '\xFFFD')+      , ('\x10000', '\x10FFFF')+      ]++-- |+-- checking for XML space character: \\\n, \\\r, \\\t and \" \"++isXmlSpaceChar		:: Unicode -> Bool+isXmlSpaceChar c+    = c `elem` ['\x20', '\x09', '\x0D', '\x0A']++-- |+-- checking for XML1.1 space character: additional space 0x85 and 0x2028+--+-- see also : 'isXmlSpaceChar'++isXml11SpaceChar		:: Unicode -> Bool+isXml11SpaceChar c+    = c `elem` ['\x20', '\x09', '\x0D', '\x0A', '\x85', '\x2028']++-- |+-- checking for XML name character++isXmlNameChar		:: Unicode -> Bool+isXmlNameChar c+    = isXmlLetter c+      ||+      isXmlDigit c+      ||+      (c == '\x2D' || c == '\x2E')		-- '-' | '.'+      ||+      (c == '\x3A' || c == '\x5F')		-- Letter | ':' | '_'+      ||+      isXmlCombiningChar c+      ||+      isXmlExtender c++-- |+-- checking for XML name start character+--+-- see also : 'isXmlNameChar'++isXmlNameStartChar		:: Unicode -> Bool+isXmlNameStartChar c+    = isXmlLetter c+      ||+      (c == '\x3A' || c == '\x5F')		-- Letter | ':' | '_'++-- |+-- checking for XML NCName character: no \":\" allowed+--+-- see also : 'isXmlNameChar'++isXmlNCNameChar			:: Unicode -> Bool+isXmlNCNameChar c+    = c /= '\x3A'+      &&+      isXmlNameChar c++-- |+-- checking for XML NCName start character: no \":\" allowed+--+-- see also : 'isXmlNameChar', 'isXmlNCNameChar'++isXmlNCNameStartChar		:: Unicode -> Bool+isXmlNCNameStartChar c+    = c /= '\x3A'+      &&+      isXmlNameStartChar c++-- |+-- checking for XML public id character++isXmlPubidChar		:: Unicode -> Bool+isXmlPubidChar c+    = isInList c [ ('A', 'Z')+		 , ('a', 'z')+		 , ('0', '9')+		 ]+      ||+      ( c `elem` " \r\n-'()+,./:=?;!*#@$_%" )++-- |+-- checking for XML letter++isXmlLetter		:: Unicode -> Bool+isXmlLetter c+    = isXmlBaseChar c+      ||+      isXmlIdeographicChar c++-- |+-- checking for XML base charater++isXmlBaseChar		:: Unicode -> Bool+isXmlBaseChar c+    = isInList c+      [ ('\x0041', '\x005A')+      , ('\x0061', '\x007A')+      , ('\x00C0', '\x00D6')+      , ('\x00D8', '\x00F6')+      , ('\x00F8', '\x0131')+      , ('\x0134', '\x013E')+      , ('\x0141', '\x0148')+      , ('\x014A', '\x017E')+      , ('\x0180', '\x01C3')+      , ('\x01CD', '\x01F0')+      , ('\x01F4', '\x01F5')+      , ('\x01FA', '\x0217')+      , ('\x0250', '\x02A8')+      , ('\x02BB', '\x02C1')+      , ('\x0386', '\x0386')+      , ('\x0388', '\x038A')+      , ('\x038C', '\x038C')+      , ('\x038E', '\x03A1')+      , ('\x03A3', '\x03CE')+      , ('\x03D0', '\x03D6')+      , ('\x03DA', '\x03DA')+      , ('\x03DC', '\x03DC')+      , ('\x03DE', '\x03DE')+      , ('\x03E0', '\x03E0')+      , ('\x03E2', '\x03F3')+      , ('\x0401', '\x040C')+      , ('\x040E', '\x044F')+      , ('\x0451', '\x045C')+      , ('\x045E', '\x0481')+      , ('\x0490', '\x04C4')+      , ('\x04C7', '\x04C8')+      , ('\x04CB', '\x04CC')+      , ('\x04D0', '\x04EB')+      , ('\x04EE', '\x04F5')+      , ('\x04F8', '\x04F9')+      , ('\x0531', '\x0556')+      , ('\x0559', '\x0559')+      , ('\x0561', '\x0586')+      , ('\x05D0', '\x05EA')+      , ('\x05F0', '\x05F2')+      , ('\x0621', '\x063A')+      , ('\x0641', '\x064A')+      , ('\x0671', '\x06B7')+      , ('\x06BA', '\x06BE')+      , ('\x06C0', '\x06CE')+      , ('\x06D0', '\x06D3')+      , ('\x06D5', '\x06D5')+      , ('\x06E5', '\x06E6')+      , ('\x0905', '\x0939')+      , ('\x093D', '\x093D')+      , ('\x0958', '\x0961')+      , ('\x0985', '\x098C')+      , ('\x098F', '\x0990')+      , ('\x0993', '\x09A8')+      , ('\x09AA', '\x09B0')+      , ('\x09B2', '\x09B2')+      , ('\x09B6', '\x09B9')+      , ('\x09DC', '\x09DD')+      , ('\x09DF', '\x09E1')+      , ('\x09F0', '\x09F1')+      , ('\x0A05', '\x0A0A')+      , ('\x0A0F', '\x0A10')+      , ('\x0A13', '\x0A28')+      , ('\x0A2A', '\x0A30')+      , ('\x0A32', '\x0A33')+      , ('\x0A35', '\x0A36')+      , ('\x0A38', '\x0A39')+      , ('\x0A59', '\x0A5C')+      , ('\x0A5E', '\x0A5E')+      , ('\x0A72', '\x0A74')+      , ('\x0A85', '\x0A8B')+      , ('\x0A8D', '\x0A8D')+      , ('\x0A8F', '\x0A91')+      , ('\x0A93', '\x0AA8')+      , ('\x0AAA', '\x0AB0')+      , ('\x0AB2', '\x0AB3')+      , ('\x0AB5', '\x0AB9')+      , ('\x0ABD', '\x0ABD')+      , ('\x0AE0', '\x0AE0')+      , ('\x0B05', '\x0B0C')+      , ('\x0B0F', '\x0B10')+      , ('\x0B13', '\x0B28')+      , ('\x0B2A', '\x0B30')+      , ('\x0B32', '\x0B33')+      , ('\x0B36', '\x0B39')+      , ('\x0B3D', '\x0B3D')+      , ('\x0B5C', '\x0B5D')+      , ('\x0B5F', '\x0B61')+      , ('\x0B85', '\x0B8A')+      , ('\x0B8E', '\x0B90')+      , ('\x0B92', '\x0B95')+      , ('\x0B99', '\x0B9A')+      , ('\x0B9C', '\x0B9C')+      , ('\x0B9E', '\x0B9F')+      , ('\x0BA3', '\x0BA4')+      , ('\x0BA8', '\x0BAA')+      , ('\x0BAE', '\x0BB5')+      , ('\x0BB7', '\x0BB9')+      , ('\x0C05', '\x0C0C')+      , ('\x0C0E', '\x0C10')+      , ('\x0C12', '\x0C28')+      , ('\x0C2A', '\x0C33')+      , ('\x0C35', '\x0C39')+      , ('\x0C60', '\x0C61')+      , ('\x0C85', '\x0C8C')+      , ('\x0C8E', '\x0C90')+      , ('\x0C92', '\x0CA8')+      , ('\x0CAA', '\x0CB3')+      , ('\x0CB5', '\x0CB9')+      , ('\x0CDE', '\x0CDE')+      , ('\x0CE0', '\x0CE1')+      , ('\x0D05', '\x0D0C')+      , ('\x0D0E', '\x0D10')+      , ('\x0D12', '\x0D28')+      , ('\x0D2A', '\x0D39')+      , ('\x0D60', '\x0D61')+      , ('\x0E01', '\x0E2E')+      , ('\x0E30', '\x0E30')+      , ('\x0E32', '\x0E33')+      , ('\x0E40', '\x0E45')+      , ('\x0E81', '\x0E82')+      , ('\x0E84', '\x0E84')+      , ('\x0E87', '\x0E88')+      , ('\x0E8A', '\x0E8A')+      , ('\x0E8D', '\x0E8D')+      , ('\x0E94', '\x0E97')+      , ('\x0E99', '\x0E9F')+      , ('\x0EA1', '\x0EA3')+      , ('\x0EA5', '\x0EA5')+      , ('\x0EA7', '\x0EA7')+      , ('\x0EAA', '\x0EAB')+      , ('\x0EAD', '\x0EAE')+      , ('\x0EB0', '\x0EB0')+      , ('\x0EB2', '\x0EB3')+      , ('\x0EBD', '\x0EBD')+      , ('\x0EC0', '\x0EC4')+      , ('\x0F40', '\x0F47')+      , ('\x0F49', '\x0F69')+      , ('\x10A0', '\x10C5')+      , ('\x10D0', '\x10F6')+      , ('\x1100', '\x1100')+      , ('\x1102', '\x1103')+      , ('\x1105', '\x1107')+      , ('\x1109', '\x1109')+      , ('\x110B', '\x110C')+      , ('\x110E', '\x1112')+      , ('\x113C', '\x113C')+      , ('\x113E', '\x113E')+      , ('\x1140', '\x1140')+      , ('\x114C', '\x114C')+      , ('\x114E', '\x114E')+      , ('\x1150', '\x1150')+      , ('\x1154', '\x1155')+      , ('\x1159', '\x1159')+      , ('\x115F', '\x1161')+      , ('\x1163', '\x1163')+      , ('\x1165', '\x1165')+      , ('\x1167', '\x1167')+      , ('\x1169', '\x1169')+      , ('\x116D', '\x116E')+      , ('\x1172', '\x1173')+      , ('\x1175', '\x1175')+      , ('\x119E', '\x119E')+      , ('\x11A8', '\x11A8')+      , ('\x11AB', '\x11AB')+      , ('\x11AE', '\x11AF')+      , ('\x11B7', '\x11B8')+      , ('\x11BA', '\x11BA')+      , ('\x11BC', '\x11C2')+      , ('\x11EB', '\x11EB')+      , ('\x11F0', '\x11F0')+      , ('\x11F9', '\x11F9')+      , ('\x1E00', '\x1E9B')+      , ('\x1EA0', '\x1EF9')+      , ('\x1F00', '\x1F15')+      , ('\x1F18', '\x1F1D')+      , ('\x1F20', '\x1F45')+      , ('\x1F48', '\x1F4D')+      , ('\x1F50', '\x1F57')+      , ('\x1F59', '\x1F59')+      , ('\x1F5B', '\x1F5B')+      , ('\x1F5D', '\x1F5D')+      , ('\x1F5F', '\x1F7D')+      , ('\x1F80', '\x1FB4')+      , ('\x1FB6', '\x1FBC')+      , ('\x1FBE', '\x1FBE')+      , ('\x1FC2', '\x1FC4')+      , ('\x1FC6', '\x1FCC')+      , ('\x1FD0', '\x1FD3')+      , ('\x1FD6', '\x1FDB')+      , ('\x1FE0', '\x1FEC')+      , ('\x1FF2', '\x1FF4')+      , ('\x1FF6', '\x1FFC')+      , ('\x2126', '\x2126')+      , ('\x212A', '\x212B')+      , ('\x212E', '\x212E')+      , ('\x2180', '\x2182')+      , ('\x3041', '\x3094')+      , ('\x30A1', '\x30FA')+      , ('\x3105', '\x312C')+      , ('\xAC00', '\xD7A3')+      ]++-- |+-- checking for XML ideographic charater++isXmlIdeographicChar	:: Unicode -> Bool+isXmlIdeographicChar c+    = isInList c+      [ ('\x3007', '\x3007')+      , ('\x3021', '\x3029')+      , ('\x4E00', '\x9FA5')+      ]++-- |+-- checking for XML combining charater++isXmlCombiningChar	:: Unicode -> Bool+isXmlCombiningChar c+    = isInList c+      [ ('\x0300', '\x0345')+      , ('\x0360', '\x0361')+      , ('\x0483', '\x0486')+      , ('\x0591', '\x05A1')+      , ('\x05A3', '\x05B9')+      , ('\x05BB', '\x05BD')+      , ('\x05BF', '\x05BF')+      , ('\x05C1', '\x05C2')+      , ('\x05C4', '\x05C4')+      , ('\x064B', '\x0652')+      , ('\x0670', '\x0670')+      , ('\x06D6', '\x06DC')+      , ('\x06DD', '\x06DF')+      , ('\x06E0', '\x06E4')+      , ('\x06E7', '\x06E8')+      , ('\x06EA', '\x06ED')+      , ('\x0901', '\x0903')+      , ('\x093C', '\x093C')+      , ('\x093E', '\x094C')+      , ('\x094D', '\x094D')+      , ('\x0951', '\x0954')+      , ('\x0962', '\x0963')+      , ('\x0981', '\x0983')+      , ('\x09BC', '\x09BC')+      , ('\x09BE', '\x09BE')+      , ('\x09BF', '\x09BF')+      , ('\x09C0', '\x09C4')+      , ('\x09C7', '\x09C8')+      , ('\x09CB', '\x09CD')+      , ('\x09D7', '\x09D7')+      , ('\x09E2', '\x09E3')+      , ('\x0A02', '\x0A02')+      , ('\x0A3C', '\x0A3C')+      , ('\x0A3E', '\x0A3E')+      , ('\x0A3F', '\x0A3F')+      , ('\x0A40', '\x0A42')+      , ('\x0A47', '\x0A48')+      , ('\x0A4B', '\x0A4D')+      , ('\x0A70', '\x0A71')+      , ('\x0A81', '\x0A83')+      , ('\x0ABC', '\x0ABC')+      , ('\x0ABE', '\x0AC5')+      , ('\x0AC7', '\x0AC9')+      , ('\x0ACB', '\x0ACD')+      , ('\x0B01', '\x0B03')+      , ('\x0B3C', '\x0B3C')+      , ('\x0B3E', '\x0B43')+      , ('\x0B47', '\x0B48')+      , ('\x0B4B', '\x0B4D')+      , ('\x0B56', '\x0B57')+      , ('\x0B82', '\x0B83')+      , ('\x0BBE', '\x0BC2')+      , ('\x0BC6', '\x0BC8')+      , ('\x0BCA', '\x0BCD')+      , ('\x0BD7', '\x0BD7')+      , ('\x0C01', '\x0C03')+      , ('\x0C3E', '\x0C44')+      , ('\x0C46', '\x0C48')+      , ('\x0C4A', '\x0C4D')+      , ('\x0C55', '\x0C56')+      , ('\x0C82', '\x0C83')+      , ('\x0CBE', '\x0CC4')+      , ('\x0CC6', '\x0CC8')+      , ('\x0CCA', '\x0CCD')+      , ('\x0CD5', '\x0CD6')+      , ('\x0D02', '\x0D03')+      , ('\x0D3E', '\x0D43')+      , ('\x0D46', '\x0D48')+      , ('\x0D4A', '\x0D4D')+      , ('\x0D57', '\x0D57')+      , ('\x0E31', '\x0E31')+      , ('\x0E34', '\x0E3A')+      , ('\x0E47', '\x0E4E')+      , ('\x0EB1', '\x0EB1')+      , ('\x0EB4', '\x0EB9')+      , ('\x0EBB', '\x0EBC')+      , ('\x0EC8', '\x0ECD')+      , ('\x0F18', '\x0F19')+      , ('\x0F35', '\x0F35')+      , ('\x0F37', '\x0F37')+      , ('\x0F39', '\x0F39')+      , ('\x0F3E', '\x0F3E')+      , ('\x0F3F', '\x0F3F')+      , ('\x0F71', '\x0F84')+      , ('\x0F86', '\x0F8B')+      , ('\x0F90', '\x0F95')+      , ('\x0F97', '\x0F97')+      , ('\x0F99', '\x0FAD')+      , ('\x0FB1', '\x0FB7')+      , ('\x0FB9', '\x0FB9')+      , ('\x20D0', '\x20DC')+      , ('\x20E1', '\x20E1')+      , ('\x302A', '\x302F')+      , ('\x3099', '\x3099')+      , ('\x309A', '\x309A')+      ]++-- |+-- checking for XML digit++isXmlDigit		:: Unicode -> Bool+isXmlDigit c+    = isInList c+      [ ('\x0030', '\x0039')+      , ('\x0660', '\x0669')+      , ('\x06F0', '\x06F9')+      , ('\x0966', '\x096F')+      , ('\x09E6', '\x09EF')+      , ('\x0A66', '\x0A6F')+      , ('\x0AE6', '\x0AEF')+      , ('\x0B66', '\x0B6F')+      , ('\x0BE7', '\x0BEF')+      , ('\x0C66', '\x0C6F')+      , ('\x0CE6', '\x0CEF')+      , ('\x0D66', '\x0D6F')+      , ('\x0E50', '\x0E59')+      , ('\x0ED0', '\x0ED9')+      , ('\x0F20', '\x0F29')+      ]++-- |+-- checking for XML extender++isXmlExtender		:: Unicode -> Bool+isXmlExtender c+    = isInList c+      [ ('\x00B7', '\x00B7')+      , ('\x02D0', '\x02D0')+      , ('\x02D1', '\x02D1')+      , ('\x0387', '\x0387')+      , ('\x0640', '\x0640')+      , ('\x0E46', '\x0E46')+      , ('\x0EC6', '\x0EC6')+      , ('\x3005', '\x3005')+      , ('\x3031', '\x3035')+      , ('\x309D', '\x309E')+      , ('\x30FC', '\x30FE')+      ]++-- |+-- checking for XML control or permanently discouraged char+--+-- see Errata to XML1.0 (http:\/\/www.w3.org\/XML\/xml-V10-2e-errata) No 46+--+-- Document authors are encouraged to avoid "compatibility characters",+-- as defined in section 6.8 of [Unicode] (see also D21 in section 3.6 of [Unicode3]).+-- The characters defined in the following ranges are also discouraged.+-- They are either control characters or permanently undefined Unicode characters:+++isXmlControlOrPermanentlyUndefined	:: Unicode -> Bool+isXmlControlOrPermanentlyUndefined c+    = isInList c+      [ ('\x7F', '\x84')+      , ('\x86', '\x9F')+      , ('\xFDD0', '\xFDDF')+      , ('\x1FFFE', '\x1FFFF')+      , ('\x2FFFE', '\x2FFFF')+      , ('\x3FFFE', '\x3FFFF')+      , ('\x4FFFE', '\x4FFFF')+      , ('\x5FFFE', '\x5FFFF')+      , ('\x6FFFE', '\x6FFFF')+      , ('\x7FFFE', '\x7FFFF')+      , ('\x8FFFE', '\x8FFFF')+      , ('\x9FFFE', '\x9FFFF')+      , ('\xAFFFE', '\xAFFFF')+      , ('\xBFFFE', '\xBFFFF')+      , ('\xCFFFE', '\xCFFFF')+      , ('\xDFFFE', '\xDFFFF')+      , ('\xEFFFE', '\xEFFFF')+      , ('\xFFFFE', '\xFFFFF')+      , ('\x10FFFE', '\x10FFFF')+      ]+ +-- ------------------------------------------------------------++isInList	:: Unicode -> [(Unicode, Unicode)] -> Bool+isInList i ((lb, ub) : l)+    | i <  lb	= False+    | i <= ub	= True+    | otherwise = isInList i l++isInList _ []+    = False++-- ------------------------------------------------------------++-- |+-- code conversion from latin1 to Unicode++latin1ToUnicode	:: String -> UString+latin1ToUnicode	= id+++-- |+-- UCS-2 big endian to Unicode conversion++ucs2BigEndianToUnicode	:: String -> UString++ucs2BigEndianToUnicode (b : l : r)+    = toEnum (fromEnum b * 256 + fromEnum l) : ucs2BigEndianToUnicode r++ucs2BigEndianToUnicode []+    = []++ucs2BigEndianToUnicode _+    = []				-- error "illegal UCS-2 byte input sequence with odd length"+					-- is ignored (garbage in, garbage out)++-- ------------------------------------------------------------++-- |+-- UCS-2 little endian to Unicode conversion++ucs2LittleEndianToUnicode	:: String -> UString++ucs2LittleEndianToUnicode (l : b : r)+    = toEnum (fromEnum b * 256 + fromEnum l) : ucs2LittleEndianToUnicode r++ucs2LittleEndianToUnicode []+    = []++ucs2LittleEndianToUnicode [_]+    = []				-- error "illegal UCS-2 byte input sequence with odd length"+					-- is ignored++-- ------------------------------------------------------------++-- |+-- UCS-2 to UTF-8 conversion with byte order mark analysis++ucs2ToUnicode		:: String -> UString++ucs2ToUnicode ('\xFE':'\xFF':s)		-- 2 byte mark for big endian encoding+    = ucs2BigEndianToUnicode s++ucs2ToUnicode ('\xFF':'\xFE':s)		-- 2 byte mark for little endian encoding+    = ucs2LittleEndianToUnicode s++ucs2ToUnicode s+    = ucs2BigEndianToUnicode s		-- default: big endian++-- ------------------------------------------------------------++-- |+-- UTF-8 to Unicode conversion with deletion of leading byte order mark, as described in XML standard F.1++utf8WithByteMarkToUnicode		:: UTF8String -> UString++utf8WithByteMarkToUnicode ('\xEF':'\xBB':'\xBF':s)	-- remove byte order mark ( XML standard F.1 )+    = utf8ToUnicode s++utf8WithByteMarkToUnicode s+    = utf8ToUnicode s++-- ------------------------------------------------------------++-- |+-- UTF-16 big endian to UTF-8 conversion with removal of byte order mark++utf16beToUnicode		:: String -> UString++utf16beToUnicode ('\xFE':'\xFF':s)		-- remove byte order mark+    = ucs2BigEndianToUnicode s++utf16beToUnicode s+    = ucs2BigEndianToUnicode s++-- ------------------------------------------------------------++-- |+-- UTF-16 little endian to UTF-8 conversion with removal of byte order mark++utf16leToUnicode		:: String -> UString++utf16leToUnicode ('\xFF':'\xFE':s)		-- remove byte order mark+    = ucs2LittleEndianToUnicode s++utf16leToUnicode s+    = ucs2LittleEndianToUnicode s+++-- ------------------------------------------------------------++-- |+-- substitute all Unicode characters, that are not legal 1-byte+-- UTF-8 XML characters by a character reference.+--+-- This function can be used to translate all text nodes and+-- attribute values into pure ascii.+--+-- see also : 'unicodeToLatin1'++unicodeToXmlEntity	:: UString -> String+unicodeToXmlEntity+    = concatMap toCharRef+      where+      toCharRef uc+	  | is1ByteXmlChar uc	= [uc]+	  | otherwise		= intToCharRef (fromEnum uc)++-- |+-- substitute all Unicode characters, that are not legal latin1+-- UTF-8 XML characters by a character reference.+--+-- This function can be used to translate all text nodes and+-- attribute values into ISO latin1.+--+-- see also : 'unicodeToXmlEntity'++unicodeToLatin1	:: UString -> String+unicodeToLatin1+    = concatMap toLatin1+      where+      toLatin1 uc+	  | isXmlLatin1Char uc	= [uc]+	  | otherwise		= intToCharRef (fromEnum uc)++-- |+-- removes all non ascii chars, may be used to transform+-- a document into a pure ascii representation by removing+-- all non ascii chars from tag and attibute names+--+-- see also : 'unicodeRemoveNoneLatin1', 'unicodeToXmlEntity'++unicodeRemoveNoneAscii	:: UString -> String+unicodeRemoveNoneAscii+    = concatMap removeNA+      where+      removeNA uc+	  | is1ByteXmlChar uc	= [uc]+	  | otherwise		= []++-- |+-- removes all non latin1 chars, may be used to transform+-- a document into a pure ascii representation by removing+-- all non ascii chars from tag and attibute names+--+-- see also : 'unicodeRemoveNoneAscii', 'unicodeToLatin1'++unicodeRemoveNoneLatin1	:: UString -> String+unicodeRemoveNoneLatin1+    = concatMap removeNL1+      where+      removeNL1 uc+	  | isXmlLatin1Char uc	= [uc]+	  | otherwise		= []++-- ------------------------------------------------------------++-- |+-- convert an Unicode into a XML character reference.+--+-- see also : 'intToCharRefHex'++intToCharRef		:: Int -> String+intToCharRef i+    = "&#" ++ show i ++ ";"++-- |+-- convert an Unicode into a XML hexadecimal character reference.+--+-- see also: 'intToCharRef'++intToCharRefHex		:: Int -> String+intToCharRefHex i+    = "&#x" ++ h2 ++ ";"+      where+      h1 = intToHexString i+      h2 = if length h1 `mod` 2 == 1+	   then '0': h1+	   else h1++-- ------------------------------------------------------------+--+-- | White Space (XML Standard 2.3) and +-- end of line handling (2.11)+--+-- \#x0D and \#x0D\#x0A are mapped to \#x0A++normalizeNL	:: String -> String+normalizeNL ('\r' : '\n' : rest)	= '\n' : normalizeNL rest+normalizeNL ('\r' : rest)		= '\n' : normalizeNL rest+normalizeNL (c : rest)			= c    : normalizeNL rest+normalizeNL []				= []+++-- ------------------------------------------------------------++-- |+-- the table of supported character encoding schemes and the associated+-- conversion functions into Unicode++encodingTable	:: [(String, (String -> UString))]+encodingTable+    = [ (utf8,		utf8WithByteMarkToUnicode)+      , (isoLatin1,	latin1ToUnicode		)+      , (usAscii,	latin1ToUnicode		)+      , (ucs2,		ucs2ToUnicode		)+      , (utf16,		ucs2ToUnicode		)+      , (utf16be,	utf16beToUnicode	)+      , (utf16le,	utf16leToUnicode	)+      , (unicodeString,	id			)+      , ("",		id			)	-- default+      ]++-- |+-- the lookup function for selecting the encoding function++getEncodingFct		:: String -> Maybe (UString -> String)+getEncodingFct enc+    = lookup (map toUpper enc) encodingTable++-- |+-- the table of supported output encoding schemes and the associated+-- conversion functions from Unicode++outputEncodingTable	:: [(String, (UString -> String))]+outputEncodingTable+    = [ (utf8,		unicodeToUtf8		)+      , (isoLatin1,	unicodeToLatin1		)+      , (usAscii,	unicodeToXmlEntity	)+      , (ucs2,		ucs2ToUnicode		)+      , ("",		unicodeToUtf8		)	-- default+      ]++-- |+-- the lookup function for selecting the encoding function++getOutputEncodingFct		:: String -> Maybe (String -> UString)+getOutputEncodingFct enc+    = lookup (map toUpper enc) outputEncodingTable++-- ------------------------------------------------------------+--++guessEncoding		:: String -> String++guessEncoding ('\xFF':'\xFE':'\x00':'\x00':_)	= "UCS-4LE"		-- with byte order mark+guessEncoding ('\xFF':'\xFE':_)			= "UTF-16LE"		-- with byte order mark++guessEncoding ('\xFE':'\xFF':'\x00':'\x00':_)	= "UCS-4-3421"		-- with byte order mark+guessEncoding ('\xFE':'\xFF':_)			= "UTF-16BE"		-- with byte order mark++guessEncoding ('\xEF':'\xBB':'\xBF':_)		= utf8			-- with byte order mark++guessEncoding ('\x00':'\x00':'\xFE':'\xFF':_)	= "UCS-4BE"		-- with byte order mark+guessEncoding ('\x00':'\x00':'\xFF':'\xFE':_)	= "UCS-4-2143"		-- with byte order mark++guessEncoding ('\x00':'\x00':'\x00':'\x3C':_)	= "UCS-4BE"		-- "<" of "<?xml"+guessEncoding ('\x3C':'\x00':'\x00':'\x00':_)	= "UCS-4LE"		-- "<" of "<?xml"+guessEncoding ('\x00':'\x00':'\x3C':'\x00':_)	= "UCS-4-2143"		-- "<" of "<?xml"+guessEncoding ('\x00':'\x3C':'\x00':'\x00':_)	= "UCS-4-3412"		-- "<" of "<?xml"++guessEncoding ('\x00':'\x3C':'\x00':'\x3F':_)	= "UTF-16BE"		-- "<?" of "<?xml"+guessEncoding ('\x3C':'\x00':'\x3F':'\x00':_)	= "UTF-16LE"		-- "<?" of "<?xml"++guessEncoding ('\x4C':'\x6F':'\xA7':'\x94':_)	= "EBCDIC"		-- "<?xm" of "<?xml"++guessEncoding _					= ""			-- no guess++-- ------------------------------------------------------------
+ src/Text/XML/HXT/DOM/Util.hs view
@@ -0,0 +1,243 @@+-- |+-- utility functions+--+-- Version : $Id: Util.hs,v 1.3 2006/05/01 18:56:24 hxml Exp $++module Text.XML.HXT.DOM.Util+    ( stringTrim+    , stringToUpper+    , normalizeNumber+    , normalizeWhitespace++    , escapeURI+    , textEscapeXml+    , stringEscapeXml+    , attrEscapeXml++    , stringToInt+    , stringToHexString+    , charToHexString+    , intToHexString+    , hexStringToInt+    , decimalStringToInt++    , doubles+    , singles+    , noDoubles+    )+where++import Data.Char++-- ------------------------------------------------------------+-- |+-- remove leading and trailing whitespace with standard Haskell predicate isSpace++stringTrim	:: String -> String+stringTrim+    = reverse . dropWhile isSpace . reverse . dropWhile isSpace++-- |+-- convert string to upercase with standard Haskell toUpper function++stringToUpper	:: String -> String+stringToUpper+    = map toUpper++-- | Removes leading \/ trailing whitespaces and leading zeros++normalizeNumber :: String -> String+normalizeNumber+    = reverse . dropWhile (== ' ') . reverse . +      dropWhile (\x -> x == '0' || x == ' ')+++-- | Reduce whitespace sequences to a single whitespace++normalizeWhitespace :: String -> String+normalizeWhitespace+    = unwords . words++-- ------------------------------------------------------------++-- | Escape all disallowed characters in URI +-- references (see <http://www.w3.org/TR/xlink/#link-locators>)++escapeURI :: String -> String+escapeURI ref+    = concatMap replace ref+      where+      notAllowed	:: Char -> Bool+      notAllowed c+	  = c < '\31'+	    ||+	    c `elem` ['\DEL', ' ', '<', '>', '\"', '{', '}', '|', '\\', '^', '`' ]++      replace :: Char -> String+      replace c+	  | notAllowed c+	      = '%' : charToHexString c+	  | otherwise+	      = [c]++-- ------------------------------------------------------------++escapeXml	:: String -> String -> String+escapeXml escSet+    = concatMap esc+      where+      esc c+	  | c `elem` escSet+	      = "&#" ++ show (fromEnum c) ++ ";"+	  | otherwise+	      = [c]++-- |+-- escape XML chars &lt;, &gt;, &quot;,  and ampercent by transforming them into character references+--+-- see also : 'attrEscapeXml'++stringEscapeXml	:: String -> String+stringEscapeXml	= escapeXml "<>\"\'&"++-- |+-- escape XML chars &lt;  and ampercent by transforming them into character references, used for escaping text nodes+--+-- see also : 'attrEscapeXml'++textEscapeXml	:: String -> String+textEscapeXml	= escapeXml "<&"++-- |+-- escape XML chars in attribute values, same as stringEscapeXml, but none blank whitespace+-- is also escaped+--+-- see also : 'stringEscapeXml'++attrEscapeXml	:: String -> String+attrEscapeXml	= escapeXml "<>\"\'&\n\r\t"++stringToInt	:: Int -> String -> Int+stringToInt base digits+    = sign * (foldl acc 0 $ concatMap digToInt digits1)+      where+      splitSign ('-' : ds) = ((-1), ds)+      splitSign ('+' : ds) = ( 1  , ds)+      splitSign ds         = ( 1  , ds)+      (sign, digits1)      = splitSign digits+      digToInt c+	  | c >= '0' && c <= '9'+	      = [ord c - ord '0']+	  | c >= 'A' && c <= 'Z'+	      =  [ord c - ord 'A' + 10]+	  | c >= 'a' && c <= 'z'+	      =  [ord c - ord 'a' + 10]+	  | otherwise+	      = []+      acc i1 i0+	  = i1 * base + i0+++-- |+-- convert a string of hexadecimal digits into an Int++hexStringToInt		:: String -> Int+hexStringToInt		= stringToInt 16++-- |+-- convert a string of digits into an Int++decimalStringToInt	:: String -> Int+decimalStringToInt	= stringToInt 10++-- |+-- convert a string into a hexadecimal string applying charToHexString+--+-- see also : 'charToHexString'++stringToHexString	:: String -> String+stringToHexString	= concatMap charToHexString++-- |+-- convert a char (byte) into a 2-digit hexadecimal string+--+-- see also : 'stringToHexString', 'intToHexString'++charToHexString		:: Char -> String+charToHexString c+    = [ fourBitsToChar (c' `div` 16)+      , fourBitsToChar (c' `mod` 16)+      ]+    where+    c' = fromEnum c++-- |+-- convert a none negative Int into a hexadecimal string+--+-- see also : 'charToHexString'++intToHexString		:: Int -> String+intToHexString i+    | i == 0+	= "0"+    | i > 0+	= intToStr i+    | otherwise+	= error ("intToHexString: negative argument " ++ show i)+    where+    intToStr 0	= ""+    intToStr i'	= intToStr (i' `div` 16) ++ [fourBitsToChar (i' `mod` 16)]++fourBitsToChar		:: Int -> Char+fourBitsToChar i	= "0123456789ABCDEF" !! i++-- ------------------------------------------------------------++-- |+-- take all elements of a list which occur more than once. The result does not contain doubles.+-- (doubles . doubles == doubles)++doubles	:: Eq a => [a] -> [a]+doubles+    = doubles' []+      where+      doubles' acc []+	  = acc+      doubles' acc (e : s)+	  | e `elem` s+	    &&+	    e `notElem` acc+	      = doubles' (e:acc) s+	  | otherwise+	      = doubles' acc s++-- |+-- drop all elements from a list which occur more than once.++singles	:: Eq a => [a] -> [a]+singles+    = singles' []+      where+      singles' acc []+	  = acc+      singles' acc (e : s)+	  | e `elem` s+	    ||+	    e `elem` acc+	      = singles' acc s+	  | otherwise+	      = singles' (e : acc) s++-- |+-- remove duplicates from list++noDoubles :: Eq a => [a] -> [a]+noDoubles []+    = []+noDoubles (e : s)+    | e `elem` s = noDoubles s+    | otherwise  = e : noDoubles s++-- ------------------------------------------------------------++
+ src/Text/XML/HXT/DOM/XmlKeywords.hs view
@@ -0,0 +1,326 @@+-- ------------------------------------------------------------++{- |+   Module     : Text.XML.HXT.DOM.XmlKeywords+   Copyright  : Copyright (C) 2005 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: XmlKeywords.hs,v 1.10 2006/11/02 09:34:09 hxml Exp $++   Constants for XML keywords, for special attribute names+   and special attribute values++-}++-- ------------------------------------------------------------++module Text.XML.HXT.DOM.XmlKeywords+where++-- ------------------------------------------------------------+--+-- string constants for representing DTD keywords and attributes++t_xml,				-- tag names+ t_root		:: String++a_canonicalize,+ a_default,			-- attribute names+ a_check_namespaces,+ a_contentLength,+ a_collect_errors,+ a_column,+ a_default_baseuri,+ a_do_not_canonicalize,+ a_do_not_check_namespaces,+ a_do_not_issue_errors,+ a_do_not_issue_warnings,+ a_do_not_preserve_comment,+ a_do_not_remove_whitespace,+ a_do_not_use_curl,+ a_do_not_validate,+ a_encoding,+ a_error,+ a_error_log,+ a_help,+ a_indent,+ a_issue_errors,+ a_issue_warnings,+ a_kind,+ a_line,+ a_module,+ a_modifier,+ a_name,+ a_no_xml_pi,+ a_options_curl,+ a_output_encoding,+ a_output_file,+ a_output_xml,+ a_output_html,+ a_parse_html,+ a_parse_xml,+ a_peref,+ a_preserve_comment,+ a_propagate_errors,+ a_proxy,+ a_remove_whitespace,+ a_show_haskell,+ a_show_tree,+ a_source,+ a_status,+ a_standalone,+ a_trace,+ a_type,+ a_use_curl,+ a_url,+ a_validate,+ a_value,+ a_verbose,+ a_version,+ a_xml,+ a_xmlns	:: String++v_0,				-- attribute values+ v_1,+ v_yes,+ v_no,+ v_any,+ v_children,+ v_choice,+ v_empty,+ v_mixed,+ v_seq,+ v_null,+ v_option,+ v_pcdata,+ v_star,+ v_plus		:: String++k_any,				-- DTD keywords+ k_cdata,+ k_empty,+ k_enitity,+ k_entities,+ k_id,+ k_idref,+ k_idrefs,+ k_include,+ k_ignore,+ k_nmtoken,+ k_nmtokens,+ k_peref,+ k_public,+ k_system,+ k_enumeration,+ k_fixed,+ k_implied,+ k_ndata,+ k_notation,+ k_pcdata,+ k_required,+ k_default	:: String++-- ------------------------------------------------------------++t_xml		= "xml"+t_root		= "/"		-- name of root node tag++a_canonicalize			= "canonicalize"+a_check_namespaces		= "check-namespaces"+a_collect_errors		= "collect-errors"+a_column			= "column"+a_contentLength			= "Content-Length"+a_default			= "default"+a_default_baseuri		= "default-base-URI"+a_do_not_canonicalize		= "do-not-canonicalize"+a_do_not_check_namespaces	= "do-not-check-namespaces"+a_do_not_issue_errors		= "do-not-issue-errors"+a_do_not_issue_warnings		= "do-not-issue-warnings"+a_do_not_preserve_comment	= "do-not-preserve-comment"+a_do_not_remove_whitespace	= "do-not-remove-whitespace"+a_do_not_use_curl		= "do-not-use-curl"+a_do_not_validate		= "do-not-validate"+a_encoding			= "encoding"+a_error				= "error"+a_error_log			= "errorLog"+a_help				= "help"+a_indent			= "indent"+a_issue_warnings		= "issue-warnings"+a_issue_errors			= "issue-errors"+a_kind				= "kind"+a_line				= "line"+a_module			= "module"+a_modifier			= "modifier"+a_name				= "name"+a_no_xml_pi                     = "no-xml-pi"+a_options_curl			= "options-curl"+a_output_file			= "output-file"+a_output_encoding		= "output-encoding"+a_output_html			= "output-html"+a_output_xml			= "output-xml"+a_parse_html			= "parse-html"+a_parse_xml			= "parse-xml"+a_peref				= k_peref+a_preserve_comment 		= "preserve-comment"+a_propagate_errors		= "propagate-errors"+a_proxy				= "proxy"+a_remove_whitespace 		= "remove-whitespace"+a_show_haskell			= "show-haskell"+a_show_tree			= "show-tree"+a_source			= "source"+a_standalone			= "standalone"+a_status			= "status"+a_trace				= "trace"+a_type				= "type"+a_url				= "url"+a_use_curl			= "use-curl"+a_validate			= "validate"+a_value				= "value"+a_verbose			= "verbose"+a_version			= "version"+a_xml				= "xml"+a_xmlns				= "xmlns"++v_yes		= "yes"+v_no		= "no"+v_1		= "1"+v_0		= "0"++v_any		= k_any+v_children	= "children"+v_choice	= "choice"+v_empty		= k_empty+v_pcdata	= k_pcdata+v_mixed		= "mixed"+v_seq		= "seq"++v_null		= ""+v_option	= "?"+v_star		= "*"+v_plus		= "+"++k_any		= "ANY"+k_cdata		= "CDATA"+k_empty		= "EMPTY"+k_enitity	= "ENTITY"+k_entities	= "ENTITIES"+k_id		= "ID"+k_idref		= "IDREF"+k_idrefs	= "IDREFS"+k_include	= "INCLUDE"+k_ignore	= "IGNORE"+k_nmtoken	= "NMTOKEN"+k_nmtokens	= "NMTOKENS"+k_peref		= "PERef"+k_public	= "PUBLIC"+k_system	= "SYSTEM"++k_enumeration	= "#ENUMERATION"+k_fixed		= "#FIXED"+k_implied	= "#IMPLIED"+k_ndata		= "NDATA"+k_notation	= "NOTATION"+k_pcdata	= "#PCDATA"+k_required	= "#REQUIRED"+k_default	= "#DEFAULT"+++-- ------------------------------------------------------------+--++-- attribute names for transfer protocol attributes+-- used in XmlInput for describing header information+-- of http and other requests++transferPrefix+ , transferProtocol+ , transferMimeType+ , transferEncoding+ , transferURI+ , transferDefaultURI+ , transferStatus+ , transferMessage+ , transferVersion :: String++transferPrefix		= "transfer-"++transferProtocol	= transferPrefix ++ "Protocol"+transferVersion		= transferPrefix ++ "Version"+transferMimeType	= transferPrefix ++ "MimeType"+transferEncoding	= transferPrefix ++ "Encoding"+transferDefaultURI	= transferPrefix ++ "DefaultURI"+transferStatus		= transferPrefix ++ "Status"+transferMessage		= transferPrefix ++ "Message"+transferURI		= transferPrefix ++ "URI"++-- ------------------------------------------------------------+--++httpPrefix	:: String+httpPrefix	= "http-"++stringProtocol	:: String+stringProtocol	= "string:"++-- ------------------------------------------------------------+--+-- encoding names++isoLatin1, usAscii, ucs2, utf8, utf16, utf16be, utf16le, unicodeString	:: String++isoLatin1	= "ISO-8859-1"+usAscii		= "US-ASCII"+ucs2		= "ISO-10646-UCS-2"+utf8		= "UTF-8"+utf16		= "UTF-16"+utf16be		= "UTF-16BE"+utf16le		= "UTF-16LE"+unicodeString	= "UNICODE"++-- ------------------------------------------------------------+--+-- known namespaces++-- |+-- the predefined namespace uri for xml: \"http:\/\/www.w3.org\/XML\/1998\/namespaces\"++xmlNamespace	:: String+xmlNamespace	= "http://www.w3.org/XML/1998/namespaces"++-- |+-- the predefined namespace uri for xmlns: \"http:\/\/www.w3.org\/2000\/xmlns\/\"++xmlnsNamespace	:: String+xmlnsNamespace	= "http://www.w3.org/2000/xmlns/"++-- | Relax NG namespace+relaxNamespace	:: String+relaxNamespace	= "http://relaxng.org/ns/structure/1.0"++-- ------------------------------------------------------------+-- option for Relax NG++a_relax_schema,+ a_do_not_check_restrictions,  + a_check_restrictions,+ a_do_not_validate_externalRef,+ a_validate_externalRef,+ a_do_not_validate_include,+ a_validate_include,+ a_output_changes, + a_do_not_collect_errors :: String ++a_relax_schema		      = "relax-schema"+a_do_not_check_restrictions   = "do-not-check-restrictions"+a_check_restrictions          = "check-restrictions"+a_do_not_validate_externalRef = "do-not-validate-externalRef"+a_validate_externalRef        = "validate-externalRef" +a_do_not_validate_include     = "do-not-validate-include"+a_validate_include            = "validate-include"+a_output_changes              = "output-pattern-transformations"+a_do_not_collect_errors       = "do-not-collect-errors"++-- ------------------------------------------------------------
+ src/Text/XML/HXT/DOM/XmlOptions.hs view
@@ -0,0 +1,165 @@+-- |+-- Common useful options+--+-- Version : $Id: XmlOptions.hs,v 1.1 2006/11/09 20:27:42 hxml Exp $+--+--++module Text.XML.HXT.DOM.XmlOptions+    ( inputOptions+    , relaxOptions+    , outputOptions+    , generalOptions+    , versionOptions+    , showOptions++    , selectOptions+    , removeOptions+    , optionIsSet+    )+where++import Text.XML.HXT.DOM.XmlKeywords+import Text.XML.HXT.DOM.TypeDefs++import Data.Maybe++import System.Console.GetOpt++-- ------------------------------------------------------------+--++-- |+-- commonly useful options for XML input+--+-- can be used for option definition with haskell getopt+--+-- defines options: 'a_trace', 'a_proxy', 'a_use_curl', 'a_do_not_use_curl', 'a_options_curl', 'a_encoding',+-- 'a_issue_errors', 'a_do_not_issue_errors', 'a_parse_html', 'a_issue_warnings', 'a_do_not_issue_warnings',+-- 'a_parse_xml', 'a_validate', 'a_do_not_validate', 'a_canonicalize', 'a_do_not_canonicalize',+--- 'a_preserve_comment', 'a_do_not_preserve_comment', 'a_check_namespaces', 'a_do_not_check_namespaces',+-- 'a_remove_whitespace', 'a_do_not_remove_whitespace'++inputOptions 	:: [OptDescr (String, String)]+inputOptions+    = [ Option "t"	[a_trace]			(OptArg trc "LEVEL")			"trace level (0-4), default 1"+      , Option "p"	[a_proxy]			(ReqArg (att a_proxy)         "PROXY")	"proxy for http access (e.g. \"www-cache:3128\")"+      , Option ""	[a_use_curl]			(NoArg  (att a_use_curl          v_1))	"HTTP access via external program \"curl\", more functionality, supports HTTP/1.0, less efficient"+      , Option ""	[a_do_not_use_curl]		(NoArg  (att a_use_curl          v_0))	"HTTP access via built in HTTP/1.1 module (default)"+      , Option ""	[a_options_curl]		(ReqArg (att a_options_curl)    "STR")	"additional curl options, e.g. for timeout, ..."+      , Option ""	[a_default_baseuri]		(ReqArg (att transferURI) 	"URI")	"default base URI, default: \"file:///<cwd>/\""+      , Option "e"	[a_encoding]			(ReqArg (att a_encoding)    "CHARSET")	( "default document encoding (" ++ utf8 ++ ", " ++ isoLatin1 ++ ", " ++ usAscii ++ ", ...)" )+      , Option ""	[a_issue_errors]		(NoArg	(att a_issue_errors      v_1))	"issue all errorr messages on stderr (default)"+      , Option ""	[a_do_not_issue_errors]		(NoArg	(att a_issue_errors      v_0))	"ignore all error messages"+      , Option "H"	[a_parse_html]			(NoArg	(att a_parse_html        v_1))	"parse input as HTML, try to interprete everything as HTML, no validation"+      , Option ""	[a_issue_warnings]		(NoArg	(att a_issue_warnings    v_1))	"issue warnings, when parsing HTML (default)"+      , Option "Q"	[a_do_not_issue_warnings]	(NoArg	(att a_issue_warnings    v_0))	"ignore warnings, when parsing HTML"+      , Option ""	[a_parse_xml]			(NoArg	(att a_parse_html        v_0))	"parse input as XML (default)"+      , Option ""	[a_validate]			(NoArg  (att a_validate          v_1))	"document validation when parsing XML (default)"+      , Option "w"	[a_do_not_validate]		(NoArg  (att a_validate          v_0))	"only wellformed check, no validation"+      , Option ""	[a_canonicalize]		(NoArg  (att a_canonicalize      v_1))	"canonicalize document, remove DTD, comment, transform CDATA, CharRef's, ... (default)"+      , Option "c"	[a_do_not_canonicalize]		(NoArg  (att a_canonicalize      v_0))	"do not canonicalize document, don't remove DTD, comment, don't transform CDATA, CharRef's, ..."+      , Option "C"	[a_preserve_comment]		(NoArg	(att a_preserve_comment  v_1))	"don't remove comments during canonicalisation"+      , Option ""	[a_do_not_preserve_comment]	(NoArg	(att a_preserve_comment  v_0))	"remove comments during canonicalisation (default)"+      , Option "n"	[a_check_namespaces]		(NoArg  (att a_check_namespaces  v_1))	"tag tree with namespace information and check namespaces"+      , Option ""	[a_do_not_check_namespaces]	(NoArg  (att a_check_namespaces  v_0))	"ignore namespaces (default)"+      , Option "r"	[a_remove_whitespace]		(NoArg  (att a_remove_whitespace v_1))	"remove redundant whitespace, simplifies tree and processing"+      , Option ""	[a_do_not_remove_whitespace]	(NoArg  (att a_remove_whitespace v_0))	"don't remove redundant whitespace (default)"+      ]+    where+    att n v	= (n, v)+    trc = att a_trace . show . max 0 . min 9 . (read :: String -> Int) . ('0':) . filter (`elem` "0123456789") . fromMaybe v_1+++-- | available Relax NG validation options+--+-- defines options+-- 'a_check_restrictions', 'a_validate_externalRef', 'a_validate_include', 'a_do_not_check_restrictions',  +-- 'a_do_not_validate_externalRef', 'a_do_not_validate_include'++relaxOptions :: [OptDescr (String, String)]+relaxOptions    +    = [ Option "X" [a_relax_schema]	        	(ReqArg (att a_relax_schema) "SCHEMA")	"validation with Relax NG, SCHEMA is the URI for the Relax NG schema"+      , Option ""  [a_check_restrictions]	        (NoArg (a_check_restrictions,    v_1))	"check Relax NG schema restrictions during schema simplification (default)"+      , Option ""  [a_do_not_check_restrictions]	(NoArg (a_check_restrictions,    v_0))	"do not check Relax NG schema restrictions"+      , Option ""  [a_validate_externalRef]		(NoArg (a_validate_externalRef,  v_1))	"validate a Relax NG schema referenced by a externalRef-Pattern (default)"+      , Option ""  [a_do_not_validate_externalRef]	(NoArg (a_validate_externalRef,  v_0))	"do not validate a Relax NG schema referenced by an externalRef-Pattern"+      , Option ""  [a_validate_include]			(NoArg (a_validate_include,      v_1))	"validate a Relax NG schema referenced by an include-Pattern (default)"+      , Option ""  [a_do_not_validate_include]		(NoArg (a_validate_include,      v_0))   "do not validate a Relax NG schema referenced by an include-Pattern"+	{-+      , Option ""  [a_output_changes]			(NoArg (a_output_changes,        v_1))	"output Pattern transformations in case of an error"    +      , Option ""  [a_do_not_collect_errors]     	(NoArg (a_do_not_collect_errors, v_1))	"stop Relax NG simplification after the first error has occurred"+	-}+      ]+    where+    att n v	= (n, v)++-- |+-- commonly useful options for XML output+--+-- defines options: 'a_indent', 'a_output_encoding', 'a_output_file', 'a_output_html'++outputOptions 	:: [OptDescr (String, String)]+outputOptions+    = [ Option "i"	[a_indent]		(NoArg  (att a_indent                v_1))	"indent XML output for readability"+      , Option "o"	[a_output_encoding]	(ReqArg (att a_output_encoding) "CHARSET")	( "encoding of output (" ++ utf8 ++ ", " ++ isoLatin1 ++ ", " ++ usAscii ++ ")" )+      , Option "f"	[a_output_file]		(ReqArg (att a_output_file)        "FILE")	"output file for resulting document (default: stdout)"+      , Option ""	[a_output_html]	        (NoArg  (att a_output_html           v_1))	"output of none ASCII chars as HTMl entity references"+      , Option ""       [a_no_xml_pi]	        (NoArg  (att a_no_xml_pi             v_1))      ("output without <?xml ...?> processing instruction, useful in combination with --" ++ show a_output_html)+      ]+    where+    att n v	= (n, v)++-- |+-- commonly useful options+--+-- defines options: 'a_verbose', 'a_help'++generalOptions 	:: [OptDescr (String, String)]+generalOptions+    = [ Option "v"	[a_verbose]		(NoArg  (a_verbose, v_1))		"verbose output"+      , Option "h?"	[a_help]		(NoArg  (a_help,    v_1))		"this message"+      ]++-- |+-- defines 'a_version' option++versionOptions 	:: [OptDescr (String, String)]+versionOptions+    = [ Option "V"	[a_version]		(NoArg  (a_version, v_1))		"show program version"+      ]++-- |+-- debug output options++showOptions	:: [OptDescr (String, String)]+showOptions+    = [ Option ""	[a_show_tree]		(NoArg  (a_show_tree,    v_1))		"output tree representation instead of document source"+      , Option ""	[a_show_haskell]	(NoArg  (a_show_haskell, v_1))		"output internal Haskell representation instead of document source"+      ]++-- ------------------------------------------------------------++-- |+-- select options from a predefined list of option desciptions++selectOptions	:: [String] -> [OptDescr (String, String)] -> [OptDescr (String, String)]+selectOptions ol os+    = concat . map (\ on -> filter (\ (Option _ ons _ _) -> on `elem` ons) os) $ ol++removeOptions	:: [String] -> [OptDescr (String, String)] -> [OptDescr (String, String)]+removeOptions ol os+    = filter (\ (Option _ ons _ _) -> not . any (`elem` ol) $ ons ) os++-- |+-- check whether an option is set+--+-- reads the value of an attribute, usually applied to a document root node,+-- and checks if the value represents True. The following strings are interpreted+-- as true: \"1\", \"True\", \"true\", \"yes\", \"Yes\".++optionIsSet	:: String -> Attributes -> Bool+optionIsSet n+    = (`elem` ["1", "True", "true", "Yes", "yes"]) . lookupDef "" n++-- ------------------------------------------------------------
+ src/Text/XML/HXT/DOM/XmlState.hs view
@@ -0,0 +1,689 @@+-- |+-- This module provides a Monad for an internal state and IO commands.+-- The state consists of two parts, the user state and the system state+-- user state ist a type parameter, the system state is a list+-- name-value pair. If the user state is not needed, the type parameter+-- can be instantiated with @()@.+--+-- Furthermore there are types for Xml filter working on this monad+-- and functions for manipulating the state components+-- and for lifting i\/o commands and XmlFilter to monad filters.+--+-- Error reporting functions are also located in this module.+--+-- Version : $Id: XmlState.hs,v 1.3 2005/05/27 13:15:23 hxml Exp $++module Text.XML.HXT.DOM.XmlState+    ( module Text.XML.HXT.DOM.XmlState+    )+where++import Text.XML.HXT.DOM.XmlTree++import qualified Control.Monad.MonadStateIO as MonadStateIO++import System.IO+import Data.Maybe++-- ------------------------------------------------------------++-- |+-- The internal system state consists of a list of name-value pairs+-- of type @(String, XmlTrees)@, so arbitrary lists of trees can be stored.+-- For options, often only strings are used as values, so a set of access+-- functions with string values is available+-- The error handling method can be controlled by an error handler filter,+-- the default filter issues the errors on stderr++data SysState			= SysState { sysStateAttrs		:: ! SysStateAttrs+					   , sysStateErrorHandler	:: ! (XmlStateFilter ())+					   }++type SysStateAttrs		= AssocList String XmlTrees++-- |+-- The State has a system and a user part+-- the user state is a type parameter++data XmlState state		= XmlState { sysState	:: ! SysState+					   , userState	:: ! state+					   }++-- |+-- The monad type for commands. It is an instance of "StateIO" from the+-- general module "Control.Monad.MonadStateIO".++type XState state res		= MonadStateIO.StateIO (XmlState state) res++-- |+-- The "XmlFilter" type for filters working on a state++type XmlStateFilter state	= XmlTree -> XState state XmlTrees++-- ------------------------------------------------------------+--+-- user defined state+-- access functions++-- |+-- change the user state+--+--    * 1.parameter fct :  the user state change function+--+--    - returns : the new state++changeState	:: (state -> state) -> XState state state+changeState f+    = do+      ns <- MonadStateIO.changeState f'+      return (userState ns)+      where+      f' s = s { userState = f (userState s) }++-- |+-- set the user state.+--+--    * 1.parameter s :  the new state+--+--    - returns : the new state++setState	:: state -> XState state state+setState s+    = changeState ( \_ -> s )++-- |+-- read the user state+--+--    - returns : the current state++getState	:: XState state state+getState+    = changeState id++-- ------------------------------------------------------------++-- |+-- change the system part of the state.+--+-- see also : 'changeState'++changeSysState	:: (SysState -> SysState) -> XState state SysState+changeSysState f+    = do+      ns <- MonadStateIO.changeState f'+      return (sysState ns)+      where+      f' s = s { sysState = f (sysState s) }++-- |+-- set the system part of the state.+--+-- see also : 'setState'++setSysState		:: SysState -> XState state SysState+setSysState s+    = changeSysState ( \_ -> s )++-- |+-- read the system part of the state.+--+-- see also : 'getState'++getSysState		:: XState state SysState+getSysState+    = changeSysState id++-- |+-- the initial system state+--+-- an empty list of attribute value pairs++initialSysState		:: SysState+initialSysState+    = SysState { sysStateAttrs        = []+	       , sysStateErrorHandler = errorMsgToStderr+	       }++-- |+-- change the attributes in the system state++changeSysStateAttrs		:: (SysStateAttrs -> SysStateAttrs) -> (SysState -> SysState)+changeSysStateAttrs cf sstate+    = sstate { sysStateAttrs = cf (sysStateAttrs sstate) }+++-- |+-- set the error message handler++setSysErrorHandler		:: XmlStateFilter () -> XState state ()+setSysErrorHandler ehf+    = do+      changeSysState (\ s -> s { sysStateErrorHandler = ehf })+      return ()++-- |+-- get the error handler++getSysErrorHandler		:: XState state (XmlStateFilter ())+getSysErrorHandler+    = do+      s <- getSysState+      return (sysStateErrorHandler s)++-- ------------------------------------------------------------++-- |+-- set or change a single system parameter.+--+--    * 1.parameter name :  the name of the parameter+--+--    - 2.parameter value :  the list of associated trees+--+--    - returns : nothing+--+-- see also : 'setSysParam', 'setSysParamInt'++setSysParamTree		:: String -> XmlTrees -> XState state ()+setSysParamTree name val+    = do+      changeSysState (changeSysStateAttrs (addEntry name val))+      return ()++-- |+-- set or change a single system parameter of type string.+--+--    * 1.parameter name :  the name of the parameter+--+--    - 2.parameter value :  the (new) string value+--+--    - returns : nothing+--+-- see also : 'setSysParamTree', setSysParamInt++setSysParam		:: String -> String -> XState state ()+setSysParam name val+    = setSysParamTree name (xtext val)++-- |+-- set or change a single integer type system parameter+--+-- see also : 'setSysParam'++setSysParamInt		:: String -> Int -> XState state ()+setSysParamInt name val	= setSysParam name (show val)++-- |+-- add (or change) all attributes of the document root to the system state+--     - returns : this++setSystemParams	:: XmlStateFilter state+setSystemParams t+    = do+      changeSysState (changeSysStateAttrs (addEntries (toTreel . getAttrl $ t)))+      thisM t++-- ------------------------------------------------------------++-- |+-- read a system parameter+--+--    * 1.parameter name :  the name of the parameter+--+--    - returns : the list of tres associated with the key, or the empty list for unknown parameters++getSysParamTree		:: String -> XState state XmlTrees+getSysParamTree name+    = do+      s <- getSysState+      return (lookup1 name (sysStateAttrs s))++-- |+-- read a system string parameter+--+--    * 1.parameter name :  the name of the parameter+--+--    - returns : the value, or the empty string for unknown parameters++getSysParam		:: String -> XState state String+getSysParam name+    = do+      ts <- getSysParamTree name+      return (xshow ts)++-- |+-- read a system parameter or return a default value+--+--    * 1.parameter name :  the name of the parameter+--+--    - 2.parameter default :  the default value+--+--    - returns : the value if found, else the default++getSysParamWithDefault	:: String -> String -> XState state String+getSysParamWithDefault name def+    = do+      val <- getSysParam name+      return ( if null val+	       then def+	       else val+	     )++-- |+-- read an integer system parameter+--+--    * 1.parameter name : +--+--    - 2.parameter default : +--+-- see also : 'getSysParamWithDefault'++getSysParamInt	:: String -> Int -> XState state Int+getSysParamInt var def+    = do+      val <- getSysParamWithDefault var (show def)+      return (read val)++-- ------------------------------------------------------------++-- |+-- exec a XState command with initial state.+--+--    * 1.parameter initalState :  the inital user state+--+--    - 2.parameter cmd :  the command+--+--    - returns : the i\/o command with result and user state++run0		:: XmlState state -> XState state res -> IO (res, XmlState state)+run0 initialState (MonadStateIO.STIO cmd)+    = do+      (res, finalState) <- cmd initialState+      return (res, finalState)++-- |+-- exec a XState command with initial user state.+-- ignore final user state.+-- like run0, but ignore the resulting user state++run		:: state -> XState state res -> IO res+run initialUserState cmd+    = do+      (res, _finalState) <- run0 (XmlState initialSysState initialUserState) cmd+      return res++-- |+-- exec a XState command in th IO monad.+-- like run with the empty state ().++run'		:: XState () res -> IO res+run'		= run ()++-- ------------------------------------------------------------++-- |+-- run a command in a new user state.+-- chain the system state part,+-- init new system state with the current one, run the command and+-- update the old system state with the resulting new system state+--+--    * 1.parameter initialUserState :  the initial user state+--+--    - 2.parameter cmd :  the command+--+--    - returns : the result of executing cmd and the final state++chain'		:: state1 -> XState state1 res -> XState state0 (res, state1)+chain' initialUserState1 cmd1+    = do+      sysState0 <- getSysState+      (res, finalState1) <- io $ run0 (XmlState sysState0 initialUserState1) cmd1+      setSysState (sysState finalState1)+      return (res, (userState finalState1))++-- |+-- like chain' but forget the final user state+--+--    * 1.parameter initialUserState :  the initial user state+--+--    - 2.parameter cmd :  the command+--+--    - returns : only the result of executing cmd++chain		:: state1 -> XState state1 res -> XState state0 res+chain initialUserState1 cmd1+    = do+      (res, _) <- chain' initialUserState1 cmd1+      return res++-- ------------------------------------------------------------+--+-- lift functions++-- |+-- lift a XmlFilter to a XmlStateFilter filter+-- issue all error nodes as error messages+-- and remove the error nodes from the result+--+--    * 1.parameter f :  the filter+--+--    - returns : the filter running in the state monad+--+--		  all errors are filtered from the result and issued on stderr++liftF		:: XmlFilter -> XmlStateFilter state+liftF f		= liftMf f .>> issueError++-- |+-- lift an I\/O command+--+--    * 1.parameter cmd :  the i\/o command+--+--    - returns : the i\/o command lifted to the XML state monad++io		:: IO a -> XState state a+io		= MonadStateIO.io++-- ------------------------------------------------------------+--++-- |+-- set the trace level.+--+-- convention:+--+-- 0: no trace output (default)+--+-- 1: trace important computation steps, e.g. accessing a document+--+-- 2: trace small computation steps+--+-- 3: output an intermediate result XmlTree in XML source format+--+-- 4: output an intermediate result XmlTree in tree representation+--+--    * 1.parameter level :  the trace level+--+--    - returns : nothing++setTraceLevel	:: Int -> XState state ()+setTraceLevel l	= setSysParamInt a_trace l++-- |+-- get the current trace level.+--+--    - returns : the current trace level++getTraceLevel	:: XState state Int+getTraceLevel	= getSysParamInt a_trace 0++-- |+-- trace output for arbitray commands.+--+--    * 1.parameter level :  the trace level,+--			  for which the command will be execuded+--			  if level \<= current trace level+--+--    - 2.parameter cmd :  the command to be executed+--+--    - returns : nothing++traceCmd	:: Int -> XState state a -> XState state ()+traceCmd level cmd+    = do+      trcLevel <- getTraceLevel+      if level <= trcLevel+        then do+	     _ <- cmd+	     return ()+        else return ()++-- |+-- trace output function for simple text.+--+--    * 1.parameter level :  like in traceCmd+--+--    - 2.parameter str :  the test+--+--    - returns : nothing++trace		:: Int -> String -> XState state ()+trace level str+    = traceCmd level+      $ do+	io $ hPutStrLn stderr ("-- (" ++ show level ++ ") " ++ str)++-- |+-- trace output of the user part of the program state.+--+--    * 1.parameter level :  like in traceCmd+--+--    - 2.parameter showFct :  the toString function+--+--    - returns : nothing++traceState	:: Int -> (state -> String) -> XState state ()+traceState level fct+    = traceCmd level+      $ do+	s <- getState+	io $ hPutStrLn stderr (fct s)++-- ------------------------------------------------------------+--+-- error functions++-- |+-- filter to reset the state attribute 'a_status'+--    - returns : this++clearStatus	:: XmlStateFilter state+clearStatus t+    = do+      setSysParamInt a_status c_ok+      thisM t++-- |+-- report an error message.+--+--    - returns : if the input tree n represents an error, @res = []@+--		  and the error is processed by the errror handler filter (default: error is issued on stderr)+--		  else @res = [n]@+--+-- see also : 'issueErr'++issueError	:: XmlStateFilter state+issueError+    = (setErrorMsgLevel .>> errorMsgHandler .>> noneM)+      `whenM`+      isXError++errorMsgHandler	:: XmlStateFilter state+errorMsgHandler+    = performAction+      ( \ t -> chain' () ( do+			   ehf <- getSysErrorHandler+			   ehf t+			   return ()+			 )+      )++-- |+-- set the error level in system state++setErrorMsgLevel	:: XmlStateFilter state+setErrorMsgLevel+    = performAction+      ( \ (NTree (XError level _str) _cs) ->+	do+	errLevel <- getSysParamInt a_status 0+	setSysParamInt a_status (max errLevel level)+      )++-- |+-- default error handler for writing errors to stderr++errorMsgToStderr	:: XmlStateFilter state+errorMsgToStderr+    = performAction+      ( \ (NTree (XError level str) _cs) ->+	io $ hPutStrLn stderr ("\n" ++ errClass level ++ ": " ++ str)+      )++-- |+-- error message handler for collecting all error messages+-- all messages are stored under attribute 'a_error_log'+-- they can be read with @getSysParamTree a_error_log@ or by+-- applying the filter 'getErrorMsg' to the root node++errorMsgLogging		:: XmlStateFilter state+errorMsgLogging+    = performAction+      ( \ t ->+	do+	errLog <- getSysParamTree a_error_log+	setSysParamTree a_error_log (t : errLog)+      )++errorMsgLoggingAndToStderr      :: XmlStateFilter state+errorMsgLoggingAndToStderr	= errorMsgLogging.>> errorMsgToStderr++-- |+-- the filter for reading all collected error mesages+--+-- result is the list of error messages, the input tree is ignored++getErrorMsg	:: XmlStateFilter state+getErrorMsg _t+    = do+      el <- getSysParamTree a_error_log+      setSysParamTree a_error_log []+      return (reverse el)++-- |+-- error level translation+-- 'c_warn' (1) : warning,+-- 'c_err' (2): error (e.g. parse error, validation error, ...),+-- 'c_fatal' (3) : fatal error (document access error, internal error, ...)++errClass	:: Int -> String+errClass l+    = fromMaybe "fatal error" . lookup l $ msgList+      where+      msgList	= [ (c_ok,	"no error")+		  , (c_warn,	"warning")+		  , (c_err,	"error")+		  , (c_fatal,	"fatal error")+		  ]++-- |+-- short cut for issuing a warning+--+-- see also : 'issueError', 'issueErr'++issueWarn	:: String -> XmlStateFilter state+issueWarn msg	= liftMf (warn msg) .>> issueError++-- |+-- short cut for issuing an error+--+-- see also : 'issueError'++issueErr	:: String -> XmlStateFilter state+issueErr msg	= liftMf (err msg) .>> issueError++-- |+-- short cut for issuing a fatal error+--+-- see also : 'issueError', 'issueErr'++issueFatal	:: String -> XmlStateFilter state+issueFatal msg	= liftMf (fatal msg) .>> issueError+++-- ------------------------------------------------------------+--+-- issue an error, add the error to the document root tree+-- and return the tree++addFatal	:: String -> XmlStateFilter state+addFatal msg+    = liftF ( fatal msg+	      ++++	      setStatus c_fatal "accessing documents"+	    )++-- ------------------------------------------------------------++-- |+-- checks the value of the attribute 'a_status' in a document root.+-- if it contains a value greater or equal to 'c_err', an error with error message+-- stored in attribute 'a_module' is issued and the filter acts as the 'noneM' filter+-- else its the 'thisM' filter++checkStatus	:: XmlStateFilter state+checkStatus t+    = if status >= c_err+      then do+	   errorMsgHandler (mkXErrorTree c_warn (errClass status ++ "s detected in " ++ msg) [])+	   noneM t+	else+           thisM t+    where+    status = intValueOf a_status t+    msg    =    valueOf a_module t++-- |+-- 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'++setStatus	:: Int -> String -> XmlFilter+setStatus level msg+    = ( addAttrInt a_status level+	.>+	addAttr a_module msg+	.>+	( if level >= c_err+	  then replaceChildren []+	  else this+	)+      )+      `when` isRoot++-- |+-- check whether tree is a document root and the status attribute has a value less than 'c_err'++statusOk	:: XmlFilter+statusOk+    = isRoot+      .>+      isOf (\ t -> not (intValueOf a_status t >= c_err))+-- |+-- 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 error info is added as attributes with 'setStatus'+-- else nothing is changed++checkResult	:: String -> XmlStateFilter state+checkResult msg t+    = do+      level <- getSysParamInt a_status 0+      ( if level <= c_warn+	then thisM+	else liftMf ( setStatus level msg )+        ) t++-- |+-- monadic filter for processing the attribute list of a tag.+-- for other trees this filter acts like 'noneM'+--+-- see also : 'processAttr', 'processAttrl'++processAttrM				:: XmlStateFilter a -> XmlStateFilter a+processAttrM f t+    = do+      res <- f $$< al+      return $ replaceAttrl res t+    where+    al = getAttrl t++-- ------------------------------------------------------------
+ src/Text/XML/HXT/DOM/XmlTree.hs view
@@ -0,0 +1,21 @@+-- |+-- This helper module exports elements from the basic libraries:+-- XmlTreeTypes, XmlKeywords, XNodeFunctions, XmlTreeFunctions and XmlTreeFilter+--+-- Version : $Id: XmlTree.hs,v 1.1 2004/09/02 19:11:58 hxml Exp $++module Text.XML.HXT.DOM.XmlTree+    ( module Text.XML.HXT.DOM.XmlTreeTypes+    , module Text.XML.HXT.DOM.XmlKeywords+    , module Text.XML.HXT.DOM.XmlTreeFunctions+    , module Text.XML.HXT.DOM.XmlTreeFilter+    )++where++import Text.XML.HXT.DOM.XmlTreeTypes		-- NTree and XNode types+import Text.XML.HXT.DOM.XmlKeywords		-- keywords for DTD+import Text.XML.HXT.DOM.XmlTreeFunctions	-- tree constructors and selector+import Text.XML.HXT.DOM.XmlTreeFilter		-- basic filter++
+ src/Text/XML/HXT/DOM/XmlTreeFilter.hs view
@@ -0,0 +1,955 @@+-- |+-- basic XmlTree filter+--+-- Version : $Id: XmlTreeFilter.hs,v 1.4 2006/11/12 14:53:00 hxml Exp $++module Text.XML.HXT.DOM.XmlTreeFilter+    ( module Text.XML.HXT.DOM.XmlTreeFilter+    )+where++import Text.XML.HXT.DOM.XmlTreeTypes+import Text.XML.HXT.DOM.XmlTreeFunctions+import Text.XML.HXT.DOM.XmlKeywords+import Text.XML.HXT.DOM.Unicode	( isXmlSpaceChar	)+import Text.XML.HXT.DOM.Util	( decimalStringToInt	)++import Data.List		( partition	)++infixl 7 += , ++=++-- -----------------------------------------------------------------------------+--+-- filter predicates++-- |+-- test whether the root of a tree contains a document root node.++isRoot			:: XmlFilter+isRoot			= isOfNode (isTagNode t_root)++-- |+-- test whether the root of a tree contains a tag node.+--+-- see also: 'isNsTag'++isTag			:: String -> XmlFilter+isTag tn		= isOfNode (isTagNode tn)++-- |+-- namespace aware test whether the root of a tree contains a tag node. Parameters are the local part and namespace.+-- Only usable after namespace propagation.+--+-- see also: 'isTag'++isNsTag			:: String -> String -> XmlFilter+isNsTag lp ns		= isOfTag (\ t -> localPart t == lp && namespaceUri t == ns)++-- |+-- test whether the root of a tree has a given local name+-- see also : 'hasNamespace', 'hasPrefix', 'isTag', 'isAttr'++hasLocalPart		:: String -> XmlFilter+hasLocalPart lp		= isOf ((== lp) . localPartOf)++-- |+-- test whether the root of a tree has a given prefix name+-- see also : 'hasNamespace', 'hasLocalPart', 'isTag', 'isAttr'++hasPrefix		:: String -> XmlFilter+hasPrefix px		= isOf ((== px) . prefixOf)++-- |+-- test whether the root of a tree belongs to a given namespace+-- see also : 'isTag', 'isAttr', 'hasLocalPart', 'hasPrefix'++hasNamespace		:: String -> XmlFilter+hasNamespace ns		= isOf ((== ns) . namespaceOf)++-- |+-- test whether the root of a tree contains a tag node with a special name.++isOfTag			:: (TagName -> Bool) -> XmlFilter+isOfTag			= isOfNode . isOfTagNode++-- |+-- test whether the node of a tree is a XTag node or a XPi node with an attibute of a specific name+--+-- see also: 'isAttr', 'hasNsAttr'++hasAttr			:: String -> XmlFilter+hasAttr an		= (getAttrl .> isAttr an) `guards` this++-- |+-- test whether the tree is a XTag node with an attibute of a specific local name and namespace uri+--+-- see also: 'hasAttr', 'isNsAttr'++hasNsAttr		:: String -> String -> XmlFilter+hasNsAttr an ns		= (getAttrl .> isNsAttr an ns) `guards` this++-- |+-- test whether the given node is a XTag node or a XPI node with an attribute with a value with a specific property.+-- In case of a match, the attribute value represented by a text node is returned as single element list,+-- else the empty list is the result.+--+-- see also : 'getValue'++hasValue		:: String -> (String -> Bool) -> XmlFilter+hasValue a p t+   | (not . null) att+     &&+     p val+       = xtext val+   | otherwise+       = []+   where+   att = getAttrl .> isAttr a $ t+   val = xshow . getChildren $$ att++-- |+-- test whether the tree is a processing instruction with a given name.++isPi			:: String -> XmlFilter+isPi pn			= isOfNode (isPiNode pn)++-- |+-- test whether the tree is a \<?xml ... ?\> declaration++isXmlPi			:: XmlFilter+isXmlPi			= isPi t_xml++-- |+-- test whether the root of a tree contains a processing instruction of a special name.++isOfPi			:: (TagName -> Bool) -> XmlFilter+isOfPi			= isOfNode . isOfPiNode++-- -----------------------------------------------------------------------------++-- simple XNode Filter predicates+--++-- |+-- test whether the root of a tree contains a CDATA node.++isXCdata		:: XmlFilter+isXCdata		= isOfNode isXCdataNode++-- |+-- test whether the root of a tree contains a character reference node.++isXCharRef		:: XmlFilter+isXCharRef		= isOfNode isXCharRefNode++-- |+-- test whether the root of a tree contains a comment node.++isXCmt			:: XmlFilter+isXCmt			= isOfNode isXCmtNode++-- |+-- test whether the root of a tree contains a DTD part.++isXDTD			:: XmlFilter+isXDTD			= isOfNode isXDTDNode++-- |+-- test whether the root of a tree contains an entity reference node.++isXEntityRef		:: XmlFilter+isXEntityRef		= isOfNode isXEntityRefNode++-- |+-- test whether the root of a tree contains an error node.++isXError		:: XmlFilter+isXError		= isOfNode isXErrorNode++-- |+-- test whether the root of a tree contains a processing instruction node.++isXPi			:: XmlFilter+isXPi			= isOfNode isXPiNode++-- |+-- test whether the root of a tree contains a tag node.++isXTag			:: XmlFilter+isXTag			= isOfNode isXTagNode++-- |+-- test whether the root of a tree contains an attribute node.++isXAttr			:: XmlFilter+isXAttr			= isOfNode isXAttrNode++-- |+-- test whether the root of a tree is an attribute node for a given attribute name++isAttr			:: String -> XmlFilter+isAttr an		= isOfNode (isAttrNode an)++-- |+-- namespace aware test whether the tree contains an attribute node. Parameters are the local part of the atribute name and the namespace.+-- Only usable after namespace propagation.+--+-- see also: 'isNsTag', 'isAttr', 'hasNsAttr'++isNsAttr		:: String -> String -> XmlFilter+isNsAttr lp ns		= isOfAttr (\ a -> localPart a == lp && namespaceUri a == ns)++-- |+-- general test for an attribute name++isOfAttr		:: (AttrName -> Bool) -> XmlFilter+isOfAttr		= isOfNode . isOfAttrNode++-- |+-- test whether the root of a tree contains a text node.++isXText			:: XmlFilter+isXText			= isOfNode isXTextNode++-- |+-- test whether the root of a tree contains a special text.++isText			:: String -> XmlFilter+isText t		= isOfNode (isTextNode t)++-- |+-- test whether the root of a tree contains a text node with a special property++isOfText		:: (String -> Bool) -> XmlFilter+isOfText		= isOfNode . isOfTextNode++-- |+-- test whether the root of a tree contains a text node only with whitespace.++isWhiteSpace		:: XmlFilter+isWhiteSpace+    = isOfNode isWS+      where+      isWS (XText s1) = all isXmlSpaceChar s1+      isWS _          = False++-- ------------------------------------------------------------+--+-- XDTD Predicates++-- |+-- test whether the root of a tree contains a DOCTYPE DTD part.++isDoctype			:: XmlFilter+isDoctype			= isOfNode (isDTDElemNode DOCTYPE)++-- |+-- test whether the root of a tree contains an ATTLIST DTD part.++isAttlist			:: XmlFilter+isAttlist			= isOfNode (isDTDElemNode ATTLIST)++-- |+-- test whether the root of a tree contains an ELEMENT DTD part.++isElement			:: XmlFilter+isElement			= isOfNode (isDTDElemNode ELEMENT)++-- |+-- test whether the root of a tree contains an ENTITY DTD part.++isEntity			:: XmlFilter+isEntity			= isOfNode (isDTDElemNode ENTITY)++-- |+-- test whether the root of a tree contains a parameter ENTITY reference.++isPeRef				:: XmlFilter+isPeRef				= isOfNode (isDTDElemNode PEREF)++-- |+-- test whether the root of a tree contains a DTD name part.++isDTDName			:: XmlFilter+isDTDName			= isOfNode (isDTDElemNode NAME)++-- |+-- test whether the root of a tree contains a conditional section DTD part.++isCondSect			:: XmlFilter+isCondSect			= isOfNode (isDTDElemNode CONDSECT)++-- |+-- test whether the root of a tree contains a parameter entity declaration.++isParameterEntity		:: XmlFilter+isParameterEntity		= isOfNode (isDTDElemNode PENTITY)++-- |+-- test whether the root of a tree contains a NOTATION DTD part.++isNotation			:: XmlFilter+isNotation			= isOfNode (isDTDElemNode NOTATION)++-- ATTLIST predicates++isDefaultAttrKind		:: XmlFilter+isDefaultAttrKind		= isOf (a_kind `ofDTDequals` k_default)++isEnumAttrType			:: XmlFilter+isEnumAttrType			= isOf (a_type `ofDTDequals` k_enumeration)++isFixedAttrKind			:: XmlFilter+isFixedAttrKind			= isOf (a_kind `ofDTDequals` k_fixed)++isIdAttrType			:: XmlFilter+isIdAttrType			= isOf (a_type `ofDTDequals` k_id)++isIdRefAttrType			:: XmlFilter+isIdRefAttrType			= isOf ((`elem` [k_idref, k_idrefs]) . valueOfDTD a_type)++isNotationAttrType		:: XmlFilter+isNotationAttrType		= isOf (a_type `ofDTDequals` k_notation)++isRequiredAttrKind		:: XmlFilter+isRequiredAttrKind		= isOf (a_kind `ofDTDequals` k_required)++isAttlistParameterEntity	:: XmlFilter+isAttlistParameterEntity	= isAttlist .> isOf (a_type `ofDTDequals` k_peref)++-- ELEMENT predicates++isEmptyElement			:: XmlFilter+isEmptyElement			= isOf (a_type `ofDTDequals` k_empty)++isMixedContentElement		:: XmlFilter+isMixedContentElement		= isOf (a_type `ofDTDequals` v_mixed)++isElemWithContent		:: XmlFilter+isElemWithContent		= isElement+				  .>+				  isOf ((`elem` [v_mixed, v_children]) . valueOfDTD a_type)++isAttlistOfElement		:: String -> XmlFilter+isAttlistOfElement el		= isAttlist+				  .>+				  isOf (a_name `ofDTDequals` el)++isElemContentParamEntity	:: XmlFilter+isElemContentParamEntity	= isElement+				  .>+				  isOf (a_type `ofDTDequals` k_peref)++-- ENTITY predicates++isUnparsedEntity		:: XmlFilter+isUnparsedEntity		= isOf (hasEntry k_ndata . attrlOfDTD)++isExternalParameterEntity	:: XmlFilter+isExternalParameterEntity	= isParameterEntity+				  .>+				  isOf (hasEntry k_system . attrlOfDTD)++isInternalParameterEntity	:: XmlFilter+isInternalParameterEntity	= isParameterEntity+				  .> isOf (not . hasEntry k_system . attrlOfDTD)++-- -----------------------------------------------------------------------------++-- |+-- test whether the root of a tree contains an error node for a warning.++isWarning 			:: XmlFilter+isWarning			= isOfNode $ isErrorNode c_warn++-- |+-- test whether the root of a tree contains an error node for an error.++isError 			:: XmlFilter+isError				= isOfNode $ isErrorNode c_err++-- |+-- test whether the root of a tree contains an error node for a fatal error.++isFatalError 			:: XmlFilter+isFatalError			= isOfNode $ isErrorNode c_fatal++-- -----------------------------------------------------------------------------+--+-- constructor filter++-- |+-- constructor filter for a tag node.+-- a new tree is constructed.+-- the attributes and the children are computed by applying the aproprate filter to the input tree+--+--    * 1.parameter n :  the tag name+--+--    - 2.parameter af :  the filter for the attribute list+--+--    - 3.parameter cf :  the filter for the children+--+--    - returns : the constructor filter++mkXTag		:: String -> XmlFilter -> XmlFilter -> XmlFilter+mkXTag n af cf+    = \ t -> [ mkXTagTree n (af t) (cf t) ]++-- | Version with qualified names of 'mkXTag'++mkQTag		:: QName -> XmlFilter -> XmlFilter -> XmlFilter+mkQTag q af cf+    = \ t -> [ mkQTagTree q (af t) (cf t) ]++-- |+-- constructor filter for a tag node.+-- a new tree is constructed.+-- the attributes and the children are computed by applying the aproprate filter to the input tree+--+--    * 1.parameter n :  the tag name in form of prefix:localpart+--+--    - 2.parameter ns:   the namespace uri+--+--    - 3.parameter af :  the filter for the attribute list+--+--    - 4.parameter cf :  the filter for the children+--+--    - returns : the constructor filter++mkXNsTag	:: String -> String -> XmlFilter -> XmlFilter -> XmlFilter+mkXNsTag n ns af cf+    = \ t -> [ mkXNsTagTree n ns (af t) (cf t) ]++-- |+-- filter for attribute construction.+-- a new tree with attribute name and a value computed by a filter+-- is build.++mkXAttr		:: String -> XmlFilter -> XmlFilter+mkXAttr n af+    = \ t -> [ mkXAttrTree n (af t) ]++-- | Qualified version 'mkXAttr'++mkQAttr		:: QName -> XmlFilter -> XmlFilter+mkQAttr q af+    = \ t -> [ mkQAttrTree q (af t) ]++-- |+-- filter for attribute construction.+-- a new tree with attribute name and namespace and a value computed by a filter+-- is build.++mkXNsAttr	:: String -> String -> XmlFilter -> XmlFilter+mkXNsAttr n ns af+    = \ t -> [ mkXNsAttrTree n ns (af t) ]++-- |+-- constructor filter for a text node.+-- a new tree is constructed.+-- the input tree is ignored.++mkXText		:: String                          -> XmlFilter+mkXText		= mkNTree . mkXTextTree++-- |+-- constructor filter for a character reference node.+-- a new tree is constructed.+-- the input tree is ignored.++mkXCharRef	:: Int                             -> XmlFilter+mkXCharRef	= mkNTree . mkXCharRefTree++-- |+-- constructor filter for an entity reference node.+-- a new tree is constructed.+-- the input tree is ignored.++mkXEntityRef	:: String                          -> XmlFilter+mkXEntityRef	= mkNTree . mkXEntityRefTree++-- |+-- constructor filter for a comment node.+-- a new tree is constructed.+-- the xml string representation of the filter result+-- forms the comment++mkXCmt		:: XmlFilter -> XmlFilter+mkXCmt cf+    = \ t -> [ mkXCmtTree ((xshow . cf) t) ]++-- |+-- constructor filter for a DTD part.+-- a new tree is constructed.+-- the input tree is ignored.++mkXDTD		:: DTDElem -> Attributes -> XmlTrees -> XmlFilter+mkXDTD n al	= mkNTree . mkXDTDTree n al++-- |+-- constructor filter for a CDATA section node.+-- a new tree is constructed.+-- the input tree is ignored.++mkXCdata	:: XmlFilter -> XmlFilter+mkXCdata cf+    = \ t -> [ mkXCdataTree ((xshow . cf) t) ]++-- |+-- constructor filter for a processing instruction+-- a new tree is constructed from the text representation+-- of the input tree++mkXPi		:: String -> XmlFilter -> XmlFilter+mkXPi piName cf+    = \ t -> [ mkXPiTree piName ((xshow . cf) t) ]++-- |+-- constructor filter for an error message node.+-- a new tree is constructed.+-- the input tree is ignored.++mkXError	:: Int -> String                   -> XmlFilter+mkXError l s	= this . mkXErrorTree l s . this++-- -----------------------------------------------------------------------------+--+-- selector filters++-- |+-- filter for selecting the name of a tag node, an attribute node or a pi node.+-- Result of the filter is a single element list with a text node or the empty list++getName	::             XmlFilter+getName t+    | null s    = []+    | otherwise = xtext s+    where+    s = nameOf t++-- |+-- filter for selecting the attibute list++getAttrl	:: XmlFilter+getAttrl+    = selAttrl . getNode+    where+    selAttrl (XTag _ al) = al+    selAttrl (XPi  _ al) = al+    selAttrl _           = []++-- |+-- filter for selecting the value of an attribute in a tag node.+-- Result of the filter is a single element list with a text node or the empty list+--+-- see also : 'hasValue', 'getNsValue'++getValue		:: String -> XmlFilter+getValue a		= xmlTreesToText . (getAttrl .> isAttr a .> getChildren)++-- |+-- filter for selecting the value of an attribute with namespace in a tag node.+-- Result of the filter is a single element list with a text node or the empty list+--+-- see also : 'getValue', 'isNsAttr'++getNsValue		:: String -> String -> XmlFilter+getNsValue lp ns	= xmlTreesToText . (getAttrl .> isNsAttr lp ns .> getChildren)++-- |+-- filter for selecting an attribute of a DTD node.+-- Result of the filter is a single element list with a text node or the empty list++getDTDValue		:: String -> XmlFilter+getDTDValue a		= xtext . valueOfDTD a++-- |+-- filter for selecting content of a comment.+-- Result of the filter is a single element list with a text node or the empty list++getXCmt			:: XmlFilter+getXCmt+    = selCmt . getNode+      where+      selCmt (XCmt c)	= xtext c+      selCmt _          = []++-- |+-- filter for selecting the CDATA content.+-- Result of the filter is a single element list with a text node or the empty list++getXCdata		:: XmlFilter+getXCdata+    = selData . getNode+      where+      selData (XCdata d)	= xtext d+      selData _			= []++-- -----------------------------------------------------------------------------+--+-- edit filter++-- |+-- edit filter for changing the name of a tag node, an attribute or a pi.+-- result of the filter is a single element list with a tag node or the empty list++replaceQName				:: String -> XmlFilter+replaceQName n				= modifyQName (const (mkName n))++-- |+-- edit filter for changing the text of a text node.+-- result of the filter is a single element list with a text node or the empty list+--+-- example for editing all text nodes of a tree with an edit function @f@:+--+-- @processBottomUp (modifyText f \`when\` isXText)@++modifyText				:: (String -> String) -> XmlFilter+modifyText f t@(NTree (XText str) _)	= replaceNode (XText (f str)) t+modifyText _ _				= []++-- |+-- edit filter for changing the name of a tag node.+-- result of the filter is a single element list with a text node or the empty list++modifyQName				::  (TagName -> TagName) -> XmlFilter+modifyQName f (NTree (XTag n al) cs)	= [NTree (XTag (f n) al) cs]+modifyQName f (NTree (XPi  n al) cs)	= [NTree (XPi  (f n) al) cs]+modifyQName f (NTree (XAttr n)   cs)	= [NTree (XAttr (f n)  ) cs]+modifyQName _ _			= []++-- -----------------------------------------------------------------------------++-- |+-- process the attribute list of a tag node with a tree list filter.+-- for other trees this filter acts like 'none'++processAttrl				:: XmlSFilter -> XmlFilter+processAttrl f t+    = replaceAttrl (f al) t+      where+      al = getAttrl t++-- |+-- elementwise processing of the attributes of a tag.+-- for other trees this filter acts like 'none'+--+-- see also : 'processAttrl'+processAttr				:: XmlFilter -> XmlFilter+processAttr f+    = processAttrl (f $$)++-- |+-- replace an attribute list+-- to be renamed when replaceAttrl is eliminated++replaceAttrl				:: XmlTrees -> XmlFilter+replaceAttrl al (NTree (XTag n _al) cs)	= [ NTree (XTag n al) cs ]+replaceAttrl al (NTree (XPi  n _al) cs)	= [ NTree (XPi  n al) cs ]+replaceAttrl _ _			= []++-- |+-- delete an attribute from the attribute list of a tag tree++del1Attr				:: String -> XmlFilter+del1Attr an				= processAttr (none `when` isAttr an)++-- |+-- add an attribute to the attribute list of a tag.+-- If the attribute already exists, it\'s substituted,+--+-- see also: 'sattr', '+='++add1Attr				:: XmlTree -> XmlFilter+add1Attr a@(NTree (XAttr an) _av) t+    = replaceAttrl (replace al) t+      where+      al = getAttrl t+      replace [] = [a]+      replace (a1 : as)+	  | satisfies (isAttr (aName an)) a1+	      = a : as+	  | otherwise+	      = a1 : replace as++add1Attr _ t+    = this t++-- |+-- adds an attribute list computed by a filter, uses 'add1Attr'.+--+-- see also: '+='++addAttrl				:: XmlFilter -> XmlFilter+addAttrl attrFilter t+    = ((foldl (.>) this . map add1Attr) al) t+      where+      al = attrFilter t++-- |+-- add or change an attribute with a given string as value for a XTag or XPi tree,+-- uses 'add1Attr'.++addAttr					:: String -> String -> XmlFilter+addAttr an av+    = add1Attr (mkXAttrTree an (if null av then [] else xtext av))++-- |+-- add or change an attribute with an Int value.+-- uses 'addAttr'.++addAttrInt				:: String -> Int -> XmlFilter+addAttrInt an av+    = addAttr an (show av)++-- |+-- edit filter for changing the value of an attribute in a tag node.+-- result of the filter is a single element list with the tag node or the empty list.+--+--    * 1.parameter n :  the name of the attribute+--+--    - 2.parameter f :  the edit function for the attribute value+--+--    - returns : the edit filter++modifyAttr				:: String -> (String -> String) -> XmlFilter+modifyAttr an f+    = processAttr (modifyValue `when` isAttr an)+      where+      modifyValue = modifyChildren ((modifyText f $$) . xmlTreesToText)++-- |+-- add or change an attribute of a DTD tree++addDTDAttr				:: String -> String -> XmlFilter+addDTDAttr an av (NTree (XDTD e al) cs)+    = [NTree (XDTD e (addEntry an av al)) cs]++addDTDAttr _ _ _+    = []+++-- -----------------------------------------------------------------------------+--++-- |+-- convenient function for tag node tree construction+--+-- infixl 7+--+-- filter combinator for tag tree constrcution+-- take a 1. filter for computing a tag node tree (or a whole list of tag node trees)+-- then add all trees computed by the 2. filter to the attribute list when they represent attributes+-- else append them to the list of children.+--+-- if the 1. filter computes a list of tag nodes, the results of the 2. filter are added to all trees+--+-- example: @ etag \"a\" += sattr \"href\" \"\#42\" += txt \"the answer\" @+-- gives the tree @ \<a href=\"\#42\"\>the answer\<\/a\> @+--+-- example: @ ( etag \"a\" +++ etag \"b\" ) += sattr \"x\" \"42\" @+-- gives the tree @ \<a x=\"42\"\/\>\<b x=\"42\"\/\> @+--+-- see also : 'etag', 'tag', 'add1Attr', 'modifyChildren', '++='++(+=)	:: XmlFilter -> XmlFilter -> XmlFilter+(+=) tf cf t+    = concat+      [ ( isXTag `guards` ( addaf .> addcf )) $ t'+	| t' <- tf t+      ]+    where+    (as, cs) = partition (satisfies isXAttr) . cf $ t++    addaf | null as   = this+          | otherwise = addAttrl (const as)++    addcf | null cs   = this+          | otherwise = modifyChildren (++ cs)++-- |+-- convenient filter function adding a whole list of trees, just for not writing to many ( ... ).+--+-- infixl 7+--+-- @ f ++= gl  == f += cat gl @+--+-- see also : '+='++(++=)	:: XmlFilter -> [XmlFilter] -> XmlFilter+tf ++= cfs+    = tf += cat cfs++-- -----------------------------------------------------------------------------+--+-- string access functions++-- |+-- combination of 'getValue' and conversion into a String++valueOf			:: String -> XmlTree -> String+valueOf a		= xshow . getValue a++-- |+-- combination of 'getValue' and conversion to a Int++intValueOf		:: String -> XmlTree -> Int+intValueOf a		= decimalStringToInt . valueOf a++-- -----------------------------------------------------------------------------+--+-- convenient filter (short cuts)++-- |+-- variant of mkXTag with a list of filters for the attributes and a list of filters for the children.+-- this variant leads to a more readable source for a complicated construction filter+-- than the simple solution with a combination of 'mkXTag' and 'cat'.+--+-- see also : 'mkXTag', 'stag', 'etag', 'cat', '+='++tag		:: String -> [XmlFilter] -> [XmlFilter] -> XmlFilter+tag n afs cfs	= mkXTag n (cat afs) (cat cfs)++-- |+-- variant of tag, useful for tags without attributes and with a list of filters for+-- constructing the children+--+-- see also : 'mkXTag', 'tag', 'etag', 'cat', '+='++stag		:: String -> [XmlFilter] -> XmlFilter+stag n cfs	= mkXTag n none (cat cfs)++-- |+-- variant of tag, useful for tags with attributes but without children+--+-- see also : 'mkXTag', 'tag', 'stag', 'etag', 'cat'++atag		:: String -> [XmlFilter] -> XmlFilter+atag n cfs	= mkXTag n (cat cfs) none++-- |+-- Short cut for empty tags without attributes+--+-- see also : 'tag', 'atag', 'stag', 'mkXTag' and '+='++etag		:: String -> XmlFilter+etag n		= mkXTag n none none++-- | Qualified version of etag++qetag		:: QName -> XmlFilter+qetag q		= mkQTag q none none++-- | Alias for mkQTag++qtag		:: QName -> XmlFilter -> XmlFilter -> XmlFilter+qtag = mkQTag+++-- |+-- filter for creating a document root node with a list of filters for the attributes and a list of filters for the document.+--+-- see also : 'tag'++rootTag		:: [XmlFilter] -> [XmlFilter] -> XmlFilter+rootTag afs cfs	= mkXTag t_root (cat afs) (cat cfs)++-- |+-- Alias for 'mkXAttr'++attr		:: String -> XmlFilter -> XmlFilter+attr		= mkXAttr++-- | Alias for mkQAttr+qattr		:: QName -> XmlFilter -> XmlFilter+qattr = mkQAttr++-- |+-- short cut for attribute construction with string constants+--+-- set also : 'attr', 'mkXAttr' and 'mkXText'++sattr		:: String -> String -> XmlFilter+sattr a v	= mkXAttr a (mkXText v)++-- |+-- short cut for 'mkXText'++txt		:: String  -> XmlFilter+txt		= mkXText++-- |+-- short cut for simple comment+-- the input tree is ignored+--+-- see also : 'mkXCmt'++cmt		:: String  -> XmlFilter+cmt c		= mkXCmt (txt c)++-- |+-- short cut for generating simple processing instructions (spi)+-- the input tree is ignored+--+-- @spi \"xyz\" \"abc\"@ is equal to @mkXPi \"xyz\" (txt \"abc\")@+-- (the name pi is already used in prelude)++spi		:: String -> String -> XmlFilter+spi n c		= mkXPi n (txt c)++-- |+-- short cut for generating simple cdata sections,+-- the input tree is ignored++cdata		:: String -> XmlFilter+cdata s		= mkXCdata (txt s)++-- |+-- DTD part generation with filter for attributes and children+-- see also: 'mkXDTDTree'++dtd		:: DTDElem -> [XmlFilter] -> [XmlFilter] -> XmlFilter+dtd dtdpart afs cfs t+    = mkXDTD dtdpart (toAttrl . cat afs $ t) (cat cfs t) $ t++-- |+-- short cut for mkXError c_warn.+--+-- see also : 'mkXError'++warn		:: String -> XmlFilter+warn		= mkXError c_warn++-- |+-- short cut for mkXError c_fatal.+--+-- see also : 'mkXError'++err		:: String -> XmlFilter+err		= mkXError c_err++-- |+-- short cut for mkXError c_fatal.+--+-- see also : 'mkXError'++fatal		::  String -> XmlFilter+fatal		= mkXError c_fatal++-- |+-- check whether an option is set+--+-- reads the value of an attribute, usually applied to a document root node,+-- and checks if the value represents True. The following strings are interpreted+-- as true: \"1\", \"True\", \"true\", \"yes\", \"Yes\".++hasOption	:: String -> XmlFilter+hasOption opt+    = getValue opt .> isOfText isSet+      where+      isSet x+	  = x `elem` ["1", "True", "true", "yes", "Yes"]+++-- -----------------------------------------------------------------------------+
+ src/Text/XML/HXT/DOM/XmlTreeFunctions.hs view
@@ -0,0 +1,901 @@+-- |+-- basic XmlTree functions+--+-- Version : $Id: XmlTreeFunctions.hs,v 1.4 2006/11/12 14:53:00 hxml Exp $++module Text.XML.HXT.DOM.XmlTreeFunctions+    ( module Text.XML.HXT.DOM.XmlTreeFunctions+    )+where++import Text.XML.HXT.DOM.XmlTreeTypes+import Text.XML.HXT.DOM.XmlKeywords++import Data.Maybe++-- -----------------------------------------------------------------------------+--+-- XNode Predicates+--++isXCdataNode			:: XNode -> Bool+isXCdataNode (XCdata _)		= True+isXCdataNode _			= False++isXCharRefNode			:: XNode -> Bool+isXCharRefNode (XCharRef _)	= True+isXCharRefNode _		= False++isXCmtNode			:: XNode -> Bool+isXCmtNode (XCmt _)		= True+isXCmtNode _			= False++isXDTDNode			:: XNode -> Bool+isXDTDNode (XDTD _ _)		= True+isXDTDNode _			= False++isXAttrNode			:: XNode -> Bool+isXAttrNode (XAttr _)		= True+isXAttrNode _			= False++isXEntityRefNode		:: XNode -> Bool+isXEntityRefNode (XEntityRef _)	= True+isXEntityRefNode _		= False++isXErrorNode			:: XNode -> Bool+isXErrorNode (XError _ _)	= True+isXErrorNode _			= False++isXPiNode			:: XNode -> Bool+isXPiNode (XPi _ _)		= True+isXPiNode _			= False++isXTagNode			:: XNode -> Bool+isXTagNode  (XTag _ _)		= True+isXTagNode _			= False++isXTextNode			:: XNode -> Bool+isXTextNode (XText _)		= True+isXTextNode _			= False++-- -----------------------------------------------------------------------------++isRootNode			:: XNode -> Bool+isRootNode			= isTagNode t_root++isTagNode			:: String -> XNode -> Bool+isTagNode n			= isOfTagNode ((== n) . tName)++isOfTagNode			:: (TagName -> Bool) -> XNode -> Bool+isOfTagNode p (XTag n _)	= p n+isOfTagNode _ _			= False++isAttrNode			:: String -> XNode -> Bool+isAttrNode n			= isOfAttrNode ((== n) . aName)++isOfAttrNode			:: (AttrName -> Bool) -> XNode -> Bool+isOfAttrNode p (XAttr n)	= p n+isOfAttrNode _ _		= False++isTextNode			:: String -> XNode -> Bool+isTextNode t			= isOfTextNode (== t)++isOfTextNode			:: (String -> Bool) -> XNode -> Bool+isOfTextNode p (XText t)	= p t+isOfTextNode _ _		= False++isPiNode			:: String -> XNode -> Bool+isPiNode n			= isOfPiNode ((== n) . tName)++isOfPiNode			:: (TagName -> Bool) -> XNode -> Bool+isOfPiNode p (XPi n _)		= p n+isOfPiNode _ _			= False++isDTDElemNode 			:: DTDElem -> XNode -> Bool+isDTDElemNode e	(XDTD n _)	= n == e+isDTDElemNode _ _		= False++isErrorNode 			:: Int -> XNode -> Bool+isErrorNode l (XError l'  _)+    | l == l'    = True+    | otherwise  = False+isErrorNode _ _  = False++-- -----------------------------------------------------------------------------+--+-- XmlTree constructors++-- |+-- Create a tree with a tag node.+--+--    * 1.parameter n :  the name of the tag+--+--    - 2.parameter al :  the tag attribte list+--+--    - 3.parameter cs :  the list of children+--+--    - returns : the new tree++mkXTagTree		:: String -> XmlTrees -> XmlTrees -> XmlTree+mkXTagTree n al cs	= mkNode (XTag (mkName n) al) cs++-- | Version with qualified name of 'mkXTagTree'++mkQTagTree		:: QName -> XmlTrees -> XmlTrees -> XmlTree+mkQTagTree q al cs	= mkNode (XTag q al) cs++-- |+-- create a tree with a namespace aware tag node.+--+--    * 1.parameter n :  the prefix:localpart of the tag+--+--    - 2.parameter ns:  the namespace uri+--+--    - 3.parameter al :  the tag attribte list+--+--    - 4.parameter cs :  the list of children+--+--    - returns : the new tree+--+-- see also: 'mkXTagTree'++mkXNsTagTree		:: String -> String -> XmlTrees -> XmlTrees -> XmlTree+mkXNsTagTree n ns al cs	= mkNode (XTag (mkNsName n ns) al) cs++-- |+-- creates a new document tree with empty contents.+--+--   * 1.parameter al : the attribute list for the root node+--+-- returns a single node tree with tag name \"\/\" indicating a root and+-- with empty list of children+--+-- see also : 'emptyRoot'++newRoot			:: XmlTrees -> XmlTree+newRoot al		= mkXTagTree t_root al []++-- | the empty document tree+--+-- see also : 'newRoot'++emptyRoot		:: XmlTree+emptyRoot		= newRoot []++-- |+-- create a new empty document with source name as parameter++newDocument		:: String -> XmlTree+newDocument n+    = newDocument' [(a_source, n), (a_status, show c_ok)]++-- |+-- create a new empty document with a list of attributes for source location and options+--+-- see also : 'newDocument'++newDocument'		:: Attributes -> XmlTree+newDocument' al+    = newRoot (fromAttrl al)++-- |+-- create a document root tree.+--+--    * 1.parameter al :  the attribute list for the root. This list must contain at+--		  least an attribute \"source\" that contains the URI of the document to be processed+--+--    - 2.parameter cs :  the list for the document content+--+--    - returns : the document root++mkRootTree		:: XmlTrees -> XmlTrees -> XmlTree+mkRootTree al cs	= mkXTagTree t_root al cs++-- |+-- create a leaf for a text element.+--+--    * 1.parameter txt :  the text+--+--    - returns : the tree with the single node containing the text++mkXTextTree		:: String -> XmlTree+mkXTextTree s		= mkLeaf (XText s)++-- |+-- create a leaf for a char reference.+--+--    * 1.parameter i :  the integer representing the Unicode char+--+--    - returns : the tree with the single node containing the char reference++mkXCharRefTree		:: Int -> XmlTree+mkXCharRefTree s	= mkLeaf (XCharRef s)++-- |+-- create a leaf for an entity reference.+--+--    * 1.parameter n :  the name of the entity reference+--+--    - returns : the tree with the single node containing the entity reference++mkXEntityRefTree	:: String -> XmlTree+mkXEntityRefTree s	= mkLeaf (XEntityRef s)++-- |+-- create a leaf for a comment,+--+--    * 1.parameter c :  the comment text+--+--    - returns : the tree with the single node containing the comment++mkXCmtTree		:: String -> XmlTree+mkXCmtTree c		= mkLeaf (XCmt c)++-- |+-- create a tree for a part of a DTD+--+--    * 1.parameter d :  the type of the DTD part+--+--    - 2.parameter al :  the attribute list for the DTD part+--+--    - 3.parameter ds :  the possibly empty list of components for the DTD part+--+--    - returns : the tree with the composed DTD part++mkXDTDTree		:: DTDElem -> Attributes -> XmlTrees -> XmlTree+mkXDTDTree d al	ds	= mkNode (XDTD d al) ds+++-- |+-- create an attribute tree as part of a tag attribute list of tag nodes+--+--    * 1.parameter al : the attribute name+--+--    - 2.parameter av : the attribute value as tree list, usually containing a single text node++mkXAttrTree		:: String -> XmlTrees -> XmlTree+mkXAttrTree an av	= mkNode (XAttr (mkName an)) av++-- | Qualified version of 'mkXAttrTree'++mkQAttrTree		:: QName -> XmlTrees -> XmlTree+mkQAttrTree aq av	= mkNode (XAttr aq) av+++-- |+-- create an attribute tree with a namespace+--+--    * 1.parameter al : the attribute name+--+--    - 2.parameter ns : namespace uri+--+--    - 3.parameter av : the attribute value as tree list, usually containing a single text node+--+-- see also: 'mkXAttrTree', 'mkXNsTagTree'++mkXNsAttrTree		:: String -> String -> XmlTrees -> XmlTree+mkXNsAttrTree an ns av	= mkNode (XAttr (mkNsName an ns)) av++-- |+-- create a parameter entity reference DTD part.+--+--    * 1.parameter ref :  the name of the reference+--+--    - returns : the DTD part for a PERef++mkXPERefTree		:: String -> XmlTree+mkXPERefTree ref	= mkLeaf (XDTD PEREF [(a_peref, ref)])++-- |+-- create a processing instruction tree.+--+--    * 1.parameter n :  the name of the PI+--+--    - 2.parameter str :  the content of a PI+--+--    - returns : the processing instruction tree with a single attribute \"value\"+--      with the str parameter as attribute value, with @valueOf a_value@ applied to the result tree+--      the content of the PI can be selected++mkXPiTree	:: String -> String -> XmlTree+mkXPiTree n str	= mkLeaf (XPi (mkName n) (xattr a_value str))++-- |+-- create xml declaration++mkXmlDeclTree	:: XmlTrees -> XmlTree+mkXmlDeclTree al = mkLeaf (XPi (mkName t_xml) al)++-- |+-- create a CDATA section tree.+--+--    * 1.parameter s :  the content of the CDATA section+--+--    - returns : the tree for the CDATA section++mkXCdataTree		:: String -> XmlTree+mkXCdataTree s		= mkLeaf (XCdata s)++-- |+-- create an error tree.+--+--    * 1.parameter l :  the level of the error (warning, error fatal)+--+--    - 2.parameter msg :  the error message+--+--    - 3.parameter cs :  the context, where the error was detected++mkXErrorTree		:: Int -> String -> XmlTrees -> XmlTree+mkXErrorTree l s cs	= mkNode (XError l s) cs++maybeString2XText	:: Maybe String -> XmlTrees+maybeString2XText	= map mkXTextTree . maybeToList++-- ------------------------------------------------------------+--+-- text selection++showXText	:: XmlTrees -> String+showXText+    = concatMap showT+      where+      showT (NTree (XText      t) _) = t+      showT _                        = ""++showXCharRef	:: XmlTrees -> String+showXCharRef+    = concatMap showT+      where+      showT (NTree (XCharRef   r) _) = "&#" ++ show r ++ ";"+      showT _                        = ""++showXEntityRef	:: XmlTrees -> String+showXEntityRef+    = concatMap showT+      where+      showT (NTree (XEntityRef r) _) = "&" ++ r ++ ";"+      showT _                        = ""++showXErrors	:: XmlTrees -> String+showXErrors+    = concatMap showE+      where+      showE (NTree (XError level str) _) = msg level ++ ": " ++ str ++ "\n"+      showE _                            = ""++      msg :: Int -> String+      msg l+          | l == c_warn = "Warning"+          | l == c_err  = "Error"+          | otherwise   = "Fatal error"++-- ------------------------------------------------------------+--+-- the toString conversion functions++-- |+-- convert the result of a filter into a string+--+-- see also : 'xmlTreesToText' for filter version, 'Text.XML.HXT.Parser.XmlParsec.xread' for the inverse operation ++xshow	:: XmlTrees -> String+xshow [(NTree (XText s) _)]	= s			-- special case optimisation+xshow ts			= showXmlTrees ts ""++-- |+-- old name for 'xshow' (deprecated)++xmlTreesToString	:: XmlTrees -> String+xmlTreesToString	= xshow++-- |+-- conversion of a filter result into a text node+--+-- see also : 'xshow'++xmlTreesToText		:: XmlSFilter+xmlTreesToText ts@[(NTree (XText _) _)]	= ts		-- special case optimisation+xmlTreesToText ts@[]			= ts+xmlTreesToText ts			= xtext . xshow $ ts++-- ------------------------------------------------------------++xmlContentModelToString	:: XmlTree -> String+xmlContentModelToString (NTree (XDTD ELEMENT al) cs)+    = showElemType (lookup1 a_type al) cs ""++xmlContentModelToString _+    = ""++-- ------------------------------------------------------------++showXmlTree		:: XmlTree  -> String -> String++showXmlTree (NTree (XText s) _)+    = showString s++showXmlTree (NTree (XCharRef i) _)+    = showString "&#" . showString (show i) . showChar ';'++showXmlTree (NTree (XEntityRef r) _)+    = showString "&" . showString r . showChar ';'++showXmlTree (NTree (XCmt c) _)+    = showString "<!--" . showString c . showString "-->"++showXmlTree (NTree (XCdata d) _)+    = showString "<![CDATA[" . showString d . showString "]]>"++showXmlTree (NTree (XPi n al) _)+    = showString "<?"+      .+      showQName n+      .+      (foldr (.) id . map showPiAttr) al+      .+      showString "?>"+      where+      showPiAttr	:: XmlTree -> String -> String+      showPiAttr a@(NTree (XAttr an) cs)+	  | aName an == a_value+	      = showBlank . showXmlTrees cs+	  | otherwise+	      = showXmlTree a+      showPiAttr _+	  = id++showXmlTree (NTree (XTag t al) [])+    = showLt . showQName t . showXmlTrees al . showSlash . showGt++showXmlTree (NTree (XTag t al) cs)+    = showLt . showQName t . showXmlTrees al . showGt+      . showXmlTrees cs+      . showLt . showSlash . showQName t . showGt++showXmlTree (NTree (XDTD de al) cs)+    = showXmlDTD de al cs++showXmlTree (NTree (XAttr an) cs)+    = showBlank . showQName an . showEq . showQuoteString (xshow cs)++showXmlTree (NTree (XError l e) _)+    = showString "<!-- ERROR (" . showString (show l) . showString "):\n" . showString e . showString "\n-->"++-- ------------------------------------------------------------++showXmlTrees		:: XmlTrees -> String -> String+showXmlTrees		= foldr (.) id . map showXmlTree++showXmlTrees'		:: XmlTrees -> String -> String+showXmlTrees'		= foldr (\ x y -> x . showNL . y) id . map showXmlTree++-- ------------------------------------------------------------++showQName		:: QName -> String -> String+showQName+    = showString . qualifiedName++-- ------------------------------------------------------------++showQuoteString		:: String -> String -> String+showQuoteString s+    | '\"' `elem` s+	= showApos . showString s . showApos+    | otherwise+	= showQuot . showString s . showQuot+++-- ------------------------------------------------------------++showAttr	:: String -> Attributes -> String -> String+showAttr k al+    = showString (fromMaybe "" . lookup k $ al)++-- ------------------------------------------------------------++showPEAttr	:: Attributes -> String -> String+showPEAttr al+    = showPE (lookup a_peref al)+      where+      showPE (Just pe) = showChar '%' . showString pe . showChar ';'+      showPE Nothing   = id++-- ------------------------------------------------------------++showExternalId	:: Attributes -> String -> String+showExternalId al+    = id2Str (lookup k_system al) (lookup k_public al)+      where+      id2Str Nothing  Nothing  = id+      id2Str (Just s) Nothing  = showBlank . showString k_system . showBlank . showQuoteString s+      id2Str Nothing  (Just p) = showBlank . showString k_public . showBlank . showQuoteString p+      id2Str (Just s) (Just p) = showBlank . showString k_public . showBlank . showQuoteString p . showBlank . showQuoteString s++-- ------------------------------------------------------------++showNData	:: Attributes -> String -> String+showNData al+    = nd2Str (lookup k_ndata al)+      where+      nd2Str Nothing	= id+      nd2Str (Just v)	= showBlank . showString k_ndata . showBlank . showString v++-- ------------------------------------------------------------++showXmlDTD		:: DTDElem -> Attributes -> XmlTrees -> String -> String++showXmlDTD DOCTYPE al cs+    = showString "<!DOCTYPE "+      .+      showAttr a_name al+      .+      showExternalId al+      .+      showInternalDTD cs+      .+      showString ">"+      where+      showInternalDTD [] = id+      showInternalDTD ds = showString " [\n" . showXmlTrees' ds . showChar ']'++showXmlDTD ELEMENT al cs+    = showString "<!ELEMENT "+      .+      showAttr a_name al+      .+      showBlank+      .+      showElemType (lookup1 a_type al) cs+      .+      showString " >"++showXmlDTD ATTLIST al cs+    = showString "<!ATTLIST "+      .+      ( if isNothing . lookup a_name $ al+	then+	showXmlTrees cs+	else+	showAttr a_name al+	.+	showBlank+	.+	( case lookup a_value al of+	  Nothing -> ( showPEAttr+		       . attrlOfDTD+		       . head+		     ) cs+	  Just a  -> ( showString a+	               .+                       showAttrType (lookup1 a_type al)+                       .+                       showAttrKind (lookup1 a_kind al)+		     )+	)+      )+      .+      showString " >"+      where+      showAttrType t+	  | t == k_peref+	      = showBlank . showPEAttr al+	  | t == k_enumeration+	      = showAttrEnum+	  | t == k_notation+	      = showBlank . showString k_notation . showAttrEnum+	  | otherwise+	      = showBlank . showString t++      showAttrEnum+	  = showString " ("+	    .+	    foldr1 (\ s1 s2 -> s1 . showString " | " .  s2) (map (getEnum . attrlOfDTD) cs)+	    .+	    showString ")"+	    where+	    getEnum	:: Attributes -> String -> String+	    getEnum l = showAttr a_name l . showPEAttr l++      showAttrKind k+	  | k == k_default+	      = showBlank . showQuoteString (lookup1 a_default al)+	  | k == k_fixed+	      = showBlank . showString k_fixed+		.+		showBlank . showQuoteString (lookup1 a_default al)+	  | k == ""+	      = id+	  | otherwise+	      = showBlank . showString k++showXmlDTD NOTATION al _cs+    = showString "<!NOTATION "+      .+      showAttr a_name al+      .+      showExternalId al+      .+      showString " >"++showXmlDTD PENTITY al cs+    = showEntity "% " al cs++showXmlDTD ENTITY al cs+    = showEntity "" al cs++showXmlDTD PEREF al _cs+    = showPEAttr al++showXmlDTD CONDSECT _ (c1 : cs)+    = showString "<![ "+      .+      showXmlTree c1+      .+      showString " [\n"+      .+      showXmlTrees cs+      .+      showString "]]>"++showXmlDTD CONTENT al cs+    = showContent (mkXDTDTree CONTENT al cs)++showXmlDTD NAME al _cs+    = showAttr a_name al++showXmlDTD de al _cs+    = showString "NOT YET IMPLEMETED: " . showString (show de) . showBlank . showString (show al) . showString " [...]\n"++-- ------------------------------------------------------------++showElemType	:: String -> XmlTrees -> String -> String+showElemType t cs+    | t == v_pcdata+	= showLpar . showString v_pcdata . showRpar++    | t == v_mixed && (not . null) cs+	= showLpar+	  .+	  showString v_pcdata+	  .+	  ( foldr (.) id . map (mixedContent . selAttrl . getNode) ) cs1+	  .+          showRpar+	  .+	  showAttr a_modifier al1+    | t == v_mixed				-- incorrect tree, e.g. after erronius pe substitution+	= showLpar+	  .+	  showRpar+    | t == v_children && (not . null) cs+	= showContent (head cs)+    | t == v_children+	= showLpar+	  . showRpar+    | t == k_peref+	= foldr (.) id . map showContent $ cs+    | otherwise+	= showString t+    where+    [(NTree (XDTD CONTENT al1) cs1)] = cs++    mixedContent :: Attributes -> String -> String+    mixedContent l+	= showString " | " . showAttr a_name l . showPEAttr l++    selAttrl (XDTD _ as) = as+    selAttrl (XText tex) = [(a_name, tex)]+    selAttrl _           = []++-- ------------------------------------------------------------++showContent	:: XmlTree -> String -> String+showContent (NTree (XDTD de al) cs)+    = cont2String de+      where+      cont2String	:: DTDElem -> String -> String+      cont2String NAME+	  = showAttr a_name al+      cont2String PEREF+	  = showPEAttr al+      cont2String CONTENT+	  = showLpar+	    .+	    foldr1 (combine (lookup1 a_kind al)) (map showContent cs)+            .+            showRpar+            .+            showAttr a_modifier al+      cont2String n+	  = error ("cont2string " ++ show n ++ " is undefined")+      combine k s1 s2+	  = s1+	    .+	    showString ( if k == v_seq+			 then ", "+			 else " | "+		       )+            .+            s2++showContent n+    = showXmlTree n++-- ------------------------------------------------------------++showEntity	:: String -> Attributes -> XmlTrees -> String -> String++showEntity kind al cs+    = showString "<!ENTITY "+      .+      showString kind+      .+      showAttr a_name al+      .+      showExternalId al+      .+      showNData al+      .+      showEntityValue cs+      .+      showString " >"++-- ------------------------------------------------------------++showEntityValue	:: XmlTrees -> String -> String++showEntityValue []+    = id++showEntityValue cs+    = showBlank . showQuoteString (xshow cs)++-- ------------------------------------------------------------++showBlank,+  showEq, showLt, showGt, showSlash, showApos, showQuot, showLpar, showRpar, showNL :: String -> String++showBlank	= showChar ' '+showEq		= showChar '='+showLt		= showChar '<'+showGt		= showChar '>'+showSlash	= showChar '/'+showApos	= showChar '\''+showQuot	= showChar '\"'+showLpar	= showChar '('+showRpar	= showChar ')'+showNL		= showChar '\n'++-- -----------------------------------------------------------------------------+--+-- string access functions++-- |+-- select the name of a node. For tags, attributes and pi\'s the name string+-- is returned, else the empty string.++nameOf				:: XmlTree -> String+nameOf+    = selName . getNode+      where+      selName (XTag  n _)	= tName n+      selName (XAttr n  )	= aName n+      selName (XPi   n _)	= tName n+      selName _			= ""++-- |+-- select the local part of a name of a node. For tags, attributes the name string+-- is returned, for pi's the whole name, else the empty string.++localPartOf				:: XmlTree -> String+localPartOf+    = selName . getNode+      where+      selName (XTag  n _)	= localPart n+      selName (XAttr n  )	= localPart n+      selName (XPi   n _)	= tName n+      selName _			= ""++-- |+-- select the namespace URI of a tag or an attribute tree, else the empty string is returned+-- see also : 'nameOf'++namespaceOf				:: XmlTree -> String+namespaceOf+    = selName . getNode+      where+      selName (XTag n _)	= namespaceUri n+      selName (XAttr n )	= namespaceUri n+      selName _			= ""++-- |+-- select the namespace prefix of a tag or an attribute tree, else the empty string is returned+-- see also : 'nameOf', 'localPartOf'++prefixOf				:: XmlTree -> String+prefixOf+    = selName . getNode+      where+      selName (XTag n _)	= namePrefix n+      selName (XAttr n )	= namePrefix n+      selName _			= ""++-- |+-- select the universal name (namespace uri ++ localPart) of a tag or an attribute tree, else the empty string is returned+-- see also : 'nameOf', 'namespaceOf'++universalNameOf				:: XmlTree -> String+universalNameOf+    = selName . getNode+      where+      selName (XTag n _)	= universalName n+      selName (XAttr n )	= universalName n+      selName _			= ""++-- |+-- select the attributes of a dtd tree++attrlOfDTD				:: XmlTree -> Attributes+attrlOfDTD (NTree (XDTD _ al) _)	= al+attrlOfDTD _				= []+++-- |+-- select a special attribute of a DTD part++valueOfDTD		:: String -> XmlTree -> String+valueOfDTD n		= lookup1 n . attrlOfDTD++-- |+-- test an attribute of a DTD part++ofDTDequals	:: String -> String -> XmlTree -> Bool+ofDTDequals n v	= (== v) . valueOfDTD n++-- -----------------------------------------------------------------------------+--+-- convenient functions++xcmt		:: String -> XmlTrees+xcmt cmt	= [ mkXCmtTree cmt ]++xerr		:: String -> XmlTrees+xerr msg	= [ mkXErrorTree c_err msg []]++xwarn		:: String -> XmlTrees+xwarn msg	= [ mkXErrorTree c_warn msg []]++xtext		:: String -> XmlTrees+xtext t		= [ mkXTextTree t]++xtag		:: String -> XmlTrees -> XmlTrees -> XmlTrees+xtag t al cl	= [ mkXTagTree t al cl ]++xattr		:: String -> String -> XmlTrees+xattr n v	= [ mkXAttrTree n (xtext v) ]++-- -----------------------------------------------------------------------------+--+-- conversion functions: XmlTrees <-> Attributes++toTreel		:: XmlTrees -> AssocList String XmlTrees+toTreel+    = concatMap toTree+      where+      toTree (NTree (XAttr n) cs) = [(aName n, cs)]+      toTree _			  = []++toAttrl		:: XmlTrees -> Attributes+toAttrl+    = map (\ (k,tl) -> (k, xshow tl)) . toTreel+++fromTreel	:: AssocList String XmlTrees -> XmlTrees+fromTreel+    = map (\ (k,tl) -> mkXAttrTree k tl)++fromAttrl	:: Attributes -> XmlTrees+fromAttrl+    = fromTreel . map (\ (k,v) -> (k, xtext v))++-- -----------------------------------------------------------------------------
+ src/Text/XML/HXT/DOM/XmlTreeTypes.hs view
@@ -0,0 +1,77 @@+-- |+-- exports the core data types+-- and some additional types and functions+-- for compatibility with none arrow modules+--+-- Version : $Id: XmlTreeTypes.hs,v 1.6 2006/05/09 15:30:43 hxml Exp $++module Text.XML.HXT.DOM.XmlTreeTypes+    ( module Data.Tree.NTree.Filter+    , module Text.XML.HXT.DOM.TypeDefs+    , module Text.XML.HXT.DOM.XmlTreeTypes+    )++where++import Data.Tree.NTree.Filter+import Text.XML.HXT.DOM.TypeDefs++-- aliases for compatiblility reasons++mkNode		:: node -> NTrees node -> NTree node+mkNode		= mkTree++formatNTree	:: (node -> String) -> NTree node -> String+formatNTree	= formatTree++foldNTree	:: (a -> [b] -> b) -> NTree a -> b+foldNTree 	= foldTree++mapNTree	:: (a -> b) -> NTree a -> NTree b+mapNTree 	= fmap++nTreeToList	:: NTree a -> [a]+nTreeToList	= nodesTree++depthNTree	:: NTree a -> Int+depthNTree	= depthTree++cardNTree	:: NTree a -> Int+cardNTree	= cardNTree++-- -----------------------------------------------------------------------------+--+-- Basic types for filters++-- | A functions that takes a node and returns a list of nodes++type XmlFilter	= TFilter  XNode++-- | A function that takes a list of nodes and returns a list of nodes++type XmlSFilter	= TSFilter XNode+++-- -----------------------------------------------------------------------------+--++-- | Tag name+type TagName	= QName++-- | Attribute name+type AttrName	= QName++-- -----------------------------------------------------------------------------++-- | shortcut for 'qualifiedName'++tName	:: QName -> String+tName	= qualifiedName++-- | shortcut for 'qualifiedName'++aName	:: QName -> String+aName	= qualifiedName++-- -----------------------------------------------------------------------------+
+ src/Text/XML/HXT/IO/GetFILE.hs view
@@ -0,0 +1,83 @@+-- ------------------------------------------------------------+--+-- GET for local file access+--+-- Version : $Id: GetFILE.hs,v 1.6 2006/09/04 06:03:03 hxml Exp $++module Text.XML.HXT.IO.GetFILE+    ( module Text.XML.HXT.IO.GetFILE+    )++where++import System.IO+    ( IOMode(..)+    , openFile+    -- , getContents  is defined in the prelude+    , hGetContents+    )++import System.IO.Error+    ( ioeGetErrorString+    , try+    )++import System.Directory+    ( doesFileExist+    , getPermissions+    , readable+    )++import Network.URI+    ( unEscapeString+    )++-- ------------------------------------------------------------++getStdinCont		:: IO (Either String String)+getStdinCont+    = do+      c <- try ( do+		 getContents+	       )+      return (either readErr Right c)+    where+    readErr e+	= Left ( "system error when reading from stdin: "+		 ++ ioeGetErrorString e+	       )++getCont		:: String -> IO (Either String String)+getCont source+    = do			-- preliminary+      exists <- doesFileExist source'+      if not exists+	 then return (Left ("file " ++ show source' ++ " not found"))+	 else do+	      perm <- getPermissions source'+	      if not (readable perm)+	         then return (Left ("file " ++ show source' ++ " not readable"))+	         else do+		      c <- try ( do+				 h <- openFile source' ReadMode+				 hGetContents h+			       )+		      return (either readErr Right c)+    where+    source' = drivePath . unEscapeString $ source+    readErr e+	= Left ( "system error when reading file "+		 ++ show source+		 ++ ": "+		 ++ ioeGetErrorString e+	       )++    -- remove leading / if file starts with windows drive letter, e.g. /c:/windows -> c:/windows+    drivePath ('/' : file@(d : ':' : _more))+	| d `elem` ['A'..'Z'] || d `elem` ['a'..'z']+	    = file+    drivePath file+	= file+++-- ------------------------------------------------------------
+ src/Text/XML/HXT/IO/GetHTTPCurl.hs view
@@ -0,0 +1,169 @@+-- ------------------------------------------------------------+--+-- GET for http access with curl+--+-- Version : $Id: GetHTTPCurl.hs,v 1.3 2005/04/14 12:52:52 hxml Exp $++module Text.XML.HXT.IO.GetHTTPCurl+    ( getCont+    )++where++import Text.XML.HXT.DOM.XmlKeywords++import Text.XML.HXT.Parser.ProtocolHandlerUtil+    ( parseContentType+    )++import Text.ParserCombinators.Parsec+    ( Parser+    , parse+    , anyChar+    , char+    , digit+    , getInput+    , many1+    , manyTill+    , spaces+    , string+    , (<|>)+    )++import qualified Text.ParserCombinators.Parsec as Parsec (try)	-- try++import System.PipeOpen+    ( popen+    )++import Data.Char+    ( toLower+    )++import System.IO++-- ------------------------------------------------------------+--+-- the http protocol handler implemented by calling external program curl++getCont		:: String -> String -> String -> IO (Either String ([(String, String)], String))+getCont curlOptions uri proxy+    = do+      (res, errs, rc) <- popen cmd allArgs+      if rc /= 0+	 then return $ Left ( "http error when requesting URI "+			      ++ show uri+			      ++ ": (rc=" ++ show rc ++ ") "+			      ++ errs+			    )+	 else let+	      (st, al, contents) = parseResponse res+	      in+	      if st >= 200 && st < 300+		 then return $ Right (al, contents)+		 else return $ Left ( "http error when accessing URI "+				      ++ show uri+				      ++ ": "+				      ++ show st+				    )+    where+    cmd		= "curl"++    allArgs	= args+		  ++ proxyArgs proxy+		  ++ words curlOptions++    args 	= [ "--silent"+		  , "--show-error"+		  , "--dump-header", "-"+		  , uri+		  ]+    proxyArgs ""+		= []+    proxyArgs prx+		= [ "--proxy", prx ]++parseResponse	:: String -> (Int, [(String, String)], String)+parseResponse inp+    = ( either+          ( const (999, [(transferMessage, "illegal HTTP response")], inp))+          id+	.+	parse parseHttpResponse "HTTP Header"+      ) inp++-- ------------------------------------------------------------++parseHttpResponse		:: Parser (Int, [(String, String)], String)+parseHttpResponse+    = do+      allResponses <- many1 parse1Response+      let (rc, rh, rhs) = last allResponses+      content <- getInput+      return (rc, rh ++ rhs, content)+    where++    parse1Response+	= do+	  (rc, rh) <- parseResp+	  rhs      <- parseHeaders+	  return (rc, rh, rhs)++    crlf		:: Parser ()+    crlf+	= do+	  ( Parsec.try (string "\r\n") <|> string "\n" )+	  return ()++    parseResp		:: Parser (Int, [(String, String)])+    parseResp+	= do+	  vers <- ( do+		    http <- string "HTTP/"+		    mav <- many1 digit+		    char '.'+		    miv <- many1 digit+		    return (http ++ mav ++ "." ++ miv)+		  )+	  spaces+	  ds <- many1 digit+	  spaces+	  reason <- manyTill anyChar crlf+	  return ( read ds,+		   [(transferMessage, reason), (transferVersion, vers)]+		 )++    parseHeaders	:: Parser [(String, String)]+    parseHeaders+	= ( do+	    crlf+	    return []+	  )+	  <|>+	  ( do+	    header1 <- parse1Header+	    rest    <- parseHeaders+	    return (header1 ++ rest)+	  )+	  <|>+	  ( do+	    return [(httpPrefix ++ "IllegalHeaders", "")]+	  )++    parse1Header	:: Parser [(String, String)]+    parse1Header+	= do+	  header <- manyTill anyChar (char ':')+	  spaces+	  value  <- manyTill anyChar crlf+	  let ct = parseCT header value+	  return $ ct ++ [(httpPrefix ++ header, value)]+	where+	parseCT	:: String -> String -> [(String, String)]+	parseCT h v+	    | map toLower h == "content-type"+		= either (const []) id . parse parseContentType h $ v+	    | otherwise+		= []++-- ------------------------------------------------------------
+ src/Text/XML/HXT/IO/GetHTTPNative.hs view
@@ -0,0 +1,151 @@+-- ------------------------------------------------------------+--+-- GET for native http access+--+-- Version : $Id: GetHTTPNative.hs,v 1.2 2005/04/14 12:52:52 hxml Exp $++module Text.XML.HXT.IO.GetHTTPNative+    ( module Text.XML.HXT.IO.GetHTTPNative+    )++where++import Text.XML.HXT.DOM.XmlKeywords+import Text.XML.HXT.DOM.Util			( stringTrim )+import Text.XML.HXT.Parser.ProtocolHandlerUtil	( parseContentType )++import Text.ParserCombinators.Parsec		( parse )++import Data.Maybe	( fromJust+			)+import System.IO	( hPutStrLn+			, stderr+			)+import System.IO.Error	( ioeGetErrorString+			, try+			)+import Network.Browser	( Proxy(..)+			, browse+			, defaultGETRequest+			, request+			, setOutHandler+			, setErrHandler+			, setProxy+			)+import Network.HTTP	( Header(..)+			, HeaderName(..)+			, Response(..)+			, httpVersion+			)+import Network.Socket	( withSocketsDo+			)+import Network.URI	( URI+			, parseURIReference+			)++-- ------------------------------------------------------------+--+-- the native http protocol handler++-- ------------------------------------------------------------+--+-- the http protocol handler, haskell implementation++getCont		:: String -> String -> IO (Either String ([(String, String)], String))+getCont uri proxy+    = do+      res <- try (getHttp False uri1 proxy)+      either processError processResponse res+    where+    uri1 = fromJust (parseURIReference uri)++    processError e+	= return $ Left ( "http error when requesting URI "+			  ++ show uri+			  ++ ": "+			  ++ ioeGetErrorString e+			  ++ " (perhaps server does not understand HTTP/1.1) "+			)++    processResponse response+	| st >= 200 && st < 300+	    = return $ Right (al, cs)++	| otherwise+	    = return $ Left ( "http error when accessing URI "+			      ++ show (show uri)+			      ++ ": "+			      ++ show st+			      ++ " "+			      ++ rspReason response+			    )+	where+	al = convertResponseHeaders response+	cs = rspBody response+	st = convertResponseStatus (rspCode response)++    getHttp		:: Bool -> URI -> String -> IO Response+    getHttp trc' uri' proxy'+	= withSocketsDo $+	  browse ( do+		   setOutHandler (trcFct)+		   setErrHandler (trcFct)++		   setProxy' proxy'+		   (_ruri, rsp) <- request rq+		   return rsp+		 )+	where+	trcFct s+	    | trc'+		= hPutStrLn stderr ("-- (5) http: " ++ s)+	    | otherwise+		= return ()++	rq = defaultGETRequest uri'+	+	setProxy' ""	= return ()+	setProxy' p	= setProxy (Proxy p Nothing)++    convertResponseStatus	:: (Int, Int, Int) -> Int+    convertResponseStatus (a, b, c)+	= 100 * a + 10 * b + c++    convertResponseHeaders	:: Response -> [(String, String)]+    convertResponseHeaders r'+	= cvResponseCode (rspCode r')+	  +++	  cvResponseReason (rspReason r')+          +++	  cvResponseHeaders (rspHeaders r')+	where+	cvResponseCode	:: (Int, Int, Int) -> [(String, String)]+	cvResponseCode st'+	    = [ (transferStatus,	show (convertResponseStatus st'))+	      , (transferVersion,	httpVersion)+	      ]++	cvResponseReason	:: String -> [(String, String)]+	cvResponseReason r''+	    = [ (transferMessage, (stringTrim r'')) ]++	cvResponseHeaders	:: [Header] -> [(String, String)]+	cvResponseHeaders+	    = concatMap cvResponseHeader++	cvResponseHeader	:: Header -> [(String, String)]+	cvResponseHeader (Header name value)+	    | name == HdrContentType+		= ( case (parse parseContentType (show HdrContentType) value) of+		    Right res -> res+		    Left  _   -> []+		  )+                  +++		  addHttpAttr+	    | otherwise+		= addHttpAttr+	    where+	    addHttpAttr = [ (httpPrefix ++ (show name), value) ]+++-- ------------------------------------------------------------
+ src/Text/XML/HXT/Parser.hs view
@@ -0,0 +1,38 @@+-- |+-- Simple parse functions.+--+-- Version : $Id: Parser.hs,v 1.2 2006/11/09 20:27:42 hxml Exp $+--+--+-- the "main" building blocks for an application.+-- this module exports all important functions for parsing, validating and transforming XML.+-- it also exports all basic datatypes and functions of the toolbox.+--++module Text.XML.HXT.Parser+    ( module Text.XML.HXT.DOM++    , module Text.XML.HXT.Parser.XmlParser+    , module Text.XML.HXT.Parser.HtmlParser+    , module Text.XML.HXT.Parser.XmlInput+    , module Text.XML.HXT.Parser.XmlOutput+    , module Text.XML.HXT.Parser.DTDProcessing+    , module Text.XML.HXT.Parser.MainFunctions++    , module Text.XML.HXT.Validator.Validation+    )+where++import Text.XML.HXT.DOM++import Text.XML.HXT.Parser.XmlParser+import Text.XML.HXT.Parser.HtmlParser+import Text.XML.HXT.Parser.XmlInput+import Text.XML.HXT.Parser.XmlOutput+import Text.XML.HXT.Parser.DTDProcessing+import Text.XML.HXT.Parser.MainFunctions++import Text.XML.HXT.Validator.Validation++-- ------------------------------------------------------------+
+ src/Text/XML/HXT/Parser/DTDProcessing.hs view
@@ -0,0 +1,932 @@+-- ------------------------------------------------------------++{- |+   Module     : Text.XML.HXT.Parser.DTDProcessing+   Copyright  : Copyright (C) 2005 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: DTDProcessing.hs,v 1.15 2006/11/12 14:53:00 hxml Exp $++   DTD processing function for+   including external parts of a DTD+   parameter entity substitution and general entity substitution++-}++-- ------------------------------------------------------------++module Text.XML.HXT.Parser.DTDProcessing+    ( getWellformedDoc+    , checkWellformedDoc+    , processDTD+    , processGeneralEntities+    )+where++import Text.XML.HXT.DOM.XmlTree++import Text.XML.HXT.Parser.XmlOutput+    ( traceTree+    , traceSource+    , traceMsg+    )++import Text.XML.HXT.Parser.XmlParser+    ( parseXmlDoc+    , parseXmlDTDPart+    , parseXmlAttrValue+    , parseXmlGeneralEntityValue+    )++import Text.XML.HXT.Parser.XmlDTDParser+    ( parseXmlDTDdecl+    , parseXmlDTDdeclPart+    , parseXmlDTDEntityValue+    )++import Text.XML.HXT.Parser.XmlInput+    ( getXmlContents+    , getXmlEntityContents+    , runInLocalURIContext+    , runInNewURIContext+    , getBaseURI+    , setBaseURI+    , getAbsolutURI+    , isStandaloneDocument+    )++import Text.XML.HXT.DOM.EditFilters+    ( transfCharRef+    , transfAllCharRef+    )++import Text.XML.HXT.DOM.XmlState++import Data.Maybe++import qualified Data.Map as M+    ( Map+    , empty+    , lookup+    , insert+    -- , foldWithKey+    )++-- ------------------------------------------------------------+--+-- the "main" building blocks++-- |+-- monadic filter for reading, parsing and checking a wellformed document.+-- the input tree must consist of a root node with a source attribute+-- in its attribute list.+--+-- All attributes from the document root are copied into the system state,+-- and may be queried by the monadic filters, e.g. trace options.+--+-- Result is the single element list containing the well-formed document tree+-- or, in case of errors, the document root with an empty list as children+-- and attributes 'a_status' and 'a_module' for error level and the module,+-- where the error occured.+--+-- this is a shortcut for 'getXmlContents' .\>\> 'checkWellformedDoc'+--+-- example for a main program:+--+-- @+-- main =+--   run\' \$+--   do+--   res  \<- getWellformedDoc \$ newDocument \"myfile.xml\"+--   ...+-- @++getWellformedDoc	:: XmlStateFilter state+getWellformedDoc+    = setSystemParams+      .>>+      getXmlContents+      .>>+      checkWellformedDoc++-- |+-- parses a text node with 'parseXmlDoc', processes the DTD and general entities+-- and transforms all char references into characters++checkWellformedDoc		:: XmlStateFilter state+checkWellformedDoc+    = parseXmlDoc+      .>>+      processDTD+      .>>+      processGeneralEntities+      .>>+      liftMf transfAllCharRef++-- ------------------------------------------------------------+--++type RecList		= [String]++type DTDState res	= XState PeEnv res++type DTDStateFilter	= XmlTree -> DTDState XmlTrees++data DTDPart		= Internal+			| External+			  deriving (Eq)++-- ------------------------------------------------------------++type PeEnv		= M.Map String XmlTree++emptyPeEnv	:: PeEnv+emptyPeEnv	= M.empty++lookupPeEnv	:: String -> PeEnv -> Maybe XmlTree+lookupPeEnv	= M.lookup++addPeEntry	:: String -> XmlTree -> PeEnv -> PeEnv+addPeEntry	= M.insert++-- ------------------------------------------------------------++-- |+-- a filter for DTD processing+--+-- inclusion of external parts of DTD,+-- parameter entity substitution+-- conditional section evaluation+--+-- input tree must represent a complete document including root node++processDTD		:: XmlStateFilter a+processDTD+    = runInLocalURIContext+         ( processRoot+	   .>>+	   traceTree+	   .>>+	   traceSource+	 )+      `whenM` ( isRoot .> getChildren )+      where++      processRoot	:: XmlStateFilter a+      processRoot t+	  = do+	    sequence_ . map (\ (a, ts) -> setSysParamTree a ts) . toTreel . getAttrl $ t+	    setSysParam a_standalone ""+	    ( traceMsg 1 ("processDTD: process parameter enitities")+	      .>>+	      liftMf (modifyChildren addDoctype)+	      .>>+	      processChildrenM substParamEntities+	      .>>+	      checkResult "in XML DTD processing"+	      ) `whenM` statusOk+	      $ t++      -- Adds an empty DOCTYPE node to document. Needed for documents without a DTD.+      -- Otherwise processor can not substitute predefined entities. If an xml declaration+      -- is present, the node is inserted after this node.+      addDoctype :: XmlSFilter+      addDoctype docChilds+          = if null doctype+            then if null xmlDecl+                 then [mkXDTDTree DOCTYPE [] []] ++ docChilds+                 else (head docChilds) : [mkXDTDTree DOCTYPE [] []] ++ (tail docChilds)+            else docChilds+            where+            doctype = isDoctype $$ docChilds+            xmlDecl = isPi t_xml $$ isXPi $$ docChilds+++substParamEntities	:: XmlStateFilter a+substParamEntities+    = processParamEntities+      `whenM`+      isDoctype+      where++      processParamEntities	:: XmlStateFilter a+      processParamEntities t'+	  = do+	    (dtdPre, envPre) <- processPredef++	    -- process internal part of DTD with initial empty env for parameter entities+	    (dtdInt, envInt) <- processInt envPre t'++	    -- process external part of DTD with resulting env from internal DTD+	    dtdExt <- runInLocalURIContext (processExt envInt) t'++	    -- merge predefined, internal and external part+	    trace 2 "substParamEntities: merge internal and external DTD parts"+	    return (replaceChildren (foldl1 mergeDTDs [dtdPre, dtdInt, dtdExt]) t')++      processPredef+	  = do+	    trace 2 "substParamEntities: substitute predefined entities"+	    chain' emptyPeEnv (substParamEntity Internal $$< predefDTDPart)++      processInt env' n'+	  = do+	    trace 2 "substParamEntities: substitute parameter entities in internal DTD part"+	    chain' env' (substParamEntity Internal $$< getChildren n')++      processExt env' n'+	  = do+	    trace 2 "substParamEntities: process external part of DTD"+            extDtd <- processExternalDTD n'+	    trace 2 "substParamEntities: substitute parameter entities in external DTD part"+	    chain env' ( (substParamEntity External) $$< extDtd)++-- ------------------------------------------------------------+-- |+-- substitute parameter entities+-- result is the input tree with the list of text nodes as children or an error message++substPEref'	:: DTDPart -> PeEnv -> XmlFilter++substPEref' loc env n@(NTree (XDTD PEREF al) _)+    | isInternalRef	= xerr ("a parameter entity reference of " ++ peName' ++ " occurs in the internal subset of the DTD")++    | isUndefinedRef	= xerr ("parameter entity " ++ peName' ++ " not found (forward reference?)")++    | null baseUri	= [setChildren peContent n]++    | otherwise		= [(NTree (XDTD PEREF ((a_url,baseUri):al)) peContent)]+    where+    peName		= lookup1 a_peref al+    peName'		= show peName+    peVal		= lookupPeEnv peName env+    isInternalRef	= loc == Internal+    isUndefinedRef	= isNothing peVal++    (NTree (XDTD PENTITY peAl) peContent) = fromJust peVal+    baseUri		= lookup1 a_url peAl++    -- peContent		= getChildren $ fromJust peVal++substPEref' _ _ n+    = [n]++-- ------------------------------------------------------------++{-+dumpPE	:: DTDStateFilter+dumpPE t+    = do+      env <- getState+      ( traceMsg 2 ("dumpPE: parameter entity environment\n" ++ M.foldWithKey showPE "" env)+	.>>+	thisM ) t+    where+    showPE k v b = k ++ "\t" ++ show v ++ "\n" ++ b+-}++traceDTD	:: String -> XmlStateFilter a+traceDTD msg	= traceMsg 4 msg .>> traceTree++-- ------------------------------------------------------------++getExternalParamEntityValue	:: DTDStateFilter+getExternalParamEntityValue n@(NTree (XDTD PENTITY al) _cl)+    = do+      rl <- ( getXmlEntityContents+	      .>>+	      liftMf getChildren+	    )+	    $ newDocument' ((a_source, sysVal) : al)+      base <- getBaseURI+      if null rl+	 then issueErr ("illegal external parameter entity value for entity %" ++ peName ++";") n+	 else thisM (NTree (XDTD PENTITY ((a_url, base) : al)) rl)+    where+    sysVal = lookup1 k_system al+    peName = lookup1 a_name   al++getExternalParamEntityValue n+    = error ("getExternalParamEntityValue: illegal argument: " ++ show n)++-- ------------------------------------------------------------++-- |+-- the dtd parameter entity substitution filter++substParamEntity	:: DTDPart -> DTDStateFilter++substParamEntity loc n@(NTree xn _cs)+    | isDTDElemNode ENTITY xn					-- ENITITY and parameter ENTITY decl+	= traceDTD ("ENTITY declaration before DTD declaration parsing")+	  .>>+	  processChildrenM (substPeRefsInDTDdecl [])+          .>>+	  liftF parseXmlDTDdecl+          .>>+	  substRefsInEntityValue+          .>>+	  processEntityDecl+          .>>+          traceDTD ("ENTITY declaration after DTD declaration parsing")+          $ n++    | isDTDElemNode PEREF xn					-- parameter entity ref in DTD+	= substPeRefsInDTDpart [] n++    | isDTDElemNode ELEMENT xn					-- ELEMENT, ATTLIST, NOTATION+      ||+      isDTDElemNode ATTLIST xn+      ||+      isDTDElemNode NOTATION xn+	= traceDTD  "DTD declaration before PE substitution"+	  .>>+	  processChildrenM (substPeRefsInDTDdecl [])+          .>>+	  liftF parseXmlDTDdecl+          .>>+	  traceDTD "DTD declaration after DTD declaration parsing"+	  $ n++    | isDTDElemNode CONDSECT xn					-- conditional section+      &&+      loc == Internal+	  = do+	    issueErr "conditional sections in internal part of the DTD is not allowed" n+            return []++    | isDTDElemNode CONDSECT xn					-- conditional section+      &&+      loc == External+	  = let+	    (XDTD _ al) = xn+	    content	= mkXTextTree (lookup1 a_value al)+	    in+	    traceDTD "substParamEntity: process conditional section"+	    .>>+	    processChildrenM (substPeRefsInCondSect [])+            .>>+	    liftF parseXmlDTDdecl+	    .>>+            evalCond content+	    $ n++    | isXCmtNode xn						-- remove comments+	= noneM n++    | otherwise							-- default: keep things unchanged (should not occur)+	= thisM n+    where++    processEntityDecl	:: DTDStateFilter+    processEntityDecl n'@(NTree (XDTD ENTITY al) cs)	= if isExtern+	  then ( do+		 url <- getAbsolutURI sysVal			-- add the absolute URI+		 return [NTree (XDTD ENTITY ((a_url, url) : al)) cs]+	       )+	  else liftMf (substChildren (xmlTreesToText . getChildren)) n'+	where+	isExtern = hasEntry k_system al+	sysVal   = lookup1  k_system al+      +    processEntityDecl n'@(NTree (XDTD PENTITY al) _)+	= do+	  env <- getState+	  if (isJust . lookupPeEnv peName) $ env+	     then+	     issueWarn ("parameter entity " ++ show peName ++ " already defined") n+	     else+	     ( ifM isExternalParameterEntity+	           ( runInLocalURIContext getExternalParamEntityValue )+                   ( liftMf (substChildren (xmlTreesToText . getChildren)) )+	       .>>+	       addPE peName+	     ) n'+	  where+	  peName = lookup1 a_name al++    processEntityDecl n'+	= error ("processEntityDecl called with wrong argument" ++ show n')++    addPE	:: String -> DTDStateFilter+    addPE name t+	= do+	  trace 2 ("substParamEntity: add entity to env: " ++ xshow [t])+	  changeState $ addPeEntry name t+	  return []++    substPEref	:: DTDStateFilter+    substPEref n'+	= do+	  env <- getState+	  liftF (substPEref' loc env) $ n'++    substPeRefsInValue	:: [String] -> DTDStateFilter+    substPeRefsInValue recList n'@(NTree (XDTD PEREF al) _cl)+	= ( if peName `elem` recList+	    then issueErr ("recursive call of parameter entity " ++ show peName ++ " in entity value")+	    else ( substPEref+		   .>>+		   liftF parseXmlDTDEntityValue+		   .>>+		   liftF transfCharRef+		   .>>+		   ( substPeRefsInValue (peName : recList)+		     `whenM`+		     isPeRef+		   )+		 )+	  ) $ n'+	where+	peName = lookup1 a_peref al++    substPeRefsInValue _ n'+	= thisM n'++    substRefsInEntityValue	:: DTDStateFilter+    substRefsInEntityValue n'@(NTree (XDTD decl al) _cl)+	| decl `elem` [ENTITY, PENTITY]+	    = ( if hasEntry k_system al+		then thisM							-- externals not yet handled ??? really+		else processChildrenM ( liftF transfCharRef+					.>>+					substPeRefsInValue []+				      )+	      ) n'+    substRefsInEntityValue  n'+	= error ("substRefsInEntityValue called with wrong argument" ++ show n')++    runInPeContext	:: DTDStateFilter -> DTDStateFilter+    runInPeContext f n'@(NTree (XDTD PEREF al) _)+	| null base+	    = f n'+	| otherwise+	    = runInNewURIContext base f n'+	where+	base = lookup1 a_url al++    runInPeContext f n'+	= f n'++    substPeRefsInDTDdecl	:: [String] -> DTDStateFilter+    substPeRefsInDTDdecl recList n'@(NTree (XDTD PEREF al) _cl)+	= ( if peName `elem` recList+	    then issueErr ("recursive call of parameter entity " ++ show peName ++ " in DTD declaration")+	    else ( substPEref+		   .>>+		   traceDTD "substPeRefsInDTDdecl: parseXmlDTDdeclPart"+		   .>>+		   ( runInPeContext+		     ( liftF ( parseXmlDTDdeclPart )+		       .>>+		       traceDTD "substPeRefsInDTDdecl: after parseXmlDTDdeclPart"+		       .>>+		       processChildrenM ( substPeRefsInDTDdecl (peName : recList) )+		     )+		     `whenM`+		     isPeRef+		   )+		 )+	  ) $ n'+	where+	peName = lookup1 a_peref al++    substPeRefsInDTDdecl _ n'+	= thisM n'++    substPeRefsInDTDpart	:: [String] -> DTDStateFilter+    substPeRefsInDTDpart recList n'@(NTree (XDTD PEREF al) _cl)+	= ( if peName `elem` recList+	    then issueErr ("recursive call of parameter entity " ++ show peName ++ " in DTD part")+	    else ( substPEref+		   .>>+		   traceDTD "substPeRefsInDTDpart: parseXmlDTDPart"+		   .>>+		   runInPeContext+		   ( liftF (getChildren .> parseXmlDTDPart ("parameter entity " ++ show peName))+		     .>>+		     traceDTD "substPeRefsInDTDdecl: after parseXmlDTDPart"+		     .>>+		     substParamEntity loc -- cyclic check not yet done (peName : recList)+		   )+		 )+	  ) $ n'+	where+	peName = lookup1 a_peref al++    substPeRefsInDTDpart _ n'+	= thisM n'++    substPeRefsInCondSect	:: [String] -> DTDStateFilter+    substPeRefsInCondSect recList n'@(NTree (XDTD PEREF al) _cl)+	= ( if peName `elem` recList+	    then issueErr ("recursive call of parameter entity " ++ show peName ++ " in conditional section")+	    else ( substPEref+		   .>>+		   traceDTD "substPeRefsInCondSect: parseXmlDTDdeclPart"+		   .>>+		   ( runInPeContext+		     ( liftF ( parseXmlDTDdeclPart )+		       .>>+		       traceDTD "substPeRefsInCondSect: after parseXmlDTDdeclPart"+		       .>>+		       processChildrenM ( substPeRefsInCondSect (peName : recList) )+		     )+		     `whenM`+		     isPeRef+		   )+		 )+	  ) $ n'+	where+	peName = lookup1 a_peref al++    substPeRefsInCondSect _ n'+	= thisM n'+++evalCond :: XmlTree -> DTDStateFilter+evalCond content (NTree (XText c) _)+    | c == k_include+	= liftF (parseXmlDTDPart "conditional section")+	  .>>+	  traceDTD "evalCond: DTD part"+	  .>>+	  substParamEntity External+          $ content +    | otherwise+	= return []+evalCond _ n'+    = error ("evalCond: illegal argument: " ++ show n')++-- ------------------------------------------------------------++processExternalDTD	:: XmlStateFilter a+processExternalDTD n@(NTree (XDTD DOCTYPE al) _dtd)+    | null sysVal+	= return []+    | otherwise+	= do+	  checkStandalone+	  dtdContent <- ( getXmlEntityContents+			  .>>+			  traceMsg 2 ("processExternalDTD: parsing DTD part for " ++ show sysVal)+			  .>>+			  liftMf getChildren+			  .>>+			  liftF (parseXmlDTDPart sysVal)+			)+		       $ newDocument sysVal+	  trace 2 "processExternalDTD: parsing DTD part done"+	  traceTree $ mkRootTree [] dtdContent+	  return dtdContent+    where+    sysVal		= lookup1 k_system al+    checkStandalone	= do+			  _isAlone <- isStandaloneDocument+			  if False -- isAlone+			     then issueErr ("external DTD " ++ show sysVal ++ " specified for standalone document") n+			     else return []++processExternalDTD  _+    = return []++-- ------------------------------------------------------------+-- |+-- merge the external and the internal part of a DTD into one internal part.+-- parameter entity substitution should be made before applying this filter+-- internal definitions shadow external ones+--+--+-- preliminary: no real merge is done++mergeDTDs	:: XmlTrees -> XmlTrees -> XmlTrees+mergeDTDs dtdInt dtdExt+    = dtdInt ++ (mergeDTDentry dtdInt $$ dtdExt)++mergeDTDentry	:: XmlTrees -> XmlFilter+mergeDTDentry dtdPart+    = none `when` found+      where+      filterList = map filterDTDNode dtdPart	-- construct the list of filters+      found      = cat filterList		-- concatenate the filters (set union)+++filterDTDNode	:: XmlTree -> XmlFilter++filterDTDNode (NTree (XDTD dtdElem al) _)+    | dtdElem `elem` [ELEMENT, NOTATION, ENTITY]+	= filterElement+	  where+	  filterElement n@(NTree (XDTD dtdElem' al') _cl')+	      | dtdElem == dtdElem' &&+		lookup a_name al' == lookup a_name al+		  = [n]+	      | otherwise+		  = []+	  filterElement _+	      = []++filterDTDNode (NTree (XDTD ATTLIST al) _)+    = filterAttlist+      where+      filterAttlist n@(NTree (XDTD ATTLIST al') _cl')+	  | lookup a_name  al' == lookup a_name  al &&+	    lookup a_value al' == lookup a_value al+		= [n]+      filterAttlist _+	  = []++filterDTDNode _+    =  none++-- ------------------------------------------------------------++predefinedEntities	:: String+predefinedEntities+    = concat [ "<!ENTITY lt   '&#38;#60;'>"+	     , "<!ENTITY gt   '&#62;'>"+	     , "<!ENTITY amp  '&#38;#38;'>"+	     , "<!ENTITY apos '&#39;'>"+	     , "<!ENTITY quot '&#34;'>"+	     ]++predefDTDPart		:: XmlTrees+predefDTDPart+    = parseXmlDTDPart "predefined entities" $ mkXTextTree predefinedEntities++-- ------------------------------------------------------------+--+-- 4.4 XML Processor Treatment of General Entities and References++data GeContext+    = ReferenceInContent+    | ReferenceInAttributeValue+    | ReferenceInEntityValue+    -- or OccursInAttributeValue				-- not used during substitution but during validation+    -- or ReferenceInDTD					-- not used: syntax check detects errors++type GeFct		= GeContext -> RecList -> GeStateFilter++type GeState res	= XState GeEnv res++type GeStateFilter	= XmlTree -> GeState XmlTrees++-- ------------------------------------------------------------++newtype GeEnv	= GeEnv (M.Map String GeFct)++emptyGeEnv	:: GeEnv+emptyGeEnv	= GeEnv M.empty++lookupGeEnv		:: String -> GeEnv -> Maybe GeFct+lookupGeEnv k (GeEnv env)+    = M.lookup k env++addGeEntry	:: String -> GeFct -> GeEnv -> GeEnv+addGeEntry k a (GeEnv env)+    = GeEnv $ M.insert k a env++-- ------------------------------------------------------------++-- |+-- substitution of general entities+--+-- input: a complete document tree including root node++processGeneralEntities	:: XmlStateFilter a+processGeneralEntities+    = ( traceMsg 1 "processGeneralEntities: collect and substitute general enities"+	.>>+	processEntities+	.>>+	checkResult "in general entity processing"+	.>>+	traceTree+	.>>+	traceSource+      )+      `whenM` statusOk+      where+      processEntities t'+	  = do+	    res <- chain initialEnv (processGeneralEntity ReferenceInContent [] $$< getChildren t')+	    return $ replaceChildren res t'+	    where+	    initialEnv = emptyGeEnv++-- ------------------------------------------------------------++processGeneralEntity	:: GeContext -> RecList -> GeStateFilter+processGeneralEntity cx rl n@(NTree (XDTD DOCTYPE _) dtdPart)+    = do+      res <- processGeneralEntity cx rl $$< dtdPart+      return $ replaceChildren res n++processGeneralEntity cx rl n@(NTree (XDTD ENTITY al) cl)+    | isIntern+	= do+	  trace 2 ("processGeneralEnity: general entity definition for " ++ show name)+	  value <- liftF (parseXmlGeneralEntityValue ("general internal entity " ++ show name)) $ mkXTextTree (xshow cl)+	  res   <- processGeneralEntity ReferenceInEntityValue (name:rl) $$< value+	  insertEntity name (substInternal res)+    | isExtern+	= do+	  baseUri <- getBaseURI+	  insertEntity name (substExternalParsed1Time baseUri)++    | isUnparsed+	= do+	  trace 2 ("processGeneralEnity: unparsed entity definition for " ++ show name)+	  insertEntity name (substUnparsed [])+    where+    isUnparsed	= not isIntern && not isExtern+    isExtern	= not isIntern && not (hasEntry k_ndata al)+    isIntern	= not (hasEntry k_system al)++    name	= lookup1 a_name   al+    -- sysVal	= lookup1 k_system al+    url		= lookup1 a_url    al		-- a_url contains absolut url for k_system+    context	= addEntry a_source url al++    processExternalEntityContents	:: XmlTrees -> GeState XmlTrees+    processExternalEntityContents cl'+	| null cl'						-- reading content did not succeed+	    = return []+	| null txt'						-- something weird in entity content+	    = do+	      issueErr ("illegal external parsed entity value for entity " ++ show name) n+	      return []+	| otherwise						-- o.k.: parse the contents+	    = do+	      res' <- liftF (parseXmlGeneralEntityValue ("external parsed entity " ++ show name)) $$< txt'+	      ( traceSource+		.>>+		traceTree ) $ mkRootTree (fromAttrl context) res'+	      return res'+	where+	txt' = (getChildren .> isXText) $$ cl'++    insertEntity	:: String -> GeFct -> GeState XmlTrees+    insertEntity name' fct'+	= do+	  geEnv' <- getState+	  case lookupGeEnv name' geEnv' of+	    Just _fct+		-> do+		   issueWarn ("entity " ++ show name ++ " already defined, repeated definition ignored") n+		   return []+            Nothing+		-> do+		   changeState $ addGeEntry name' fct' +		   return $ this n++    -- --------+    --+    -- 4.4 XML Processor Treatment of Entities and References++    substInternal	:: XmlTrees -> GeContext -> RecList -> GeStateFilter+    substInternal nl ReferenceInContent rl' _n'+	= included nl rl'++    substInternal nl ReferenceInAttributeValue rl' _n'+	= includedInLiteral nl rl'++    substInternal _nl ReferenceInEntityValue _rl n'+	= bypassed n'++    -- --------++    substExternalParsed1Time	:: String -> GeContext -> RecList -> GeStateFilter+    substExternalParsed1Time baseUri' cx' rl' n'+	= do+	  trace 2 ("substExternalParsed1Time: read and parse external parsed entity " ++ show name)+	  res  <- runInLocalURIContext getContents' $ newDocument' context+	  changeState $ addGeEntry name (substExternalParsed res)+	  substExternalParsed res cx' rl' n' +	  where+	  getContents'	:: GeStateFilter+	  getContents' t''+	      = do+		setBaseURI baseUri'+		rs' <- getXmlEntityContents t''+		processExternalEntityContents rs'+++    substExternalParsed	:: XmlTrees -> GeContext -> RecList -> GeStateFilter+    substExternalParsed  nl ReferenceInContent rl' _n'+	= includedIfValidating nl rl'++    substExternalParsed _nl ReferenceInAttributeValue _rl _n'+	= forbidden "external parsed general" "in attribute value"++    substExternalParsed _nl ReferenceInEntityValue _rl n'+	= bypassed n'++    -- --------++    substUnparsed	:: XmlTrees -> GeContext -> RecList -> GeStateFilter+    substUnparsed _nl ReferenceInContent _rl _n'+	= forbidden "unparsed" "content"+    substUnparsed _nl ReferenceInAttributeValue _rl _n'+	= forbidden "unparsed" "attribute value"+    substUnparsed _nl ReferenceInEntityValue _rl _n'+	= forbidden "unparsed" "entity value"++    -- --------+							-- see XML 1.0 chapter:++    included nl	rl'					-- 4.4.2+	= processGeneralEntity cx (name:rl') $$< nl++    includedIfValidating				-- 4.4.3+	= included++    includedInLiteral					-- 4.4.5+	= included++    bypassed n'						-- 4.4.7+	= return $ this n'++    forbidden msg' cx'					-- 4.4.4+	= do+	  issueErr ("reference of " ++ msg' ++ show name ++ " forbidden in " ++ cx') n+          return []++							-- normalize default value in ATTLIST+processGeneralEntity _cx rl n@(NTree (XDTD ATTLIST al) _cl)+    | hasDefaultValue+	= do+	  res <- ( liftF (parseXmlAttrValue "default value of attribute ")+                   .>>+		   substGeneralEntityInAValue rl+		 ) $ mkXTextTree defaultValue+	  return $ addDTDAttr a_default (xshow res) n+    | otherwise+	= return $ this n+    where+    hasDefaultValue = hasEntry  a_default al+    defaultValue    = lookup1   a_default al++processGeneralEntity cx rl n@(NTree (XEntityRef name) _)+    = do+      trace 2 ("processGeneralEnity: entity reference for entity " ++ show name)+      trace 3 ("recursion list = " ++ show rl)+      geEnv <- getState+      case lookupGeEnv name geEnv of+        Just fct+	  -> if name `elem` rl+	     then do+		  issueErr ("recursive substitution of general entity reference " ++ show ref ++ " not processed") n+		  return nl+	     else do+		  fct cx rl n+        Nothing+	  -> do+	     issueErr ("general entity reference " ++ show ref ++ " not processed, no definition found, (forward reference?)") n+	     return nl+      where+      nl  = this n+      ref = xshow nl+++processGeneralEntity cx rl n@(NTree (XTag _tagName al) cl)+    = do+      al' <- substGeneralEntityInAttr rl $$< al+      cl' <- processGeneralEntity cx rl  $$< cl+      return $ (replaceAttrl al' .> replaceChildren cl') n++processGeneralEntity _cx _rl n+    = return $ this n++-- ------------------------------------------------------------++substGeneralEntityInAttr	:: RecList -> XmlTree -> GeState XmlTrees+substGeneralEntityInAttr rl a@(NTree (XAttr _) aValue)+    = do+      nv <- substGeneralEntityInAValue rl $$< aValue+      return (replaceChildren nv a)++substGeneralEntityInAttr _ _+    = return []++substGeneralEntityInAValue	:: RecList -> GeStateFilter+substGeneralEntityInAValue rl+    = ( processGeneralEntity ReferenceInAttributeValue rl+	`whenM`+	isXEntityRef+      )+      .>>+      liftMf ( ( modifyText normalizeWhiteSpace `when` isXText)+	      .>+	      (transfCharRef `when` isXCharRef)+	    )+      where+      normalizeWhiteSpace+	  = map ( \c -> if c `elem` "\n\t\r" then ' ' else c )++-- ------------------------------------------------------------++
+ src/Text/XML/HXT/Parser/DefaultURI.hs view
@@ -0,0 +1,49 @@+-- ------------------------------------------------------------+--+-- defaut uri computation+-- this routine is platform dependent+-- and must be exchanged when porting the toolbox e.g. to windows+--+-- Version : $Id: DefaultURI.hs,v 1.4 2006/03/02 10:13:57 hxml Exp $++module Text.XML.HXT.Parser.DefaultURI+    ( setDefaultURI+    )++where++import Text.XML.HXT.DOM.XmlTree++import Text.XML.HXT.DOM.XmlState++import System.Directory+    ( getCurrentDirectory+    )++import Network.URI+    ( escapeURIChar+    , isUnescapedInURI+    )++setDefaultURI   :: XState state ()+setDefaultURI+     = do+       wd <- io getCurrentDirectory+       setSysParam transferDefaultURI ("file://" ++ normalize wd ++ "/")++       where++       -- under Windows getCurrentDirectory returns something like: "c:\path\to\file"+       -- backslaches are not allowed in URIs and paths must start with a /+       -- so this is transformed into "/c:/path/to/file"++       normalize wd'@(d : ':' : _)+	   | d `elem` ['A'..'Z'] || d `elem` ['a'..'z']+	       = '/' : concatMap win32ToUriChar wd'+       normalize wd'+	   = concatMap escapeNonUriChar wd'+				 +       win32ToUriChar '\\' = "/"+       win32ToUriChar c    = escapeNonUriChar c++       escapeNonUriChar c  = escapeURIChar isUnescapedInURI c   -- from Network.URI
+ src/Text/XML/HXT/Parser/HtmlParsec.hs view
@@ -0,0 +1,785 @@+-- |+-- HTML Parsec Parser+--+-- Version : $Id: HtmlParsec.hs,v 1.11 2006/12/08 11:48:20 hxml Exp $+--+-- This parser tries to interprete everything as HTML+-- no errors are emitted during parsing. If something looks+-- weired, warning messages are inserted in the document tree+--+-- all filter are pure XmlFilter,+-- errror handling and IO is done in 'Text.XML.HXT.Parser.HtmlParser'+-- or other modules++module Text.XML.HXT.Parser.HtmlParsec+    ( substHtmlEntities+    , parseHtmlText+    , parseHtmlDocument+    , parseHtmlContent+    , xhtmlEntities+    )++where++import Text.XML.HXT.DOM.XmlTree++import Text.ParserCombinators.Parsec+    ( Parser+    , SourcePos+    , anyChar+    , between+    , char+    , eof+    , getPosition+    , many+    , noneOf+    , option+    , parse+    , satisfy+    , string+    , try+    , (<|>)+    )++import Text.XML.HXT.Parser.XmlTokenParser+    ( allBut+    , dq+    , eq+    , gt+    , name+    , pubidLiteral+    , skipS+    , skipS0+    , sq+    , systemLiteral++    , singleCharsT+    , referenceT+    )++import Text.XML.HXT.Parser.XmlParsec+    ( cDSect+    , charData'+    , misc+    , parseXmlText+    , pI+    , xMLDecl'+    , xmlEntities+    )++import Text.XML.HXT.Parser.XmlCharParser+    ( xmlChar+    )++import Data.Maybe+    ( fromMaybe+    )++import Data.Char+    ( toLower+    , toUpper+    )++-- ------------------------------------------------------------++parseHtmlText	:: String -> XmlFilter+parseHtmlText loc t+    = parseXmlText htmlDocument loc $ t++-- ------------------------------------------------------------++parseHtmlFromString	:: Parser XmlTrees -> String -> String -> XmlTrees+parseHtmlFromString parser loc+    = either (xerr . (++ "\n") . show) id . parse parser loc++parseHtmlDocument	:: String -> String -> XmlTrees+parseHtmlDocument	= parseHtmlFromString htmlDocument++parseHtmlContent	:: String -> XmlTrees+parseHtmlContent	= parseHtmlFromString htmlContent "text"++-- ------------------------------------------------------------++htmlDocument	:: Parser XmlTrees+htmlDocument+    = do+      pl <- htmlProlog+      el <- htmlContent+      eof+      return (pl ++ el)++htmlProlog	:: Parser XmlTrees+htmlProlog+    = do+      xml <- option []+	     ( try xMLDecl'+	       <|>+	       ( do+		 pos <- getPosition+		 try (string "<?")+		 return $ xwarn (show pos ++ " wrong XML declaration")+	       )+	     )+      misc1   <- many misc+      dtdPart <- option []+		 ( try doctypedecl+		   <|>+		   ( do+		     pos <- getPosition+		     try (upperCaseString "<!DOCTYPE")+		     return $ xwarn (show pos ++ " HTML DOCTYPE declaration ignored")+		   )+		 )+      return (xml ++ misc1 ++ dtdPart)++doctypedecl	:: Parser XmlTrees+doctypedecl+    = between (try $ upperCaseString "<!DOCTYPE") (char '>')+      ( do+	skipS+	n <- name+	exId <- ( do+	          skipS+		  option [] externalID+		)+	skipS0+	return [mkXDTDTree DOCTYPE ((a_name, n) : exId) []]+      )++externalID	:: Parser Attributes+externalID+    = do+      try (upperCaseString k_public)+      skipS+      pl <- pubidLiteral+      sl <- option "" $ try ( do+			      skipS+			      systemLiteral+			    )+      return $ (k_public, pl) : if null sl then [] else [(k_system, sl)]++htmlContent	:: Parser XmlTrees+htmlContent+    = option []+      ( do+	context <- hContent ([], [])+	pos     <- getPosition+	return $ closeTags pos context+      )+      where+      closeTags _ (body, [])+	  = reverse body+      closeTags pos' (body, ((tn, al, body1) : restOpen))+	  = closeTags pos' (addHtmlWarn (show pos' ++ ": no closing tag found for \"<" ++ tn ++ " ...>\"")+			    .+			    addHtmlTag tn al body+			    $+			    (body1, restOpen)+			   )++type OpenTags	= [(String, XmlTrees, XmlTrees)]+type Context	= (XmlTrees, OpenTags)++hElement	:: Context -> Parser Context+hElement context+    = ( do+	t <- hSimpleData+	return (addHtmlElems [t] context)+      )+      <|>+      hOpenTag context+      <|>+      hCloseTag context+      <|>+      ( do			-- wrong tag, take it as text+	pos <- getPosition+	c   <- xmlChar+	return ( addHtmlWarn (show pos ++ " markup char " ++ show c ++ " not allowed in this context")+		 .+		 addHtmlElems (xtext [c])+		 $+		 context+	       )+      )+      <|>+      ( do+	pos <- getPosition+	c <- anyChar+	return ( addHtmlWarn ( show pos+			       ++ " illegal data in input or illegal XML char "+			       ++ show c+			       ++ " found and ignored, possibly wrong encoding scheme used")+		 $+		 context+	       )+      )+++hSimpleData	:: Parser XmlTree+hSimpleData+    = charData'+      <|>+      try referenceT+      <|>+      try hComment+      <|>+      try pI+      <|>+      try cDSect++hCloseTag	:: Context -> Parser Context+hCloseTag context+    = do+      n <- try ( do+		 string "</"+		 lowerCaseName+	       )+      skipS0+      pos <- getPosition+      checkSymbol gt ("closing > in tag \"</" ++ n ++ "\" expected") (closeTag pos n context)++hOpenTag	:: Context -> Parser Context+hOpenTag context+    = ( do+	pos <- getPosition+	e   <- hOpenTagStart+	hOpenTagRest pos e context+      )++hOpenTagStart	:: Parser (String, XmlTrees)+hOpenTagStart+    = do+      n <- try ( do+		 char '<'+		 n <- lowerCaseName+		 return n+	       )+      skipS0+      as <- hAttrList+      return (n, as)++hOpenTagRest	:: SourcePos -> (String, XmlTrees) -> Context -> Parser Context+hOpenTagRest pos (tn, al) context+    = ( do+	try $ string "/>"+	return (addHtmlTag tn al [] context)+      )+      <|>+      ( do+	context1 <- checkSymbol gt ("closing > in tag \"<" ++ tn ++ "...\" expected") context+	return ( let context2 = closePrevTag pos tn context1+		 in+		 ( if isEmptyTag tn+		   then addHtmlTag tn al []+		   else openTag tn al+		 ) context2+	       )+      )++hAttrList	:: Parser XmlTrees+hAttrList+    = many (try hAttribute)+      where+      hAttribute+	  = do+	    n <- lowerCaseName+	    v <- hAttrValue+	    skipS0+	    return $ mkXAttrTree n v++hAttrValue	:: Parser XmlTrees+hAttrValue+    = option []+      ( try ( do+	      eq+	      hAttrValue'+	    )+      )++hAttrValue'	:: Parser XmlTrees+hAttrValue'+    = try ( between dq dq (hAttrValue'' "&\"") )+      <|>+      try ( between sq sq (hAttrValue'' "&\'") )+      <|>+      ( do			-- HTML allows unquoted attribute values+	cs <- many (noneOf " \r\t\n>\"\'")+	return [mkXTextTree cs]+      )++hAttrValue''	:: String -> Parser XmlTrees+hAttrValue'' notAllowed+    = many ( hReference' <|> singleCharsT notAllowed)++hReference'	:: Parser XmlTree+hReference'+    = try referenceT+      <|>+      ( do+	char '&'+	return (mkXTextTree "&")+      )++hContent	:: Context -> Parser Context+hContent context+    = option context+      ( do+	context1 <- hElement context+	hContent context1+      )++-- hComment allows "--" in comments+-- comment from XML spec does not++hComment		:: Parser XmlTree+hComment+    = do+      c <- between (try $ string "<!--") (string "-->") (allBut many "-->")+      return (mkXCmtTree c)++checkSymbol	:: Parser a -> String -> Context -> Parser Context+checkSymbol p msg context+    = do+      pos <- getPosition+      option (addHtmlWarn (show pos ++ " " ++ msg) context)+       ( do +	 try p+	 return context+       )++lowerCaseName	:: Parser String+lowerCaseName+    = do+      n <- name+      return (map toLower n)++upperCaseString	:: String -> Parser String+upperCaseString+    = sequence . map (\ c -> satisfy (( == c) . toUpper))++-- ------------------------------------------------------------++addHtmlTag	:: String -> XmlTrees -> XmlTrees -> Context -> Context+addHtmlTag tn al body (body1, openTags)+    = (xtag tn al (reverse body) ++ body1, openTags)++addHtmlWarn	:: String -> Context -> Context+addHtmlWarn msg+    = addHtmlElems (xwarn msg)++addHtmlElems	:: XmlTrees -> Context -> Context+addHtmlElems elems (body, openTags)+    = (reverse elems ++ body, openTags)++openTag		:: String -> XmlTrees -> Context -> Context+openTag tn al (body, openTags)+    = ([], (tn, al, body) : openTags)++closeTag	:: SourcePos -> String -> Context -> Context+closeTag pos n context+    | n `elem` (map ( \ (n1, _, _) -> n1) $ snd context)+	= closeTag' n context+    | otherwise+	= addHtmlWarn (show pos ++ " no opening tag found for </" ++ n ++ ">")+	  .+	  addHtmlTag n [] []+          $+	  context+    where+    closeTag' n' (body', (n1, al1, body1) : restOpen)+	= close context1+	  where+	  context1+	      = addHtmlTag n1 al1 body' (body1, restOpen)+	  close+	      | n' == n1+		= id+	      | n1 `isInnerTagOf` n'+		  = closeTag pos n'+	      | otherwise+		= addHtmlWarn (show pos ++ " no closing tag found for \"<" ++ n1 ++ " ...>\"")+		  .+		  closeTag' n'+    closeTag' _ _+	= error "illegal argument for closeTag'"++closePrevTag	:: SourcePos -> String -> Context -> Context+closePrevTag _pos _n context@(_body, [])+    = context+closePrevTag pos n context@(body, (n1, al1, body1) : restOpen)+    | n `closes` n1+	= closePrevTag pos n+	  ( addHtmlWarn (show pos ++ " tag \"<" ++ n1 ++ " ...>\" implicitly closed by opening tag \"<" ++ n ++ " ...>\"")+	    .+	    addHtmlTag n1 al1 body+	    $+	    (body1, restOpen)+	  )+    | otherwise+	= context++-- ------------------------------------------------------------+--+-- taken from HaXml and extended++isEmptyTag	:: String -> Bool+isEmptyTag n	= n `elem`+		  [ "area"+		  , "base"+		  , "br"+		  , "col"+		  , "frame"+		  , "hr"+		  , "img"+		  , "input"+		  , "link"+		  , "meta"+		  , "param"+		  ]++isInnerTagOf	:: String -> String -> Bool+n `isInnerTagOf` tn+    = n `elem`+      ( fromMaybe [] . lookup tn+      $ [ ("body",    ["p"])+	, ("caption", ["p"])+	, ("dd",      ["p"])+	, ("div",     ["p"])+	, ("dl",      ["dt","dd"])+	, ("dt",      ["p"])+	, ("li",      ["p"])+	, ("map",     ["p"])+	, ("object",  ["p"])+	, ("ol",      ["li"])+	, ("table",   ["th","tr","td","thead","tfoot","tbody"])+	, ("tbody",   ["th","tr","td"])+	, ("td",      ["p"])+	, ("tfoot",   ["th","tr","td"])+	, ("th",      ["p"])+	, ("thead",   ["th","tr","td"])+	, ("tr",      ["th","td"])+	, ("ul",      ["li"])+	]+      )++closes :: String -> String -> Bool+"a"	`closes` "a"					= True+"li"	`closes` "li"					= True+"th"	`closes`  t    | t `elem` ["th","td"]		= True+"td"	`closes`  t    | t `elem` ["th","td"]		= True+"tr"	`closes`  t    | t `elem` ["th","td","tr"]	= True+"dt"	`closes`  t    | t `elem` ["dt","dd"]		= True+"dd"	`closes`  t    | t `elem` ["dt","dd"]		= True+"hr"	`closes`  "p"                                   = True+"colgroup" +	`closes` "colgroup"				= True+"form"	`closes` "form"					= True+"label"	`closes` "label"				= True+"map"	`closes` "map"					= True+"object"+	`closes` "object"				= True+_	`closes` t  | t `elem` ["option"+			       ,"script"+			       ,"style"+			       ,"textarea"+			       ,"title"+			       ]			= True+t	`closes` "select" | t /= "option"		= True+"thead"	`closes` t  | t `elem` ["colgroup"]		= True+"tfoot"	`closes` t  | t `elem` ["thead"+			       ,"colgroup"]		= True+"tbody"	`closes` t  | t `elem` ["tbody"+			       ,"tfoot"+			       ,"thead"+			       ,"colgroup"]		= True+t	`closes` t2 | t `elem` ["h1","h2","h3"+			       ,"h4","h5","h6"+			       ,"dl","ol","ul"+			       ,"table"+			       ,"div","p"+			       ]+		      &&+                      t2 `elem` ["h1","h2","h3"+				,"h4","h5","h6"+				,"p"			-- not "div"+				]			= True+_	`closes` _					= False++-- ------------------------------------------------------------+--+-- XHTML entities++substHtmlEntities	:: XmlFilter+substHtmlEntities+    = choice [ isXEntityRef	:-> substEntity+	     , isXTag		:-> processAttr (processChildren substHtmlEntities)+	     , this		:-> this+	     ]+      where+      substEntity t'@(NTree (XEntityRef en) _)+	  = case (lookup en xhtmlEntities) of+	    Just i+		-> [mkXCharRefTree i]+	    Nothing+		-> xwarn ("no XHTML entity found for reference: \"&" ++ en ++ ";\"")+		   +++		   (xmlTreesToText [t'])++      substEntity _+	  = error "substHtmlEntities: illegal argument"++xhtmlEntities	:: [(String, Int)]+xhtmlEntities	= xmlEntities+		  +++		  [ ("nbsp",	160)+		  , ("iexcl",	161)+		  , ("cent",	162)+		  , ("pound",	163)+		  , ("curren",	164)+		  , ("yen",	165)+		  , ("brvbar",	166)+		  , ("sect",	167)+		  , ("uml",	168)+		  , ("copy",	169)+		  , ("ordf",	170)+		  , ("laquo",	171)+		  , ("not",	172)+		  , ("shy",	173)+		  , ("reg",	174)+		  , ("macr",	175)+		  , ("deg",	176)+		  , ("plusmn",	177)+		  , ("sup2",	178)+		  , ("sup3",	179)+		  , ("acute",	180)+		  , ("micro",	181)+		  , ("para",	182)+		  , ("middot",	183)+		  , ("cedil",	184)+		  , ("sup1",	185)+		  , ("ordm",	186)+		  , ("raquo",	187)+		  , ("frac14",	188)+		  , ("frac12",	189)+		  , ("frac34",	190)+		  , ("iquest",	191)+		  , ("Agrave",	192)+		  , ("Aacute",	193)+		  , ("Acirc",	194)+		  , ("Atilde",	195)+		  , ("Auml",	196)+		  , ("Aring",	197)+		  , ("AElig",	198)+		  , ("Ccedil",	199)+		  , ("Egrave",	200)+		  , ("Eacute",	201)+		  , ("Ecirc",	202)+		  , ("Euml",	203)+		  , ("Igrave",	204)+		  , ("Iacute",	205)+		  , ("Icirc",	206)+		  , ("Iuml",	207)+		  , ("ETH",	208)+		  , ("Ntilde",	209)+		  , ("Ograve",	210)+		  , ("Oacute",	211)+		  , ("Ocirc",	212)+		  , ("Otilde",	213)+		  , ("Ouml",	214)+		  , ("times",	215)+		  , ("Oslash",	216)+		  , ("Ugrave",	217)+		  , ("Uacute",	218)+		  , ("Ucirc",	219)+		  , ("Uuml",	220)+		  , ("Yacute",	221)+		  , ("THORN",	222)+		  , ("szlig",	223)+		  , ("agrave",	224)+		  , ("aacute",	225)+		  , ("acirc",	226)+		  , ("atilde",	227)+		  , ("auml",	228)+		  , ("aring",	229)+		  , ("aelig",	230)+		  , ("ccedil",	231)+		  , ("egrave",	232)+		  , ("eacute",	233)+		  , ("ecirc",	234)+		  , ("euml",	235)+		  , ("igrave",	236)+		  , ("iacute",	237)+		  , ("icirc",	238)+		  , ("iuml",	239)+		  , ("eth",	240)+		  , ("ntilde",	241)+		  , ("ograve",	242)+		  , ("oacute",	243)+		  , ("ocirc",	244)+		  , ("otilde",	245)+		  , ("ouml",	246)+		  , ("divide",	247)+		  , ("oslash",	248)+		  , ("ugrave",	249)+		  , ("uacute",	250)+		  , ("ucirc",	251)+		  , ("uuml",	252)+		  , ("yacute",	253)+		  , ("thorn",	254)+		  , ("yuml",	255)++		  , ("OElig",	338)+		  , ("oelig",	339)+		  , ("Scaron",	352)+		  , ("scaron",	353)+		  , ("Yuml",	376)+		  , ("circ",	710)+		  , ("tilde",	732)++		  , ("ensp",	8194)+		  , ("emsp",	8195)+		  , ("thinsp",	8201)+		  , ("zwnj",	8204)+		  , ("zwj",	8205)+		  , ("lrm",	8206)+		  , ("rlm",	8207)+		  , ("ndash",	8211)+		  , ("mdash",	8212)+		  , ("lsquo",	8216)+		  , ("rsquo",	8217)+		  , ("sbquo",	8218)+		  , ("ldquo",	8220)+		  , ("rdquo",	8221)+		  , ("bdquo",	8222)+		  , ("dagger",	8224)+		  , ("Dagger",	8225)+		  , ("permil",	8240)+		  , ("lsaquo",	8249)+		  , ("rsaquo",	8250)+		  , ("euro",	8364)++		  , ("fnof",	402)+		  , ("Alpha",	913)+		  , ("Beta",	914)+		  , ("Gamma",	915)+		  , ("Delta",	916)+		  , ("Epsilon",	917)+		  , ("Zeta",	918)+		  , ("Eta",	919)+		  , ("Theta",	920)+		  , ("Iota",	921)+		  , ("Kappa",	922)+		  , ("Lambda",	923)+		  , ("Mu",	924)+		  , ("Nu",	925)+		  , ("Xi",	926)+		  , ("Omicron",	927)+		  , ("Pi",	928)+		  , ("Rho",	929)+		  , ("Sigma",	931)+		  , ("Tau",	932)+		  , ("Upsilon",	933)+		  , ("Phi",	934)+		  , ("Chi",	935)+		  , ("Psi",	936)+		  , ("Omega",	937)+		  , ("alpha",	945)+		  , ("beta",	946)+		  , ("gamma",	947)+		  , ("delta",	948)+		  , ("epsilon",	949)+		  , ("zeta",	950)+		  , ("eta",	951)+		  , ("theta",	952)+		  , ("iota",	953)+		  , ("kappa",	954)+		  , ("lambda",	955)+		  , ("mu",	956)+		  , ("nu",	957)+		  , ("xi",	958)+		  , ("omicron",	959)+		  , ("pi",	960)+		  , ("rho",	961)+		  , ("sigmaf",	962)+		  , ("sigma",	963)+		  , ("tau",	964)+		  , ("upsilon",	965)+		  , ("phi",	966)+		  , ("chi",	967)+		  , ("psi",	968)+		  , ("omega",	969)+		  , ("thetasym",	977)+		  , ("upsih",	978)+		  , ("piv",	982)+		  , ("bull",	8226)+		  , ("hellip",	8230)+		  , ("prime",	8242)+		  , ("Prime",	8243)+		  , ("oline",	8254)+		  , ("frasl",	8260)+		  , ("weierp",	8472)+		  , ("image",	8465)+		  , ("real",	8476)+		  , ("trade",	8482)+		  , ("alefsym",	8501)+		  , ("larr",	8592)+		  , ("uarr",	8593)+		  , ("rarr",	8594)+		  , ("darr",	8595)+		  , ("harr",	8596)+		  , ("crarr",	8629)+		  , ("lArr",	8656)+		  , ("uArr",	8657)+		  , ("rArr",	8658)+		  , ("dArr",	8659)+		  , ("hArr",	8660)+		  , ("forall",	8704)+		  , ("part",	8706)+		  , ("exist",	8707)+		  , ("empty",	8709)+		  , ("nabla",	8711)+		  , ("isin",	8712)+		  , ("notin",	8713)+		  , ("ni",	8715)+		  , ("prod",	8719)+		  , ("sum",	8721)+		  , ("minus",	8722)+		  , ("lowast",	8727)+		  , ("radic",	8730)+		  , ("prop",	8733)+		  , ("infin",	8734)+		  , ("ang",	8736)+		  , ("and",	8743)+		  , ("or",	8744)+		  , ("cap",	8745)+		  , ("cup",	8746)+		  , ("int",	8747)+		  , ("there4",	8756)+		  , ("sim",	8764)+		  , ("cong",	8773)+		  , ("asymp",	8776)+		  , ("ne",	8800)+		  , ("equiv",	8801)+		  , ("le",	8804)+		  , ("ge",	8805)+		  , ("sub",	8834)+		  , ("sup",	8835)+		  , ("nsub",	8836)+		  , ("sube",	8838)+		  , ("supe",	8839)+		  , ("oplus",	8853)+		  , ("otimes",	8855)+		  , ("perp",	8869)+		  , ("sdot",	8901)+		  , ("lceil",	8968)+		  , ("rceil",	8969)+		  , ("lfloor",	8970)+		  , ("rfloor",	8971)+		  , ("lang",	9001)+		  , ("rang",	9002)+		  , ("loz",	9674)+		  , ("spades",	9824)+		  , ("clubs",	9827)+		  , ("hearts",	9829)+		  , ("diams",	9830)+		  ]
+ src/Text/XML/HXT/Parser/HtmlParser.hs view
@@ -0,0 +1,132 @@+-- |+-- HTML Parser+--+-- Version : $Id: HtmlParser.hs,v 1.4 2006/11/12 14:53:00 hxml Exp $+--+-- This parser tries to interprete everything as HTML+-- no errors are emitted during parsing. If something looks+-- weired, warning messages are inserted in the document tree+--+-- module contains state filter for easy parsing and error handling+-- real work is done in 'Text.XML.HXT.Parser.HtmlParsec'++module Text.XML.HXT.Parser.HtmlParser+    ( getHtmlDoc+    , parseHtmlDoc+    , runHtmlParser+    , module Text.XML.HXT.Parser.HtmlParsec+    )++where++import Text.XML.HXT.DOM.XmlTree+import Text.XML.HXT.DOM.XmlState+import Text.XML.HXT.Parser.HtmlParsec++import Text.XML.HXT.Parser.XmlInput+    ( getXmlContents+    )++import Text.XML.HXT.Parser.XmlOutput+    ( traceTree+    , traceSource+    , traceMsg+    )++-- ------------------------------------------------------------++-- |+-- read a document and parse it with 'parseHtmlDoc'. The main entry point of this module+--+-- The input tree must be a root tree like in '	Text.XML.HXT.Parser.MainFunctions.getXmlDoc'. The content is read with 'Text.XML.HXT.Parser.XmlInput.getXmlContents',+-- is parsed with 'parseHtmlDoc' and canonicalized (char refs are substituted in content and attributes,+-- but comment is preserved)+--+-- see also : 'Text.XML.HXT.Parser.DTDProcessing.getWellformedDoc'++getHtmlDoc	:: XmlStateFilter state+getHtmlDoc+    = setSystemParams+      .>>+      getXmlContents+      .>>+      parseHtmlDoc++-- | The HTML parsing filter+--+-- The input is parsed with 'runHtmlParser', everything is interpreted as HTML,+-- if errors ocuur, the parser will try to do some meaningfull action and continues+-- parsing. Afterwards the entitiy references for defined for XHTML are resovled,+-- any unresolved reference is transformed into plain text.+--+-- Error messages+-- during parsing and entity resolving are added as warning nodes into the resulting tree.+--+-- The warnings are issued, if the 1. parameter noWarnings is set to True,+-- afterwards all are removed from the resulting tree.++parseHtmlDoc	:: XmlStateFilter a+parseHtmlDoc+    = parseDoc+      `whenM` ( isRoot .> getChildren .> isXText )+      where+      parseDoc t'+	  = ( traceMsg 2 ("parseHtmlDoc: parse HTML document " ++ show loc)+	      .>>+	      runHtmlParser+	      .>>+	      liftMf (processTopDown substHtmlEntities)+	      .>>+	      removeWarnings+	      .>>+	      traceTree+	      .>>+	      traceSource+              ) $ t'+	  where+	  loc    = valueOf a_source t'			-- get document source uri++      removeWarnings	:: XmlStateFilter a+      removeWarnings t'+	  = let+	    noWarnings  = not (satisfies (hasOption a_issue_warnings) t')+	    selWarnings = deep+			  ( choice [ isWarning :-> this+				   , isXTag    :-> (getAttrl .> selWarnings)+				   ]+			  )+	    remWarnings = processTopDown+			  ( choice [ isWarning :-> none+				   , isXTag    :-> (processAttrl (remWarnings $$))+				   , this      :-> this+				   ]+			  )+	    warnings = selWarnings t'+	    in do +	       if null warnings+		  then thisM t'+		  else do+		       if noWarnings+			  then return []+			  else do+			       issueError $$< warnings+		       return (remWarnings t')++-- | The pure HTML parser, usually called via 'parseHtmlDoc'.+--++runHtmlParser	:: XmlStateFilter a+runHtmlParser t+    = if null errs+      then do+	   return (replaceChildren res t)+      else do+	   issueError $$< errs+	   return (setStatus c_err "parsing HTML" t)+      where+      res  = getChildren .> parseHtmlText loc $ t+      errs = isXError .> neg isWarning $$ res+      loc  = valueOf a_source t+++-- ------------------------------------------------------------
+ src/Text/XML/HXT/Parser/MainFunctions.hs view
@@ -0,0 +1,458 @@+-- |+-- Simple parse functions.+--+-- Version : $Id: MainFunctions.hs,v 1.2 2004/11/20 16:53:15 hxml Exp $+--+--+-- the main building blocks for an application.+-- this module exports complex filters and functions for+-- common tasks for input and parsing, output and option handling.+--++module Text.XML.HXT.Parser.MainFunctions+    ( getXmlDocument+    , putXmlDocument++    , parseDocument+    , writeDocument+    )+where++import Text.XML.HXT.DOM.XmlTree+import Text.XML.HXT.DOM.XmlState+import Text.XML.HXT.Parser.HtmlParser+import Text.XML.HXT.Parser.XmlInput+import Text.XML.HXT.Parser.XmlOutput+import Text.XML.HXT.Parser.DTDProcessing+import Text.XML.HXT.Validator.Validation+import Text.XML.HXT.DOM.EditFilters+import Text.XML.HXT.DOM.Namespace++import System.IO++-- ------------------------------------------------------------++-- |+-- convenient function for reading a XML document without+-- dealing with state monads, error messages collection and other details+--+-- getXmlDocument calls 'parseDocument' with the list of parsing options+-- and an url or filename as document source.+--+-- result is a triple+--+-- * the resulting document tree with a root node containing all+--   meta info about the document (options, status info, http header, ...)+--+-- - the list of errors and warnings+--+-- - the error level: one of 'c_ok', 'c_warn', 'c_err', 'c_fatal'+--+-- example for input (see also example in 'putXmlDocument' and example in 'writeDocument')+--+-- > main :: IO ()+-- > main+-- >   = do+-- >     (res, errs, rc) <- getXmlDocument [] "test.xml"+-- >     if rc >= c_err+-- >       then issueErrors errs+-- >       else processTree res+-- >+-- > issueErrors :: XmlTrees -> IO ()+-- >+-- > processTree :: XmlTree  -> IO ()+--+-- for options see 'parseDocument', 'a_collect_errors' is set implicitly++getXmlDocument	:: Attributes -> String -> IO (XmlTree, XmlTrees, Int)+getXmlDocument options url+    = do+      let options' = [ (a_collect_errors, v_1)		-- collect errors+		     , (a_issue_errors,   v_0)		-- but don't issue+		     ]					-- can be overwritten by supporting other values in options+	             +++		     options+		     +++		     [ (a_source, url)			-- set the source url+		     ]+      res <- run' $ parseDocument options' emptyRoot+      let root = head res+      let errs = tail res+      let elvl = intValueOf a_status root+      return (root, errs, elvl)+++-- |+-- the inverse operation to 'getXmlDocument'+--+-- writes a complete document tree to a file, writing can be+-- controlled by options, the real work is done with filter 'writeDocument'.+-- useful options are the options of 'writeDocument'.+--+-- result is a pair: 1.part is a list of error messages, 2. part is the return code,+-- the status info of the write filter+--+-- this filter is useful, when processing XML in an arbitray context in the IO monad+--+-- an example main program for such an application is:+--+-- > main :: IO ()+-- > main+-- >   = do+-- >     (input, readErrs, rc) <- getXmlDocument [...] "test.xml"+-- >     if rc >= c_err+-- >       then issueErrors readErrs+-- >       else processTree input+-- >+-- > processTree :: XmlTree -> IO ()+-- > processTree t+-- >   = let res = computeNewTree input+-- >     in do+-- >        (writeErrs, rc2) <- putXmlDocument [...] "out.xml" res+-- >        if rc2 >= c_err+-- >          then issueErrors writeErrs+-- >          else return ()+-- >+-- > issueErrors :: XmlTrees -> IO ()+-- >+-- > computeNewTree :: XmlTree -> XmlTree+++putXmlDocument	:: Attributes -> String -> XmlTree -> IO (XmlTrees, Int)+putXmlDocument options fileName t+    = do+      let options' = [ (a_collect_errors, v_1)		-- collect errors+		     , (a_issue_errors,   v_0)		-- but don't issue+		     ]					-- can be overwritten by supporting other values in options+	             +++		     options+		     +++		     [ (a_output_file, fileName)	-- set the source url+		     ]+      res <- run' $ writeDocument options' t+      let root = head res+      let errs = tail res+      let elvl = intValueOf a_status root+      return (errs, elvl)++-- ------------------------------------------------------------++-- |+-- the main parsing filter+--+-- this filter can be configured by an option list, a list of+-- option name, option value pairs.+-- the input tree must be a possibly empty document root tree.+-- all the options are stored as attributes in this root node to control processing.+--+-- available options:+--+-- * 'a_parse_html': use HTML parser, else use XML parser (default)+--+-- - 'a_validate' : validate document (default), else skip validation+--+-- - 'a_check_namespaces' : check namespaces, else skip namespace processing (default)+--+-- - 'a_canonicalize' : canonicalize document (default), else skip canonicalization+--+-- - 'a_preserve_comment' : preserve comments during canonicalization, else remove comments (default)+--+-- - 'a_remove_whitespace' : remove all whitespace, used for document indentation, else skip this step (default)+--+-- - 'a_indent' : indent document by inserting whitespace, else skip this step (default)+--+-- - 'a_issue_warnings' : issue warnings, when parsing HTML (default), else ignore HTML parser warnings+--+-- - 'a_issue_errors' : issue all error messages on stderr (default), or ignore all error messages+--+-- - 'a_collect_errors' : all error messages are collected during processing and appended to the result document+-- 			  for further processing within the calling modules+--+-- - 'a_trace' : trace level: values: 0 -4+--+-- - 'a_proxy' : proxy for http access, e.g. www-cache:3128+--+-- - 'a_use_curl' : for http access via external programm curl, default is native HTTP access+--+-- - 'a_options_curl' : more options for external program curl+--+-- - 'a_source' : the document source url+--+-- - 'a_encoding' : default document encoding ('utf8', 'isoLatin1', 'usAscii', ...)+--+-- examples:+--+-- > parseDocument [ (a_source,   "test.xml")+-- >               , (a_validate, "0")+-- >               , (a_encoding, isoLatin1)+-- >               ] emptyRoot+--+-- reads document \"test.xml\" without validation and default encoding 'isoLatin1'+--+-- > parseDocument [ (a_source,         "http://www.haskell.org/")+-- >               , (a_parse_html,     "1")+-- >               , (a_proxy,          "www-cache:3128")+-- >               , (a_curl,           "1")+-- >               , (a_issue_warnings, "0")+-- >               ] emptyRoot+--+-- reads Haskell homepage with HTML parser ignoring any warnings and with http access via external program curl and proxy \"www-cache\" at port 3128+--+-- > parseDocument [ (a_source,            "http://www.w3c.org/")+-- >               , (a_parse_html,        "0")                       -- default+-- >               , (a_validate,          "1")                       -- default+-- >               , (a_check_namespace,   "1")+-- >               , (a_remove_whitespace, "1")+-- >               , (a_trace,             "2")+-- >               ] emptyRoot+--+-- read w3c home page, validate and chech namespaces, remove whitespace between tags, trace activities with level 2+--+-- > parseDocument [ (a_source,   "test.xml")+-- >               , (a_validate,        "1")+-- >               , (a_check_namespace, "1")+-- >               , (a_collect_errors,  "1")+-- >               , (a_issue_errors,    "0")+-- >               ] emptyRoot+--+-- reads file \"test.xml\", validates it, checks namespaces, does not issue any erros+-- but collects errors and appends the list of errors to the single element list for the document.+-- this enables the calling application to define own error handlers.++parseDocument	:: Attributes -> XmlStateFilter state+parseDocument userOptions+    = processDocument userOptions defaultOptions+      ( traceMsg 1 "parseDocument: options added, start processing"+	.>>+	traceTree+	.>>+	getXmlContents					-- get the content as text+	.>>+	choiceM						-- select parser+	[ hasOption a_parse_html+		:-> parseHtmlDoc			-- parse everything as HTML+	, this+		:-> checkWellformedDoc			-- parse XML and process enitities+	            .>>+                    ( getValidatedDoc			-- validate+		      `whenM`+		      hasOption a_validate+		    )+	]+	.>>+	( propagateAndValidateNamespaces			-- namespace processing+	  `whenM`+	  hasOption a_check_namespaces+	)+	.>>+	liftMf						-- canonicalization+	( choice+	  [ hasOption a_preserve_comment		-- don't remove comments (in XPath required)+ 	  	:-> canonicalizeForXPath+	  , this+		:-> canonicalizeAllNodes		-- do normal canonicaliazion+	  ]+	  `when`+	  hasOption a_canonicalize			-- caconicalization can be switched off+	)+	.>>+	liftMf+	( removeDocWhiteSpace				-- remove all whitespace between tags+	  `when`+	  hasOption a_remove_whitespace+	)+	.>>+	traceMsg 1 "parseDocument: document processed"	-- trace output+	.>>+	traceSource+	.>>+	traceTree+      )+    where+    defaultOptions+	= [ ( a_parse_html,		v_0 )+	  , ( a_validate,		v_1 )+	  , ( a_issue_errors,		v_1 )+	  , ( a_issue_warnings,		v_1 )+	  , ( a_check_namespaces,	v_0 )+	  , ( a_canonicalize,		v_1 )+	  , ( a_preserve_comment,	v_0 )+	  , ( a_remove_whitespace,	v_0 )+	  ]++-- ------------------------------------------------------------++addOptions		:: Attributes -> XmlFilter+addOptions+    = seqF . map (\ (n,v) -> addAttr n v )++addDefaultOptions	:: Attributes -> XmlFilter+addDefaultOptions+    = seqF . map (\ (n,v) -> addAttr n v `whenNot` hasAttr n)++-- ------------------------------------------------------------++-- |+-- the main filter for writing documents+--+-- this filter can be configured by an option list like 'getXmlDocument'+--+-- available options are+--+-- * 'a_indent' : indent document for readability, (default: no indentation)+--+-- - 'a_remove_whitespace' : remove all redundant whitespace for shorten text (default: no removal)+--+-- - 'a_output_file' : destination file for document, default is \"-\" for stdout+--+-- - 'a_output_encoding' : encoding of document, default is 'a_encoding' or 'utf8'+--+-- - 'a_output_xml' : (default) issue XML: quote special XML chars \>,\<,\",\',&+--                    add XML processing instruction+--                    and encode document with respect to 'a_output_encoding',+--                    if explizitly switched of, the plain text is issued, this is useful+--                    for non XML output, e.g. generated Haskell code, LaTex, Java, ...+--+-- - 'a_show_tree' : show tree representation of document (for debugging)+--+-- - 'a_show_haskell' : show Haskell representaion of document (for debugging)+--+-- - 'a_issue_errors', 'a_collect_errors' : see 'parseDocument'+--+--  a typical main program running in the XmlState monad+--  has the following structure:+--+-- >+-- > main :: IO ()+-- > main+-- >     = do+-- >       argv <- getArgs                                              -- get the commandline arguments+-- >       (inp, outp, options) <- cmdlineOpts argv                     -- and evaluate them, return a key-value list+-- >                                                                    -- and input and output+-- >       res  <- run' $ application inp outp options $ emptyRoot      -- run the application+-- > +-- >       exitWith (if null res+-- >                 then ExitFailure (-1)+-- >                 else exitSuccess+-- >                )+-- >+-- > application :: String -> String -> Attributes -> XmlStateFilter ()+-- > application inp outp al+-- >   = parseDocument (al ++ [(a_source, inp)])                        -- set options and source+-- >     .>>                                                            -- and parse document+-- >     processDocument                                                -- the hard work+-- >     .>>+-- >     writeDocument [(a_output_file, outp)]                          -- issue results+-- >     .>>+-- >     checkStatus                                                    -- check errors+-- >+++writeDocument	:: Attributes -> XmlStateFilter state+writeDocument userOptions+    = processDocument userOptions defaultOptions+      ( traceMsg 1 "writeDocument: options added, start processing"+	.>>+	liftMf+	( choice+	  [ hasOption a_indent			:-> indentDoc			-- document indentation+	  , hasOption a_remove_whitespace	:-> removeDocWhiteSpace		-- remove all whitespace between tags+	  , this				:-> this+	  ]+	)+	.>>+	liftMf+	( choice+	  [ hasOption a_show_tree	:-> treeRepOfXmlDoc+	  , hasOption a_show_haskell	:-> haskellRepOfXmlDoc+	  , hasOption a_output_xml	:-> ( escapeXmlDoc		-- escape lt, gt, amp, quot, +					      .>+					      addXmlPiToDoc		-- add <?xml ... > pi+					      .>+					      unparseXmlDoc		-- convert doc into text with respect to output encoding+					    )+	  , this			:-> this+	  ]+	)+	.>>+	writeXmlDoc+	.>>+	traceMsg 1 "writeDocument: finished"+      )+    where+    defaultOptions+	= [ ( a_output_file,		"-" )+	  , ( a_indent,			v_0 )+	  , ( a_remove_whitespace,	v_0 )+	  , ( a_output_xml,		v_1 )+	  , ( a_output_encoding,       utf8 )+	  , ( a_show_tree,		v_0 )+	  , ( a_show_haskell,		v_0 )+	  ]++writeXmlDoc	:: XmlStateFilter state+writeXmlDoc t'+    = put t'+    where+    put+	| null fn || fn == "-"	= putXmlDoc+	| otherwise		= putXmlDocToFile fn++    fn = xshow . getValue a_output_file $ t'+++-- ------------------------------------------------------------+--++-- |+-- wrapper filter for running a monadic filter+-- controlled by common options+--+-- input tree must be a complete document+-- parameters and default parameters can be used to contol+-- the filer and common tasks like error message handling++processDocument	:: Attributes -> Attributes -> XmlStateFilter state -> XmlStateFilter state+processDocument userOptions defaultOptions processFilter+    = liftMf isRoot+      .>>+      liftMf (addOptions userOptions+	      .>+	      addOptions [(a_status, show c_ok)]+	     )+      .>>+      liftMf (addDefaultOptions defaultOptions)+      .>>+      setSystemParams							-- store options in system state+      .>>+      choiceM+      [ hasOption a_propagate_errors					-- error handling is set by calling environment+		:-> thisM++      , hasOption a_collect_errors+	.>+	hasOption a_issue_errors+		:-> performAction (\ _ -> setSysErrorHandler (errorMsgLogging.>> errorMsgToStderr)	)++      , hasOption a_collect_errors+		:-> performAction (\ _ -> setSysErrorHandler errorMsgLogging	)++      , hasOption a_issue_errors+		:-> performAction (\ _ -> setSysErrorHandler errorMsgToStderr	)++      , this+		:-> performAction (\ _ -> setSysErrorHandler noneM		)+      ]+      .>>+      processFilter+      .>>+      ( thisM+        +++>>+	( hasOption a_collect_errors+          `guardsM`+	  getErrorMsg+	)+      )++-- ------------------------------------------------------------+
+ src/Text/XML/HXT/Parser/ProtocolHandler.hs view
@@ -0,0 +1,115 @@+-- ------------------------------------------------------------+--+-- protocol handler functions+-- configuration file+-- real handler is generated with cpp+--+-- Version : $Id: ProtocolHandler.hs,v 1.4 2006/03/03 14:20:17 hxml Exp $++module Text.XML.HXT.Parser.ProtocolHandler+    ( getProtocolHandler+    )++where++import Text.XML.HXT.DOM.XmlState++-- ------------------------------------------------------------+--+-- file io and network++import Data.Maybe+    ( fromMaybe+    )++import Network.URI+    ( URI+    , uriScheme+    )++import Text.XML.HXT.Parser.ProtocolHandlerFile+    ( getFileContents+    )+++++++++++++++++++import Text.XML.HXT.Parser.ProtocolHandlerHttpNativeOrCurl+    ( getHttpContentsNativeOrWithCurl+    )++++++-- ------------------------------------------------------------+--++getProtocolHandler	:: String -> (URI -> XmlStateFilter a)+getProtocolHandler proto+    = fromMaybe getUnsupported handler+      where+      handler  = lookup proto protocolHandler++--+-- the fall back protocol handler++getUnsupported	:: URI -> XmlStateFilter a+getUnsupported uri+    = addFatal ( "unsupported protocol "+		 ++ show (uriScheme uri)+		 ++ " in URI: "+		 ++ show uri+	       )++-- ------------------------------------------------------------+--+-- the table of potocol handlers+-- looked up in getProtocolHandler++protocolHandler	:: [(String, URI -> XmlStateFilter a)]+protocolHandler+    = [ ("file", getFileContents)+      , ("http",++++++++++++++++++	 getHttpContentsNativeOrWithCurl+++++	)+      ]++-- ------------------------------------------------------------++
+ src/Text/XML/HXT/Parser/ProtocolHandlerFile.hs view
@@ -0,0 +1,79 @@+-- ------------------------------------------------------------+--+-- protocol handler function for file protocol+-- implemented as filer+--+-- Version : $Id: ProtocolHandlerFile.hs,v 1.5 2006/03/03 14:20:17 hxml Exp $++module Text.XML.HXT.Parser.ProtocolHandlerFile+    ( getFileContents+    )++where++import Text.XML.HXT.DOM.XmlTree++import Text.XML.HXT.DOM.XmlState++import System.Directory+    ( doesFileExist+    , getPermissions+    , readable+    )++import Network.URI+    ( URI+    , unEscapeString+    , uriPath+    )++import System.IO+import System.IO.Error++-- ------------------------------------------------------------+--+-- the file protocol handler++getFileContents	:: URI -> XmlStateFilter a+getFileContents uri n+    = do+      trace 2 ("getFileContent: reading file " ++ show source)+      exists <- io $ doesFileExist source+      if exists+	 then do+	      perm <- io $ getPermissions source+	      if readable perm+		 then do+		      h <- io $ try ( openFile source ReadMode )+		      case h of+			     Left e+				 -> readErr ( "system error when reading file "+					      ++ show source+					      ++ ": "+					      ++ ioeGetErrorString e+					    )+			     Right h'+				 -> do+				    c <- io $ hGetContents h'+				    return ( ( addAttrInt transferStatus 200+					       .>+					       addAttr transferMessage "OK"+					       .>+					       replaceChildren (xtext c)+					     ) n+					   )++		 else readErr ("file " ++ show source ++ " not readable")+         else readErr ("file " ++ show source ++ " not found")+    where+    source	= fileUriPath . unEscapeString . uriPath $ uri+    readErr msg	= addFatal msg n++    -- remove leading / if file starts with windows drive letter, e.g. /c:/windows -> c:/windows+    fileUriPath ('/' : file@(d : ':' : _more))+	| d `elem` ['A'..'Z'] || d `elem` ['a'..'z']+	    = file+    fileUriPath file+	= file++-- ------------------------------------------------------------
+ src/Text/XML/HXT/Parser/ProtocolHandlerHttpCurl.hs view
@@ -0,0 +1,194 @@+-- ------------------------------------------------------------+--+-- protocol handler functions for native http access+--+-- Version : $Id: ProtocolHandlerHttpCurl.hs,v 1.3 2005/04/14 12:52:53 hxml Exp $++module Text.XML.HXT.Parser.ProtocolHandlerHttpCurl+    ( getHttpContentsWithCurl+    )++where++import Text.XML.HXT.DOM.XmlTree++import Text.XML.HXT.DOM.XmlState++import Text.XML.HXT.Parser.ProtocolHandlerUtil+    ( parseContentType+    )++import Text.ParserCombinators.Parsec+    ( Parser+    , parse+    , anyChar+    , char+    , digit+    , getInput+    , many1+    , manyTill+    , spaces+    , string+    , (<|>)+    )++import qualified Text.ParserCombinators.Parsec+    ( try+    )++import Network.URI+    ( URI+    )++import System.PipeOpen+    ( popen+    )++import Data.Char+    ( toLower+    )++-- ------------------------------------------------------------+--+-- the http protocol handler implemented by calling external program curl++getHttpContentsWithCurl	:: URI -> XmlStateFilter a+getHttpContentsWithCurl uri n+    = do+      trace 2 ( "getHttpContentWithCurl: reading from URL " ++ show uri )++      proxy       <- getSysParam a_proxy+      curlOptions <- getSysParam a_options_curl++      let allArgs = args ++ proxyArgs proxy ++ words curlOptions++      trace 4 ( "getHttpContentWithCurl: running " ++ show (unwords (cmd : allArgs)) )++      (res, errs, rc) <- io $ popen cmd allArgs++      trace 4 ( "getHttpContentWithCurl: PID:    " ++ show rc   )+      trace 4 ( "getHttpContentWithCurl: stdin:  " ++ show res  )+      trace 4 ( "getHttpContentWithCurl: stderr: " ++ show errs )++      if rc /= 0+	 then addFatal ( "http error when requesting URI (rc=" ++ show rc ++ ") "+			 ++ show uri+			 ++ ": "+			 ++ errs+		       ) n+	 else let+	      (st, al, contents) = parseResponse res+	      in+	      liftMf ( addAttrl (const al)+		       .>+		       replaceChildren (xtext contents)+		     )+	      .>> ( if st >= 200 && st < 300+		    then thisM+		    else+		    addFatal ( "http error when accessing URI "+			       ++ show uri+			       ++ ": "+			       ++ show st+			       ++ " "+			       ++ (valueOf transferMessage $ newRoot al)+			     )+		  )+	      $ n+    where+    cmd  = "curl"+    args = [ "--silent"+	   , "--show-error"+	   , "--dump-header", "-"+	   , show uri+	   ]+    proxyArgs ""+	= []+    proxyArgs prx+	= [ "--proxy", prx ]++parseResponse	:: String -> (Int, XmlTrees, String)+parseResponse inp+    = case (parse parseHttpResponse "HTTP Header" inp) of+      Right res -> res+      Left  _   -> (999, xattr transferMessage "illegal HTTP response", inp)++-- ------------------------------------------------------------+--+-- parsers for HTTP response++parseHttpResponse		:: Parser (Int, XmlTrees, String)+parseHttpResponse+    = do+      allResponses <- many1+		      ( do+			(rc, rh) <- parseResp+			rhs      <- parseHeaders+			return (rc, rh, rhs)+		      )+      let (rc, rh, rhs) = last allResponses+      content  <- getInput+      return (rc, rh ++ rhs, content)+    where++    crlf		:: Parser ()+    crlf+	= do+	  ( Text.ParserCombinators.Parsec.try (string "\r\n") <|> string "\n" )+	  return ()++    parseResp		:: Parser (Int, XmlTrees)+    parseResp+	= do+	  vers <- ( do+		    http <- string "HTTP/"+		    mav <- many1 digit+		    char '.'+		    miv <- many1 digit+		    return (http ++ mav ++ "." ++ miv)+		  )+	  spaces+	  ds <- many1 digit+	  spaces+	  reason <- manyTill anyChar crlf+	  return ( read ds,+		   xattr transferMessage reason ++ xattr transferVersion vers+		 )++    parseHeaders	:: Parser XmlTrees+    parseHeaders+	= ( do+	    crlf+	    return []+	  )+	  <|>+	  ( do+	    header1 <- parse1Header+	    rest    <- parseHeaders+	    return $ header1 ++ rest+	  )+	  <|>+	  ( do+	    return $ xattr (httpPrefix ++ "IllegalHeaders") ""+	  )++    parse1Header	:: Parser XmlTrees+    parse1Header+	= do+	  header <- manyTill anyChar (char ':')+	  spaces+	  value  <- manyTill anyChar crlf+	  let ct = parseCT header value+	  return $ ct ++ xattr (httpPrefix ++ header) value+	where+	parseCT	:: String -> String -> XmlTrees+	parseCT h v+	    | map toLower h == "content-type"+		= ( case (parse parseContentType h v) of+		    Right res -> concatMap (uncurry xattr) res+		    Left  _   -> []+		  )+	    | otherwise+		= []++-- ------------------------------------------------------------
+ src/Text/XML/HXT/Parser/ProtocolHandlerHttpNative.hs view
@@ -0,0 +1,150 @@+-- ------------------------------------------------------------+--+-- protocol handler functions for native http access+--+-- Version : $Id: ProtocolHandlerHttpNative.hs,v 1.3 2005/04/14 12:52:53 hxml Exp $++module Text.XML.HXT.Parser.ProtocolHandlerHttpNative+    ( getHttpContentsWithHttp+    )++where++import Text.XML.HXT.DOM.XmlTree++import Text.XML.HXT.DOM.XmlState++import Text.XML.HXT.Parser.ProtocolHandlerUtil+    ( parseContentType+    )++import Text.XML.HXT.DOM.Util+    ( stringTrim+    )++import Text.ParserCombinators.Parsec+    ( parse+    )++import System.IO+import System.IO.Error++import Network.URI+    ( URI+    )++import Network.Socket+    ( withSocketsDo+    )++import Network.HTTP		-- http modules+import Network.Browser++-- ------------------------------------------------------------+--+-- the native http protocol handler++-- ------------------------------------------------------------+--+-- the http protocol handler, haskell implementation++getHttpContentsWithHttp	:: URI -> XmlStateFilter a+getHttpContentsWithHttp uri n+    = do+      traceLevel <- getTraceLevel+      trace 2 ("getHttpContent: reading from URL " ++ show uri)+      proxy <- getSysParam a_proxy+      res <- io $  try (getHttp traceLevel uri proxy)+      case res of+	       Left e+		   -> readErr ( "http error when requesting URI "+				++ show uri+				++ ": "+				++ ioeGetErrorString e+				++ " (perhaps server does not understand HTTP/1.1) "+			      )+	       Right response+		   -> let+		      al = convertResponseHeaders response+		      cs = xtext (rspBody response)+		      st = convertResponseStatus (rspCode response)+		      in+		      if st >= 200 && st < 300+			 then+			 return $ (addAttrl (const al) .> replaceChildren cs) n+			 else +			 readErr ( "http error when accessing URI "+				   ++ show (show uri)+				   ++ ": "+				   ++ show st+				   ++ " "+				   ++ rspReason response+				 )+    where+    readErr msg	= addFatal msg n++    getHttp		:: Int -> URI -> String -> IO Response+    getHttp trc' uri' proxy'+	= withSocketsDo $+	  browse ( do+		   setOutHandler (trcFct)+		   setErrHandler (trcFct)++		   setProxy' proxy'+		   (_ruri, rsp) <- request rq+		   return rsp+		 )+	where+	trcFct s+	    | trc' >= 5+		= hPutStrLn stderr ("-- (" ++ show trc' ++ ") http: " ++ s)+	    | otherwise+		= return ()++	rq = defaultGETRequest uri'+	+	setProxy' ""	= return ()+	setProxy' p	= setProxy (Proxy p Nothing)++    convertResponseStatus	:: (Int, Int, Int) -> Int+    convertResponseStatus (a, b, c)+	= 100 * a + 10 * b + c++    convertResponseHeaders	:: Response -> XmlTrees+    convertResponseHeaders r'+	= cvResponseCode (rspCode r')+	  +++	  cvResponseReason (rspReason r')+          +++	  cvResponseHeaders (rspHeaders r')+	where+	cvResponseCode	:: (Int, Int, Int) -> XmlTrees+	cvResponseCode st'+	    = xattr transferStatus (show (convertResponseStatus st'))+	      +++	      xattr transferVersion httpVersion++	cvResponseReason	:: String -> XmlTrees+	cvResponseReason r''+	    = xattr transferMessage (stringTrim r'')++	cvResponseHeaders	:: [Header] -> XmlTrees+	cvResponseHeaders+	    = concatMap cvResponseHeader++	cvResponseHeader	:: Header -> XmlTrees+	cvResponseHeader (Header name value)+	    | name == HdrContentType+		= ( case (parse parseContentType (show HdrContentType) value) of+		    Right res -> concatMap (uncurry xattr) res+		    Left  _   -> []+		  )+                  +++		  addHttpAttr+	    | otherwise+		= addHttpAttr+	    where+	    addHttpAttr = xattr (httpPrefix ++ (show name)) value+++-- ------------------------------------------------------------
+ src/Text/XML/HXT/Parser/ProtocolHandlerHttpNativeOrCurl.hs view
@@ -0,0 +1,45 @@+-- ------------------------------------------------------------+--+-- protocol handler functions for native http access+--+-- Version : $Id: ProtocolHandlerHttpNativeOrCurl.hs,v 1.1 2004/09/02 19:12:01 hxml Exp $++module Text.XML.HXT.Parser.ProtocolHandlerHttpNativeOrCurl+    ( getHttpContentsNativeOrWithCurl+    )++where++import Text.XML.HXT.DOM.XmlKeywords+    ( a_use_curl+    )++import Text.XML.HXT.DOM.XmlState++import Network.URI+    ( URI+    )++import Text.XML.HXT.Parser.ProtocolHandlerHttpNative+    ( getHttpContentsWithHttp+    )++import Text.XML.HXT.Parser.ProtocolHandlerHttpCurl+    ( getHttpContentsWithCurl+    )+++-- ------------------------------------------------------------+--+-- the http protocol handler switch for internal / external access++getHttpContentsNativeOrWithCurl		:: URI -> XmlStateFilter a+getHttpContentsNativeOrWithCurl uri n+    = do+      curl <- getSysParamInt a_use_curl 0+      ( if curl /= 0+	then getHttpContentsWithCurl+	else getHttpContentsWithHttp ) uri n+++-- ------------------------------------------------------------
+ src/Text/XML/HXT/Parser/ProtocolHandlerUtil.hs view
@@ -0,0 +1,49 @@+-- ------------------------------------------------------------+--+-- protocol handler utility functions+--+-- Version : $Id: ProtocolHandlerUtil.hs,v 1.4 2005/04/14 12:52:53 hxml Exp $++module Text.XML.HXT.Parser.ProtocolHandlerUtil+    ( parseContentType+    )++where++import Text.XML.HXT.DOM.XmlKeywords++import Text.XML.HXT.DOM.Util+    ( stringToUpper+    )++import qualified Text.ParserCombinators.Parsec as P++-- ------------------------------------------------------------+--+-- try to extract charset spec from Content-Type header+-- e.g. "text/html; charset=ISO-8859-1"++parseContentType	:: P.Parser [(String, String)]+parseContentType+    = P.try ( do+	      mimeType <- ( do+			    mt <- P.many (P.noneOf ";")+			    return [ (transferMimeType, mt) ]+			  )+	      charset  <- ( do+			    P.char ';'+			    P.many  (P.oneOf " \t'")+			    P.string "charset="+			    cs <- P.many1 P.anyChar+			    return [ (transferEncoding, stringToUpper cs) ]+			  )+	      return (mimeType ++ charset)+	    )+      P.<|>+      ( do+	mimeType <- P.many P.anyChar+	return [ (transferMimeType, mimeType) ]+      )++-- ------------------------------------------------------------+
+ src/Text/XML/HXT/Parser/XmlCharParser.hs view
@@ -0,0 +1,74 @@+-- |+-- UTF-8 character parser and simple XML token parsers+--+-- Version : $Id: XmlCharParser.hs,v 1.2 2005/05/31 16:01:12 hxml Exp $++module Text.XML.HXT.Parser.XmlCharParser+    ( xmlChar			-- xml char parsers+    , xmlNameChar+    , xmlNameStartChar+    , xmlNCNameChar+    , xmlNCNameStartChar+    , xmlLetter+    , xmlSpaceChar+    )+where++import Text.XML.HXT.DOM.Unicode+import Text.ParserCombinators.Parsec++-- ------------------------------------------------------------+--+-- Char (2.2)+--++-- |+-- parse a single Unicode character++xmlChar			:: GenParser Char state Unicode+xmlChar			= satisfy isXmlChar <?> "legal XML character"++-- |+-- parse a XML name character++xmlNameChar		:: GenParser Char state Unicode+xmlNameChar		= satisfy isXmlNameChar <?> "legal XML name character"+ +-- |+-- parse a XML name start character++xmlNameStartChar	:: GenParser Char state Unicode+xmlNameStartChar	= satisfy isXmlNameStartChar <?> "legal XML name start character"+ +-- |+-- parse a XML NCName character++xmlNCNameChar		:: GenParser Char state Unicode+xmlNCNameChar		= satisfy isXmlNCNameChar <?> "legal XML NCName character"+ +-- |+-- parse a XML NCName start character++xmlNCNameStartChar	:: GenParser Char state Unicode+xmlNCNameStartChar	= satisfy isXmlNCNameStartChar <?> "legal XML NCName start character"+ +-- |+-- parse a XML letter character++xmlLetter		:: GenParser Char state Unicode+xmlLetter		= satisfy isXmlLetter <?> "legal XML letter"++-- |+-- White Space (2.3)+--+-- end of line handling (2.11)+-- \#x0D and \#x0D\#x0A are mapped to \#x0A+-- is done in XmlInput before parsing+-- otherwise \#x0D in internal parsing, e.g. for entities would normalize,+-- would be transformed++xmlSpaceChar		:: GenParser Char state Char+xmlSpaceChar		= satisfy isXmlSpaceChar <?> "white space"++-- ------------------------------------------------------------+
+ src/Text/XML/HXT/Parser/XmlDTDParser.hs view
@@ -0,0 +1,657 @@+-- ------------------------------------------------------------++{- |+   Module     : Text.XML.HXT.Parser.XmlDTDParser+   Copyright  : Copyright (C) 2005 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: XmlDTDParser.hs,v 1.6 2005/09/02 17:09:39 hxml Exp $++   Parsec parser for DTD declarations for ELEMENT, ATTLIST, ENTITY and NOTATION declarations++-}++-- ------------------------------------------------------------++module Text.XML.HXT.Parser.XmlDTDParser+    ( parseXmlDTDdecl+    , parseXmlDTDdeclPart+    , parseXmlDTDEntityValue+    , elementDecl+    , attlistDecl+    , entityDecl+    , notationDecl+    )+where++import Data.Maybe++import Text.ParserCombinators.Parsec+import Text.ParserCombinators.Parsec.Pos++import           Text.XML.HXT.DOM.XmlTree              hiding (choice)+import           Text.XML.HXT.DOM.Util                (stringToUpper)++import qualified Text.XML.HXT.Parser.XmlTokenParser    as XT+import qualified Text.XML.HXT.Parser.XmlCharParser     as XC(xmlSpaceChar)+import qualified Text.XML.HXT.Parser.XmlDTDTokenParser as XD(dtdToken)++-----------------------------------------------------------+--+-- all parsers dealing with whitespace will be redefined+-- to handle parameter entity substitution++type LocalState	= (Int, [(Int, String, SourcePos)])++type SParser a	= GenParser Char LocalState a++initialLocalState	:: SourcePos -> LocalState+initialLocalState p	= (0, [(0, sourceName p, p)])++pushPar		:: String -> SParser ()+pushPar	n	= do+		  p <- getPosition+		  updateState (\ (i, s)	-> (i+1, (i+1, n, p) : s))+		  setPosition ( newPos (sourceName p ++ " (line " ++ show (sourceLine p) ++ ", column " ++ show (sourceColumn p) ++ ") in content of parameter entity ref %" ++ n ++ ";") 1 1)++popPar		:: SParser ()+popPar		= do+		  oldPos <- getPos+		  updateState pop+		  setPosition oldPos+		where+		pop (i, [(_, s, p)]) = (i+1, [(i+1, s, p)])	-- if param entity substitution is correctly implemented, this case does not occur+		pop (i, _t:s)        = (i, s)+                pop (_i, [])         = undefined		-- stack is never empty++getParNo	:: SParser Int+getParNo	= do+		  (_i, (top, _n, _p) : _s) <- getState+		  return top++getPos		:: SParser SourcePos+getPos		= do+		  (_i, (_top, _n, p) : _s) <- getState+		  return p++delPE	:: SParser ()+delPE	= do+	  char '\0'+	  return ()++startPE	:: SParser ()+startPE+    = do+      try ( do+	    delPE+	    n <- many1 (satisfy (/= '\0'))+	    delPE+	    pushPar n+	  )++endPE	:: SParser ()+endPE+    = do+      try (do+	   delPE+	   delPE+	   popPar+	  )++inSamePE	:: SParser a -> SParser a+inSamePE p+    = do+      i <- getParNo+      r <- p+      j <- getParNo+      if (i == j)+	 then return r+	 else fail $ "parameter entity contents does not fit into the structure of a DTD declarations"++-- ------------------------------------------------------------++xmlSpaceChar	:: SParser ()+xmlSpaceChar	= ( do+		    XC.xmlSpaceChar+		    return ()+		  )+		  <|>+		  startPE+		  <|>+		  endPE+		  <?> "white space"++skipS		:: SParser ()+skipS+    = do+      skipMany1 xmlSpaceChar+      return ()++skipS0		:: SParser ()+skipS0+    = do+      skipMany xmlSpaceChar+      return ()++name		:: SParser XmlTree+name+    = do+      n <- XT.name+      return (mkXDTDTree NAME [(a_name, n)] [])++nmtoken		:: SParser XmlTree+nmtoken+    = do+      n <- XT.nmtoken+      return (mkXDTDTree NAME [(a_name, n)] [])++-- ------------------------------------------------------------+--+-- Element Type Declarations (3.2)++elementDecl	:: SParser XmlTrees+elementDecl+    = between (try $ string "<!ELEMENT") (char '>') elementDeclBody++elementDeclBody	:: SParser XmlTrees+elementDeclBody+    = do+      skipS+      n <- XT.name+      skipS+      (al, cl) <- contentspec+      skipS0+      return [mkXDTDTree ELEMENT ((a_name, n) : al) cl]++contentspec	:: SParser (Attributes, XmlTrees)+contentspec+    = simplespec k_empty v_empty+      <|>+      simplespec k_any v_any+      <|>+      inSamePE mixed+      <|>+      inSamePE children+      <?> "content specification"+    where+    simplespec kw v+	= do+	  XT.keyword kw+	  return ([(a_type, v)], [])++-- ------------------------------------------------------------+--+-- Element Content (3.2.1)++children	:: SParser (Attributes, XmlTrees)+children+    = ( do+	(al, cl) <- choiceOrSeq+	modifier <- optOrRep+	return ([(a_type, v_children)], [mkXDTDTree CONTENT (modifier ++ al) cl])+      )+      <?> "element content"++optOrRep	:: SParser Attributes+optOrRep+    = do+      m <- option "" (XT.mkList (oneOf "?*+"))+      return [(a_modifier, m)]++choiceOrSeq	:: SParser (Attributes, XmlTrees)+choiceOrSeq+    = inSamePE $+      do+      cl <- try ( do+		  lpar+		  choiceOrSeqBody+		)+      rpar+      return cl++choiceOrSeqBody	:: SParser (Attributes, XmlTrees)+choiceOrSeqBody+    = do+      cp1 <- cp+      choiceOrSeq1 cp1+    where+    choiceOrSeq1	:: XmlTree -> SParser (Attributes, XmlTrees)+    choiceOrSeq1 c1+	= ( do+	    bar+	    c2 <- cp+	    cl <- many ( do+			 bar+			 cp+		       )+	    return ([(a_kind, v_choice)], (c1 : c2 : cl))+	  )+	  <|>+	  ( do+	    cl <- many ( do+			 comma+			 cp+		       )+	    return ([(a_kind, v_seq)], (c1 : cl))+	  )+          <?> "sequence or choice"++cp		:: SParser XmlTree+cp+    = ( do+	n <- name+	m <- optOrRep+	return ( case m of+		 [(_, "")] -> n+		 _         -> mkXDTDTree CONTENT (m ++ [(a_kind, v_seq)]) [n]+	       )+      )+      <|>+      ( do+	(al, cl) <- choiceOrSeq+	m <- optOrRep+	return (mkXDTDTree CONTENT (m ++ al) cl)+      )++-- ------------------------------------------------------------+--+-- Mixed Content (3.2.2)++mixed		:: SParser (Attributes, XmlTrees)+mixed+    = ( do+	try ( do+	      lpar+	      string k_pcdata+	    )+	nl <- many ( do+		     bar+		     name+		   )+	rpar+	if null nl+          then do+	       option ' ' (char '*')		-- (#PCDATA) or (#PCDATA)* , both are legal+	       return ( [ (a_type, v_pcdata) ]+		      , []+		      )+	  else do+	       char '*' <?> "closing parent for mixed content (\")*\")"+	       return ( [ (a_type, v_mixed) ]+		      , [ mkXDTDTree CONTENT [ (a_modifier, "*")+					     , (a_kind, v_choice)+					     ] nl+			]+		      )+      )+      <?> "mixed content"++-- ------------------------------------------------------------+--+-- Attribute-List Declarations (3.3)++attlistDecl		:: SParser XmlTrees+attlistDecl+    = between (try $ string "<!ATTLIST") (char '>') attlistDeclBody++attlistDeclBody		:: SParser XmlTrees+attlistDeclBody+    = do+      skipS+      n <- XT.name+      al <- many attDef+      skipS0+      return (map (mkDTree n) al)+    where+    mkDTree n' (al, cl)+	= mkXDTDTree ATTLIST ((a_name, n') : al) cl+    +attDef		:: SParser (Attributes, XmlTrees)+attDef+    = do+      n <- try ( do+		 skipS+		 XT.name+	       ) <?> "attribute name"+      skipS+      (t, cl) <- attType+      skipS+      d <- defaultDecl+      return (((a_value, n) : d) ++ t, cl)++attType	:: SParser (Attributes, XmlTrees)+attType+    = tokenizedOrStringType+      <|>+      enumeration+      <|>+      notationType+      <?> "attribute type"++tokenizedOrStringType	:: SParser (Attributes, XmlTrees)+tokenizedOrStringType+    = do+      n <- choice $ map XT.keyword typl+      return ([(a_type, n)], [])+      where+      typl	= [ k_cdata+		  , k_idrefs+		  , k_idref+		  , k_id+		  , k_enitity+		  , k_entities+		  , k_nmtokens+		  , k_nmtoken+		  ]++enumeration	:: SParser (Attributes, XmlTrees)+enumeration+    = do+      nl <- inSamePE (between lpar rpar (sepBy1 nmtoken bar))+      return ([(a_type, k_enumeration)], nl)++notationType	:: SParser (Attributes, XmlTrees)+notationType+    = do+      XT.keyword k_notation+      skipS+      nl <- inSamePE (between lpar rpar ( sepBy1 name bar ))+      return ([(a_type, k_notation)], nl)++defaultDecl	:: SParser Attributes+defaultDecl+    = ( do+	str <- try $ string k_required+	return [(a_kind, str)]+      )+      <|>+      ( do+	str <- try $ string k_implied+	return [(a_kind, str)]+      )+      <|>+      ( do+        l <- fixed+	v <- XT.attrValueT+	return ((a_default, xshow v) : l)+      )+      <?> "default declaration"+    where+    fixed = option [(a_kind, k_default)]+	    ( do+	      try $ string k_fixed+	      skipS+	      return [(a_kind, k_fixed)]+	    )++-- ------------------------------------------------------------+--+-- Entity Declarations (4.2)++entityDecl		:: SParser XmlTrees+entityDecl+    = between ( try $ string "<!ENTITY" ) (char '>') entityDeclBody++entityDeclBody		:: SParser XmlTrees+entityDeclBody+    = do+      skipS+      ( peDecl+	<|>+	geDecl+	<?> "entity declaration" )	-- don't move the ) to the next line++geDecl			:: SParser XmlTrees+geDecl+    = do+      n <- XT.name+      skipS+      (al, cl) <- entityDef+      skipS0+      return [mkXDTDTree ENTITY ((a_name, n) : al) cl]++entityDef		:: SParser (Attributes, XmlTrees)+entityDef+    = entityValue+      <|>+      externalEntitySpec++externalEntitySpec	:: SParser (Attributes, XmlTrees)+externalEntitySpec+    = do+      al <- externalID+      nd <- option [] nDataDecl+      return ((al ++ nd), [])++peDecl			:: SParser XmlTrees+peDecl+    = do+      char '%'+      skipS+      n <- XT.name+      skipS+      (al, cs) <- peDef+      skipS0+      return [mkXDTDTree PENTITY ((a_name, n) : al) cs]++peDef			:: SParser (Attributes, XmlTrees)+peDef+    = entityValue+      <|>+      do+      al <- externalID+      return (al, [])++entityValue	:: GenParser Char state (Attributes, XmlTrees)+entityValue+    = do+      v <- XT.entityValueT+      return ([], v)++-- ------------------------------------------------------------+--+-- External Entities (4.2.2)++externalID	:: SParser Attributes+externalID+    = ( do+	XT.keyword k_system+	skipS+	lit <- XT.systemLiteral+	return [(k_system, lit)]+      )+      <|>+      ( do+	XT.keyword k_public+	skipS+	pl <- XT.pubidLiteral+	skipS+	sl <- XT.systemLiteral+	return [ (k_system, sl)+	       , (k_public, pl) ]+      )+      <?> "SYSTEM or PUBLIC declaration"++nDataDecl	:: SParser Attributes+nDataDecl+    = do+      try ( do+	    skipS+	    XT.keyword k_ndata+	  )+      skipS+      n <- XT.name+      return [(k_ndata, n)]++-- ------------------------------------------------------------+--+-- Notation Declarations (4.7)++notationDecl		:: SParser XmlTrees+notationDecl+    = between (try $ string "<!NOTATION") (char '>' <?> "notation declaration") notationDeclBody++notationDeclBody	:: SParser XmlTrees+notationDeclBody+    = do+      skipS+      n <- XT.name+      skipS+      eid <- ( try externalID+	       <|>+	       publicID+	     )+      skipS0+      return [mkXDTDTree NOTATION ((a_name, n) : eid) []]++publicID		:: SParser Attributes+publicID+    = do+      XT.keyword k_public+      skipS+      l <- XT.pubidLiteral+      return [(k_public, l)]++-- ------------------------------------------------------------++condSectCondBody	:: SParser XmlTrees+condSectCondBody+    = do+      skipS0+      n <- XT.name+      skipS0+      let n' = stringToUpper n+      if n' `elem` [k_include, k_ignore]+	 then return (xtext  n')+	 else fail $ "INCLUDE or IGNORE expected in conditional section"++-- ------------------------------------------------------------++separator	:: Char -> SParser ()+separator c+    = do+      try ( do+	    skipS0+	    char c+	  )+      skipS0+      <?> [c]+++bar, comma, lpar, rpar	:: SParser ()++bar	= separator '|'+comma	= separator ','++lpar+    = do+      char '('+      skipS0++rpar+    = do+      skipS0+      char ')'+      return ()+++-- ------------------------------------------------------------++parseXmlDTDEntityValue	:: XmlFilter+parseXmlDTDEntityValue (NTree (XDTD PEREF al) cl)+    = ( either (xerr . (++ "\n") . show)+	       (\cl' -> if null cl'+                        then [mkXTextTree ""]+                        else cl'+	       )+	.+	parse parser source+      ) input+    where+    parser = XT.entityTokensT "%&"+    source = "value of parameter entity " ++ lookupDef "" a_peref al+    input  = xshow cl++parseXmlDTDEntityValue n+    = error ("parseXmlDTDEntityValue: illegal argument: " ++ show n)++-- ------------------------------------------------------------++parseXmlDTDdeclPart	:: XmlFilter+parseXmlDTDdeclPart n@(NTree (XDTD PEREF al) cl)+    = ( either (xerr . (++ "\n") . show)+	       (\cl' -> replaceChildren cl' n)+	.+	parse parser source+      ) input+    where+    parser = many XD.dtdToken+    source = "value of parameter entity " ++ lookupDef "" a_peref al+    input  = xshow cl++parseXmlDTDdeclPart n+    = error ("parseXmlDTDdeclPart: illegal argument: " ++ show n)++-- ------------------------------------------------------------+--+-- the main entry point++-- | parse a tokenized DTD declaration represented by a DTD tree.+-- The content is represented by the children containing text and parameter entity reference nodes.+-- The parameter entity reference nodes contain their value in the children list, consisting of text+-- and possibly again parameter entity reference nodes. This structure is build by the parameter entity+-- substitution.+-- Output is again a DTD declaration node, but this time completely parsed and ready for further DTD processing++parseXmlDTDdecl	:: XmlFilter+parseXmlDTDdecl (NTree (XDTD dtdElem al) cl)+    = ( either (xerr . (++ "\n") . show) id+	.+	runParser parser (initialLocalState pos) source+      ) input+    where+    dtdParsers+	= [ (ELEMENT,  elementDeclBody)+	  , (ATTLIST,  attlistDeclBody)+	  , (ENTITY,   entityDeclBody)+	  , (NOTATION, notationDeclBody)+	  , (CONDSECT, condSectCondBody)+	  ]+    source = lookupDef "DTD declaration" a_source al+    line   = lookupDef "1" a_line al+    column = lookupDef "1" a_column al+    pos    = newPos source (read line) (read column)+    parser = do+	     setPosition pos+	     res <- fromJust . lookup dtdElem $ dtdParsers+	     eof+	     return res+    input  = concatMap collectText cl++parseXmlDTDdecl _+    = []+++-- | collect the tokens of a DTD declaration body and build+-- a string ready for parsing. The structure of the parameter entity values+-- is stll stored in this string for checking the scope of the parameter values++collectText	:: XmlTree -> String++collectText (NTree (XText s) _)+    = s++collectText (NTree (XDTD PEREF al) cl)+    = prefixPe ++ concatMap collectText cl ++ suffixPe+      where+      delPe    = "\0"+      prefixPe = delPe ++ lookupDef "???" a_peref al ++ delPe+      suffixPe = delPe ++ delPe++collectText _+    = ""++-- ------------------------------------------------------------
+ src/Text/XML/HXT/Parser/XmlDTDTokenParser.hs view
@@ -0,0 +1,103 @@+-- ------------------------------------------------------------++{- |+   Module     : Text.XML.HXT.Parser.XmlDTDTokenParser+   Copyright  : Copyright (C) 2005 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: XmlDTDTokenParser.hs,v 1.4 2005/09/02 17:09:39 hxml Exp $++   Parsec parser for tokenizing DTD declarations for ELEMENT, ATTLIST, ENTITY and NOTATION++-}++-- ------------------------------------------------------------++module Text.XML.HXT.Parser.XmlDTDTokenParser where++import Text.ParserCombinators.Parsec+import Text.ParserCombinators.Parsec.Pos++import           Text.XML.HXT.DOM.XmlTree		hiding (choice)+import qualified Text.XML.HXT.Parser.XmlTokenParser	as XT++-- ------------------------------------------------------------+--+-- DTD declaration tokenizer++dtdDeclTokenizer	:: GenParser Char state XmlTree+dtdDeclTokenizer+    = do+      (dcl, al) <- dtdDeclStart+      content <- many1 dtdToken+      dtdDeclEnd+      return (NTree (XDTD dcl al) content)++dtdDeclStart :: GenParser Char state (DTDElem, Attributes)+dtdDeclStart+    = foldr1 (<|>) $+      map (uncurry dtdStart) $+	      [ ("ELEMENT",  ELEMENT )+	      , ("ATTLIST",  ATTLIST )+	      , ("ENTITY",   ENTITY  )+	      , ("NOTATION", NOTATION)+	      ]+    where+    dtdStart	:: String -> DTDElem -> GenParser Char state (DTDElem, Attributes)+    dtdStart dcl element+	= try ( do+		string "<!"+		string dcl+		pos <- getPosition+		return (element, [ (a_source, sourceName pos)+				 , (a_line,   show (sourceLine pos))+				 , (a_column, show (sourceColumn pos))+				 ]+		       )+	      )++dtdDeclEnd	:: GenParser Char state ()+dtdDeclEnd+    = do+      XT.gt+      return ()++dtdToken	:: GenParser Char state XmlTree+dtdToken+    = dtdChars+      <|>+      attrValue+      <|>+      try peReference		-- first try parameter entity ref %xxx;+      <|>+      percent			-- else % may be indicator for parameter entity declaration+      <?> "DTD token"++peReference	:: GenParser Char state XmlTree+peReference+    = do+      r <- XT.peReference+      return (mkXPERefTree r)++attrValue	:: GenParser Char state XmlTree+attrValue+    = do+      v <- XT.attrValue+      return (mkXTextTree v)++dtdChars	:: GenParser Char state XmlTree+dtdChars+    = do+      v <- many1 (XT.singleChar "%\"'<>[]")		-- everything except string constants, < and >, [ and ] (for cond sections)+      return (mkXTextTree v)				-- all illegal chars will be detected later during declaration parsing++percent		:: GenParser Char state XmlTree+percent+    = do+      c <- char '%'+      return (mkXTextTree [c])++-- ------------------------------------------------------------
+ src/Text/XML/HXT/Parser/XmlInput.hs view
@@ -0,0 +1,367 @@+-- ------------------------------------------------------------+--+-- input functions+-- implemented as filer+--+-- Version : $Id: XmlInput.hs,v 1.9 2006/03/03 14:20:17 hxml Exp $++module Text.XML.HXT.Parser.XmlInput+    ( getXmlContents+    , getXmlEntityContents+    , getUrlContents+    , getContentLength+    , guessDocEncoding+    , runInLocalURIContext+    , runInNewURIContext+    , getBaseURI+    , setBaseURI+    , getAbsolutURI+    , isStandaloneDocument+    )++where++import Text.XML.HXT.DOM.XmlTree++import Text.XML.HXT.DOM.XmlState++import Text.XML.HXT.Parser.DefaultURI+    ( setDefaultURI+    )++import Text.XML.HXT.Parser.XmlParser+    ( parseXmlDocEncodingSpec+    , parseXmlEntityEncodingSpec+    , removeEncodingSpec+    )++import Text.XML.HXT.DOM.Unicode+    ( getEncodingFct+    , guessEncoding+    , normalizeNL+    )++import Text.XML.HXT.Parser.XmlOutput+    ( traceTree+    , traceSource+    , traceMsg+    )++import Text.XML.HXT.Parser.ProtocolHandler+    ( getProtocolHandler+    )++-- ------------------------------------------------------------+--+-- URI manipulation++import Network.URI+    ( parseURIReference+    , relativeTo+    , uriScheme+    )++-- ------------------------------------------------------------+--+-- utilities++import Data.Maybe++-- ------------------------------------------------------------+--+-- filter for reading the content+-- input: a root node with arguments in tag attribute list+-- and without any children.++-- attribute a_source   ("source")   for input file or uri+--+-- attribute a_encoding ("encoding") for encoding scheme+--+-- attribute a_proxy    ("proxy")    for proxy tob be used in http access++getXmlContents'		:: XmlFilter -> XmlStateFilter a+getXmlContents' parseEncodingSpec+    = getContent'+      `whenM` isRoot+      where+      getContent' t'+	  = ( liftMf (setStatus c_ok "getXmlContents")+	      .>>+	      getUrlContents+	      .>>+	      liftF parseEncodingSpec+	      .>>+	      guessDocEncoding+	      .>>+	      traceMsg 1 ("getXmlContents: content read and decoded from " ++ show input')+	      .>>+	      traceTree+	      .>>+	      traceSource+	    ) t'+	    where+	    input' = valueOf a_source t'++-- |+-- filter for reading the content of a XML document+--+-- input is a root node with the source as an attibute+-- the text is read, the encoding scheme is parsed and selected+-- and the input is translated into the internal UTF-8 string representation++getXmlContents		:: XmlStateFilter a+getXmlContents+    = getXmlContents' parseXmlDocEncodingSpec+      .>>+      setBaseURIFilter+      .>>+      setStandAloneFilter++-- |+-- filter for reading the content of an external XML entity+--+--+-- see also : 'getXmlContents'++getXmlEntityContents	:: XmlStateFilter a+getXmlEntityContents+    = getXmlContents' parseXmlEntityEncodingSpec+      .>>+      liftF (processChildren removeEncodingSpec)	-- remove encoding spec, it's not part of the entity value+      .>> +      setBaseURIFilter++-- ------------------------------------------------------------++setBaseURIFilter	:: XmlStateFilter a+setBaseURIFilter+    = performAction (\ t -> setBaseURI (valueOf transferURI t))+      `whenM` isRoot++-- |+-- filter command for saving and restoring+-- the base URI+--+--    * 1.parameter f :  the filter that possible changes the base URI+--+--+--    - returns : a filter with the same effect as f, that restores the base URI after application of f++runInLocalURIContext		:: XmlStateFilter a -> XmlStateFilter a+runInLocalURIContext f t+    = do+      oldContext <- getBaseURI+      trace 2 ("runInLocalURIContext: save base URI " ++ show oldContext)+      res <- f t+      setBaseURI oldContext+      trace 2 ("runInLocalURIContext: restore base URI " ++ show oldContext)+      return res++-- |+-- filter command for running an action in a new URI context++runInNewURIContext	:: String -> XmlStateFilter a -> XmlStateFilter a+runInNewURIContext uri f+    | null uri+	= f+    | otherwise+	= runInLocalURIContext+	  ( \ t -> ( do+		     trace 2 ("runInNewURIContext: new base URI " ++ show uri)+		     setBaseURI uri+		     f t+		   )+	  )++-- ------------------------------------------------------------+-- |+-- guessEncoding uses encoding attribute and content+-- to determine the encoding scheme.+--+-- it's assumed that an encoding spec has been tried to parse before guessing the encoding.+--+-- UTF-8 is the default encoding+--+-- other supported encodings are ISO-8859-1 (also known as ISO-Latin-1),+-- US-ASCII, UTF-16 or ISO-10646-UCS-2, UTF-16BE, UTF-16LE++guessDocEncoding	:: XmlStateFilter a+guessDocEncoding+    = addDocEncoding+      `whenM` isRoot+    where+    addDocEncoding n'+	= do+	  trace 2 ( "guessDocEncoding: encoding is " ++ show guess)+	  ( encFilter (getEncodingFct guess)+	    .>>+	    liftMf (addAttr transferEncoding guess) ) n'+	  where+	  guess	:: String+	  guess	= head . filter (not . null)+		  $ [ (guessEncoding . showXText . getChildren) n'+		    , valueOf transferEncoding n'+		    , valueOf a_encoding n'+		    , utf8+		    ]+	  encFilter (Just fct)+	      = liftMf (processChildren (modifyText (normalizeNL . fct)))+	  encFilter Nothing+	      = addFatal ("encoding scheme not supported: " ++ show guess)++-- ------------------------------------------------------------++getDefaultURI	:: XState state String+getDefaultURI+    = do+      uri <- getSysParam transferDefaultURI+      if null uri+	 then do+	      setDefaultURI+	      getDefaultURI+	 else return uri++-- |+-- set the base URI, all other URIs are handled relative to this base URI+--+-- the default base URI is @file:\/\/\/\<current-working-dir\>\/@+--+-- see also : 'getBaseURI'++setBaseURI	:: String -> XState state ()+setBaseURI str+    = do+      trace 2 ("setBaseURI: new base URI: " ++ show str)+      setSysParam transferURI str++-- |+-- read the current base URI+--+-- see also : 'setBaseURI'++getBaseURI	:: XState state String+getBaseURI+    = do+      uri <- getSysParam transferURI+      if null uri+	 then do+	      res <- getDefaultURI+	      setBaseURI res+	      getBaseURI+	 else return uri++-- |+-- transform an URI into an absolut URI using the current base URI+--+--+--    * 1.parameter uri :  the URI as string+--+--+--    - returns : the absolut URI as string or \"\" in case of an error++getAbsolutURI	:: String -> XState state String+getAbsolutURI uri+    = do+      baseUri <- getBaseURI+      return $ expandURI uri baseUri++expandURI	:: String -> String -> String+expandURI uri base+    = fromMaybe "" $ expand+    where+    expand = do+	     base' <- parseURIReference base+	     uri'  <- parseURIReference uri+	     abs'  <- relativeTo uri' base'+	     return $ show abs'++-- ------------------------------------------------------------++setStandAloneFilter	:: XmlStateFilter a+setStandAloneFilter+    = performAction setStandAlone+      where+      setStandAlone t+	  = do+	    if null standalone+	       then return ()+	       else do+		    trace 2 ("setStandAloneFilter: standalone=" ++ show standaloneVal)+		    setSysParam a_standalone standaloneVal+	    where+	    standalone	= getValue a_standalone t+	    standaloneVal	= showXText standalone++-- |+-- predicate for testing the standalone document attribute++isStandaloneDocument	:: XState state Bool+isStandaloneDocument+    = do+      val <- getSysParam a_standalone+      return (val == "yes")++-- ------------------------------------------------------------++-- |+-- the hard io operations+--+-- for reading a file or accessing a document via http+-- input must be a root node with a @source@ attribute specifying the URI++getUrlContents	:: XmlStateFilter a+getUrlContents+    =  getCont+      `whenM` isRoot+    where+    getCont n'+	= do+	  trace 1 ("getUrlContent: reading " ++ show src)+	  uri <- getAbsolutURI src+	  if null uri+	     then urlErr ( "illegal URI for input: " ++ show src )+	     else let+		  uri'     = fromJust $ parseURIReference uri+		  proto    = init . uriScheme $ uri'+		  handler  = getProtocolHandler proto+		  in+		  ( liftMf (addAttr transferProtocol proto+			   .>+			   addAttr transferURI uri+			  )+		    .>>+		    handler uri'+		  ) $ n'+	where+	src        = valueOf a_source n'+	urlErr msg = addFatal msg n'++-- ------------------------------------------------------------++-- |+-- compute the length of the data for a document read previously+-- by a call of 'getUrlContents. The result is stored as an attribute+-- value in the document root node. the attribute name is 'a_contentLength'++getContentLength	:: XmlFilter+getContentLength+    = addAttrl contentLengthAttr+      `when` isRoot+      where+      http_contentLength	= httpPrefix ++ "Content-Length"++      contentLengthAttr		:: XmlFilter+      contentLengthAttr t+	  = choice [ hasAttr a_contentLength+		     :-> none+		   , hasAttr http_contentLength+		     :-> mkXAttr a_contentLength (getValue http_contentLength)+		   , this+                     :-> mkXAttr a_contentLength getLength+		   ] t++      getLength			:: XmlFilter+      getLength t+	  = xtext (show . length . xshow . getChildren $ t)++-- ------------------------------------------------------------
+ src/Text/XML/HXT/Parser/XmlOutput.hs view
@@ -0,0 +1,168 @@+-- |+-- output functions+-- implemented as filer+--+-- Version : $Id: XmlOutput.hs,v 1.3 2005/04/14 12:52:53 hxml Exp $++module Text.XML.HXT.Parser.XmlOutput+    ( putXmlDoc+    , putXmlDocToFile+    , putXmlTree	-- for trace output+    , putXmlSource	--  "    "     "++    , hPutXmlDoc+    , hPutXmlTree+    , hPutXmlSource++    , traceF+    , traceMsg+    , traceTree+    , traceSource+    )++where++import Text.XML.HXT.DOM.XmlTree++import Text.XML.HXT.DOM.XmlState++import Text.XML.HXT.DOM.EditFilters	( indentDoc+					, numberLinesInXmlDoc+					, treeRepOfXmlDoc+					, addHeadlineToXmlDoc+					)++import System.IO+import System.IO.Error++-- ------------------------------------------------------------++-- |+-- document output for standard output+--+-- see also : 'hPutXmlDoc'++putXmlDoc	:: XmlStateFilter a+putXmlDoc	= hPutXmlDoc stdout++-- |+-- document output for arbitrary files.+--+-- Result is the input document++hPutXmlDoc	:: Handle -> XmlStateFilter a+hPutXmlDoc handle t+    = do+      res <- io $ try (hPutStr handle content)+      case res of+        Left ioerr+	    -> ( issueFatal (show ioerr)+		 +++>>+		 thisM+	       ) t+	Right _+	    -> thisM t++    where+    content = xshow . getChildren $ t++-- |+-- document output on a given file name+--+-- Result is the input document+--+-- see also : 'hPutXmlDoc', 'putXmlDoc'++putXmlDocToFile	:: String -> XmlStateFilter a+putXmlDocToFile fn t+    = do+      res <- io $ try (openFile fn WriteMode)+      case res of+        Left ioerr+	    -> ( issueFatal (show ioerr)+		 +++>>+		 thisM+	       ) t+	Right h+	    -> do+	       t' <- hPutXmlDoc h t+	       io $ try (hClose h)+	       trace 2 ("document written to file: " ++ fn)+	       return t'++-- ------------------------------------------------------------++-- |+-- output of tree representation for trace++hPutXmlTree	:: Handle -> XmlStateFilter a+hPutXmlTree handle+    = performAction+      (\ n -> liftMf (treeRepOfXmlDoc+		     .>+		     addHeadlineToXmlDoc+		    )+              .>>+              hPutXmlDoc handle+              $ n+      )++putXmlTree	:: XmlStateFilter a+putXmlTree	= hPutXmlTree stdout++-- |+-- output of text representation for trace++hPutXmlSource	:: Handle -> XmlStateFilter a+hPutXmlSource handle+    = performAction+      (\ n -> liftMf ( ( rootTag+			[ sattr a_source "internal tree" ]+			[ this ]+			`whenNot` isRoot+		      )+		      .>+		      indentDoc+		      .>+		      numberLinesInXmlDoc+		      .>+		      addHeadlineToXmlDoc+		    )+              .>>+              hPutXmlDoc handle+              $ n+      )++putXmlSource	:: XmlStateFilter a+putXmlSource	= hPutXmlSource stdout++-- ------------------------------------------------------------++-- trace filter for inserting trace operations+-- into a filter sequence+--+--    * 1.parameter level : like in 'traceCmd'+--+--    - 2.parameter cmd : the output filter, e.g. putXmlTree or putXmlSource+--+--    - 3.parameter : the tree+--+--    - returns: the tree++traceF		:: Int -> XmlStateFilter a -> XmlStateFilter a+traceF level cmd+    = performAction (\ t -> traceCmd level (cmd t))++traceMsg	:: Int -> String -> XmlStateFilter a+traceMsg level msg+    = performAction (\ _ -> trace level msg)++traceTree	:: XmlStateFilter a+traceTree+    = traceF 4 (hPutXmlTree stderr)++traceSource	:: XmlStateFilter a+traceSource+    = traceF 3 (hPutXmlSource stderr)++-- ------------------------------------------------------------
+ src/Text/XML/HXT/Parser/XmlParsec.hs view
@@ -0,0 +1,697 @@+-- ------------------------------------------------------------++{- |+   Module     : Text.XML.HXT.Parser.XmlParsec+   Copyright  : Copyright (C) 2005 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: XmlParsec.hs,v 1.14 2005/09/02 17:09:39 hxml Exp $++   Xml Parsec parser with pure filter interface++-}++-- ------------------------------------------------------------++module Text.XML.HXT.Parser.XmlParsec+    ( charData+    , charData'+    , comment+    , pI+    , cDSect+    , document+    , document'+    , prolog+    , xMLDecl+    , xMLDecl'+    , versionInfo+    , misc+    , doctypedecl+    , markupdecl+    , sDDecl+    , element+    , content+    , contentWithTextDecl+    , textDecl+    , encodingDecl+    , xread++    , parseXmlAttrValue+    , parseXmlContent+    , parseXmlDocEncodingSpec+    , parseXmlDocument+    , parseXmlDTDPart+    , parseXmlEncodingSpec+    , parseXmlEntityEncodingSpec+    , parseXmlGeneralEntityValue+    , parseXmlPart+    , parseXmlText++    , parseNMToken+    , parseName++    , removeEncodingSpec+    , substXmlEntities+    , xmlEntities+    )+where++import Text.ParserCombinators.Parsec+    ( GenParser+    , Parser+    , parse+    , (<?>), (<|>)+    , char+    , string+    , eof +    , between+    , many, many1+    , option+    , try+    , unexpected+    , getPosition+    , getInput+    , sourceName+    )++import           Text.XML.HXT.DOM.XmlTree 		hiding     (choice)+import qualified Text.XML.HXT.DOM.XmlTree		as XmlTree (choice)++import Text.XML.HXT.Parser.XmlCharParser               (xmlChar)++import qualified Text.XML.HXT.Parser.XmlTokenParser	as XT+import qualified Text.XML.HXT.Parser.XmlDTDTokenParser	as XD++import Data.Char	(toLower)+import Data.Maybe++-- ------------------------------------------------------------+--+-- Character Data (2.4)++charData		:: GenParser Char state XmlTrees+charData+    = many (charData' <|> XT.referenceT)++charData'		:: GenParser Char state XmlTree+charData'+    = try ( do+	    t <- XT.allBut1 many1 (\ c -> not (c `elem` "<&")) "]]>"+	    return (mkXTextTree $! t)+	  )++-- ------------------------------------------------------------+--+-- Comments (2.5)++comment		:: GenParser Char state XmlTree++comment+    = ( do+	c <- between (try $ string "<!--") (string "-->") (XT.allBut many "--")+	return (mkXCmtTree $! c)+      ) <?> "comment"++-- ------------------------------------------------------------+--+-- Processing Instructions++pI		:: GenParser Char state XmlTree+pI+    = between (try $ string "<?") (string "?>")+      ( do+	n <- pITarget+	p <- option "" (do+			XT.sPace+			XT.allBut many "?>"+		       )+	return (mkXPiTree n $! p)+      ) <?> "processing instruction"+      where+      pITarget	:: GenParser Char state String+      pITarget = ( do+		   n <- XT.name+		   if map toLower n == t_xml+		      then unexpected n+		      else return n+		 )++-- ------------------------------------------------------------+--+-- CDATA Sections (2.7)++cDSect		:: GenParser Char state XmlTree++cDSect+    = do+      t <- between ( try $ string "<![CDATA[") (string "]]>") (XT.allBut many "]]>")+      return (mkXCdataTree $! t)+      <?> "CDATA section"++-- ------------------------------------------------------------+--+-- Document (2.1) and Prolog (2.8)++document	:: GenParser Char state XmlTree+document+    = do+      pos <- getPosition+      dl <- document'+      return ( (head . replaceChildren dl)+	       $ newDocument (sourceName pos)+	     )++document'	:: GenParser Char state XmlTrees+document'+    = do+      pl <- prolog+      el <- element+      ml <- many misc+      eof+      return (pl ++ [el] ++ ml)++prolog		:: GenParser Char state XmlTrees+prolog+    = do+      xml     <- option [] xMLDecl'+      misc1   <- many misc+      dtdPart <- option [] doctypedecl+      misc2   <- many misc+      return (xml ++ misc1 ++ dtdPart ++ misc2)++xMLDecl		:: GenParser Char state XmlTrees+xMLDecl+    = between (try $ string "<?xml") (string "?>")+      ( do+	vi <- versionInfo+	ed <- option [] encodingDecl+	sd <- option [] sDDecl+	XT.skipS0+	return (vi ++ ed ++ sd)+      )+      <?> "xml declaration"++xMLDecl'	:: GenParser Char state XmlTrees+xMLDecl'+    = do+      al <- xMLDecl+      return [mkXmlDeclTree al]++xMLDecl''	:: GenParser Char state XmlTree+xMLDecl''+    = do+      al     <- option [] (try xMLDecl)+      return (newRoot al)++versionInfo	:: GenParser Char state XmlTrees+versionInfo+    = ( do+	try ( do+	      XT.skipS+	      XT.keyword a_version+	    )+	XT.eq+	vi <- XT.quoted XT.versionNum+	return (xattr a_version vi)+      )+      <?> "version info (with quoted version number)"++misc		:: GenParser Char state XmlTree+misc+    = comment+      <|>+      pI+      <|>+      ( ( do+	  ws <- XT.sPace+	  return (mkXTextTree ws)+	) <?> ""+      )++-- ------------------------------------------------------------+--+-- Document Type definition (2.8)++doctypedecl	:: GenParser Char state XmlTrees+doctypedecl+    = between (try $ string "<!DOCTYPE") (char '>')+      ( do+	XT.skipS+	n <- XT.name+	exId <- option [] ( try ( do+				  XT.skipS+				  externalID+				)+			  )+	XT.skipS0+	markup <- option []+	          ( do+		    m <- between (char '[' ) (char ']') markupOrDeclSep+		    XT.skipS0+		    return m+		  )+	return [mkXDTDTree DOCTYPE ((a_name, n) : exId) markup]+      )++markupOrDeclSep	:: GenParser Char state XmlTrees+markupOrDeclSep+    = ( do+	ll <- many ( markupdecl+		     <|>+		     declSep+		     <|>+		     XT.mkList conditionalSect+		   )+	return (concat ll)+      )++declSep		:: GenParser Char state XmlTrees+declSep+    = XT.mkList XT.peReferenceT+      <|>+      ( do+	XT.skipS+	return []+      )++markupdecl	:: GenParser Char state XmlTrees+markupdecl+    = XT.mkList+      ( pI+	<|>+	comment+	<|>+	XD.dtdDeclTokenizer+      )++-- ------------------------------------------------------------+--+-- Standalone Document Declaration (2.9)++sDDecl		:: GenParser Char state XmlTrees+sDDecl+    = do+      try (do+	   XT.skipS+	   XT.keyword a_standalone+	  )+      XT.eq+      sd <- XT.quoted (XT.keywords [v_yes, v_no])+      return (xattr a_standalone sd)++-- ------------------------------------------------------------+--+-- element, tags and content (3, 3.1)++element		:: GenParser Char state XmlTree+element+    = ( do+	e <- elementStart+	elementRest e+      ) <?> "element"++elementStart		:: GenParser Char state (String, [(String, XmlTrees)])+elementStart+    = do+      n <- ( try ( do+		   char '<'+		   n <- XT.name+		   return n+		 )+	     <?> "start tag"+	   )+      ass <- attrList+      XT.skipS0+      return (n, ass)+      where+      attrList+	  = option [] ( do+			XT.skipS+			attrList'+		      )+      attrList'+	  = option [] ( do+			a1 <- attribute+			al <- attrList+			let (n, _v) = a1+			if isJust . lookup n $ al+			  then unexpected ("attribute name " ++ show n ++ " occurs twice in attribute list")+			  else return (a1 : al)+		      )++elementRest	:: (String, [(String, XmlTrees)]) -> GenParser Char state XmlTree+elementRest (n, al)+    = ( do+	try $ string "/>"+	return (mkXTagTree n (map (uncurry mkXAttrTree) al) [])+      )+      <|>+      ( do+	XT.gt+	c <- content+	eTag n+	return (mkXTagTree n (map ((uncurry mkXAttrTree) $!) al) $! c)+      )+      <?> "proper attribute list followed by \"/>\" or \">\""++eTag		:: String -> GenParser Char state ()+eTag n'+    = do+      try ( string "</" ) <?> ""+      n <- XT.name+      XT.skipS0+      XT.gt+      if n == n'+	 then return ()+	 else unexpected ("illegal end tag </" ++ n ++ "> found, </" ++ n' ++ "> expected")++attribute	:: GenParser Char state (String, XmlTrees)+attribute+    = do+      n <- XT.name+      XT.eq+      v <- XT.attrValueT+      return (n, v)++content		:: GenParser Char state XmlTrees+content+    = do+      c1 <- charData+      cl <- many+	    ( do+	      l <- ( element+		     <|>+		     cDSect+		     <|>+		     pI+		     <|>+		     comment+		   )+	      c <- charData+	      return (l : c)+	    )+      return (c1 ++ concat cl)++contentWithTextDecl	:: GenParser Char state XmlTrees+contentWithTextDecl+    = do+      option [] textDecl+      content++-- ------------------------------------------------------------+--+-- Conditional Sections (3.4)+--+-- conditional sections are parsed in two steps,+-- first the whole content is detected,+-- and then, after PE substitution include sections are parsed again++conditionalSect		:: GenParser Char state XmlTree+conditionalSect+    = do+      try $ string "<!["+      cs <- many XD.dtdToken+      char '['+      sect <- condSectCont+      return (mkXDTDTree CONDSECT [(a_value, sect)] cs)+    where++    condSectCont	:: GenParser Char state String+    condSectCont+	= ( do+	    try $ string "]]>"+	    return ""+	  )+          <|>+	  ( do+	    try $ string "<!["+	    cs1 <- condSectCont+	    cs2 <- condSectCont+	    return ("<![" ++ cs1 ++ "]]>" ++ cs2)+	  )+	  <|>+	  ( do+	    c  <- xmlChar+	    cs <- condSectCont+	    return (c : cs)+	  )++-- ------------------------------------------------------------+--+-- External Entities (4.2.2)++externalID	:: GenParser Char state Attributes+externalID+    = ( do+	XT.keyword k_system+	XT.skipS+	lit <- XT.systemLiteral+	return [(k_system, lit)]+      )+      <|>+      ( do+	XT.keyword k_public+	XT.skipS+	pl <- XT.pubidLiteral+	XT.skipS+	sl <- XT.systemLiteral+	return [ (k_system, sl)+	       , (k_public, pl) ]+      )+      <?> "SYSTEM or PUBLIC declaration"++-- ------------------------------------------------------------+--+-- Text Declaration (4.3.1)++textDecl	:: GenParser Char state XmlTrees+textDecl+    = between (try $ string "<?xml") (string "?>")+      ( do+	vi <- option [] versionInfo+	ed <- encodingDecl+	XT.skipS0+	return (vi ++ ed)+      )+      <?> "text declaration"+++textDecl''	:: GenParser Char state XmlTree+textDecl''+    = do+      al    <- option [] (try textDecl)+      return (newRoot al)++-- ------------------------------------------------------------+--+-- Encoding Declaration (4.3.3)++encodingDecl	:: GenParser Char state XmlTrees+encodingDecl+    = do+      try (do+	   XT.skipS+	   XT.keyword a_encoding+	  )+      XT.eq+      ed <- XT.quoted XT.encName+      return (xattr a_encoding ed)++-- ------------------------------------------------------------+--+-- the main entry points:+--	parsing the content of a text node+--	or parsing the text children from a tag node++-- |+-- the inverse function to 'xshow', (for XML content).+--+-- the string parameter is parsed with the XML content parser.+-- result is the list of trees or in case of an error a single element list with the+-- error message as node. No entity or character subtitution is done.+-- For substitution of predefined XML entities 'substXmlEntities' can be used.+--+-- see also: 'parseXmlContent', 'substXmlEntities'++xread			:: String -> XmlTrees+xread str+    = parseXmlFromString parser loc str+    where+    loc = "string: " ++ show (if length str > 40 then take 40 str ++ "..." else str)+    parser = do+	     res <- content		-- take the content parser for parsing the string+	     eof			-- and test on everything consumed+	     return res++-- |+-- the filter version of 'xread'++parseXmlContent		:: XmlFilter+parseXmlContent+    = xread . xshow . this++-- |+-- a more general version of 'parseXmlContent'.+-- The parser to be used and the context are extra parameter++parseXmlText		:: Parser XmlTrees -> String -> XmlFilter+parseXmlText p loc	= parseXmlFromString p loc . xshow . this++parseXmlDocument	:: String -> String -> XmlTrees+parseXmlDocument	= parseXmlFromString document'+++parseXmlFromString	:: Parser XmlTrees -> String -> String -> XmlTrees+parseXmlFromString parser loc+    = either (xerr . (++ "\n") . show) id . parse parser loc++-- ------------------------------------------------------------+--++removeEncodingSpec	:: XmlFilter+removeEncodingSpec (NTree (XText s) _cs)+    = either (xerr . (++ "\n") . show) xtext . parse parser "remove encoding spec" $ s+    where+    parser :: Parser String+    parser = do+	     option [] textDecl+	     getInput++removeEncodingSpec n+    = [n]++-- ------------------------------------------------------------++-- |+-- general parser for parsing arbitray parts of a XML document++parseXmlPart	:: Parser XmlTrees -> String -> String -> XmlFilter+parseXmlPart parser expected context t+    = parseXmlText ( do+		     res <- parser+		     eof <?> expected+		     return res+		   ) context+      $ t++-- ------------------------------------------------------------++-- |+-- Parser for parts of a DTD++parseXmlDTDPart	:: String -> XmlFilter+parseXmlDTDPart+    = parseXmlPart markupOrDeclSep "markup declaration"++-- ------------------------------------------------------------++-- |+-- Parser for general entites++parseXmlGeneralEntityValue	:: String -> XmlFilter+parseXmlGeneralEntityValue+    = parseXmlPart content "general entity value"++-- ------------------------------------------------------------++-- |+-- Parser for attribute values++parseXmlAttrValue	:: String -> XmlFilter+parseXmlAttrValue+    = parseXmlPart (XT.attrValueT' "<&") "attribute value"++-- ------------------------------------------------------------++-- |+-- Parser for NMTOKENs++parseNMToken		:: String -> XmlFilter+parseNMToken+    = parseXmlPart (many1 XT.nmtokenT) "nmtoken"++-- ------------------------------------------------------------++-- |+-- Parser for XML names++parseName		:: String -> XmlFilter+parseName+    = parseXmlPart (many1 XT.nameT) "name"++-- ------------------------------------------------------------++-- |+-- try to parse a xml encoding spec.+--+--+--    * 1.parameter encParse :  the parser for the encoding decl+--+--    - 2.parameter root :  a document root+--+--    - returns : the same tree, but with an additional+--			  attribute "encoding" in the root node+--			  in case of a valid encoding spec+--			  else the unchanged tree++parseXmlEncodingSpec	:: Parser XmlTree -> XmlFilter+parseXmlEncodingSpec encDecl+    =  parseEncSpec+      `when` isRoot+      where+      parseEncSpec r+	  = case ( parse encDecl source . xshow . getChildren $ r ) of+	    Right t+		-> addAttrl (const (getAttrl t)) r+	    Left _+		-> this r+	  where+	  source = valueOf a_source r++parseXmlEntityEncodingSpec	:: XmlFilter+parseXmlEntityEncodingSpec	= parseXmlEncodingSpec textDecl''++parseXmlDocEncodingSpec		:: XmlFilter+parseXmlDocEncodingSpec		= parseXmlEncodingSpec xMLDecl''++-- ------------------------------------------------------------++-- |+-- Filter for substitution of all occurences the predefined XML entites quot, amp, lt, gt, apos+-- by equivalent character references++substXmlEntities	:: XmlFilter+substXmlEntities+    = XmlTree.choice+      [ isXEntityRef	:-> substEntity+      , isXTag		:-> processAttr (processChildren substXmlEntities)+      , this		:-> this+      ]+      where+      substEntity t'@(NTree (XEntityRef en) _)+	  = case (lookup en xmlEntities) of+	    Just i+		-> [mkXCharRefTree i]+	    Nothing+		-> this t'++      substEntity _					-- just for preventing ghc warning+	  = error "substXmlEntities: illegal argument"++-- |+-- list of predefined XML entity names and their unicode values+--+-- used by 'substXmlEntities'++xmlEntities	:: [(String, Int)]+xmlEntities	= [ ("quot",	34)+		  , ("amp",	38)+		  , ("lt",	60)+		  , ("gt",	62)+		  , ("apos",	39)+		  ]++-- ------------------------------------------------------------
+ src/Text/XML/HXT/Parser/XmlParser.hs view
@@ -0,0 +1,60 @@+-- |+-- Xml Parser: the main parse filter +--+-- Version : $Id: XmlParser.hs,v 1.5 2005/06/06 15:57:19 hxml Exp $+++module Text.XML.HXT.Parser.XmlParser+    ( module Text.XML.HXT.Parser.XmlParsec+    , module Text.XML.HXT.Parser.XmlTokenParser+    , parseXmlDoc+    )+where++import Text.XML.HXT.DOM.XmlTree++import Text.XML.HXT.DOM.XmlState++import Text.XML.HXT.Parser.XmlTokenParser++import Text.XML.HXT.Parser.XmlParsec++import Text.XML.HXT.Parser.XmlOutput+    ( traceTree+    , traceSource+    , traceMsg+    )++-- ------------------------------------------------------------++-- |+-- The monadic parser for a whole document.+-- input must be a root node with a single text child.+-- Error messages are issued and global error state is set.++parseXmlDoc	:: XmlStateFilter a+parseXmlDoc+    = parseDoc+      `whenM` ( isRoot .> getChildren .> isXText )+      where+      parseDoc t+	  = ( traceMsg 2 ("parseXmlDoc: parse XML document " ++ show loc)+	      .>>+	      parser+	      .>>+	      liftMf checkRes+	      .>>+	      traceTree+	      .>>+	      traceSource+	    ) $ t+	  where+	  loc = valueOf a_source t			-- document name+	  checkRes+	      = setStatus c_err ("parsing XML source " ++ show loc)+	        `whenNot`+	        getChildren+	  parser+	      = processChildrenM (liftF (parseXmlText document' loc))++-- ------------------------------------------------------------
+ src/Text/XML/HXT/Parser/XmlTokenParser.hs view
@@ -0,0 +1,545 @@+-- ------------------------------------------------------------++{- |+   Module     : Text.XML.HXT.Parser.XmlTokenParser+   Copyright  : Copyright (C) 2005 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: XmlTokenParser.hs,v 1.3 2005/09/02 17:09:39 hxml Exp $++   Parsec parser for XML tokens++-}++-- ------------------------------------------------------------++module Text.XML.HXT.Parser.XmlTokenParser+    ( allBut+    , allBut1+    , asciiLetter+    , attrValue+    , bar+    , charRef+    , comma+    , dq+    , encName+    , entityRef+    , entityValue+    , eq+    , gt+    , keyword+    , keywords+    , lpar+    , lt+    , name+    , names+    , ncName+    , nmtoken+    , nmtokens+    , peReference+    , pubidLiteral+    , qName+    , quoted+    , reference+    , rpar+    , semi+    , separator+    , singleChar+    , singleChars+    , skipS+    , skipS0+    , sPace+    , sPace0+    , sq+    , systemLiteral+    , versionNum++    , concRes+    , mkList++    , nameT+    , nmtokenT++    , entityValueT+    , entityTokensT+    , entityCharT++    , attrValueT+    , attrValueT'++    , referenceT+    , charRefT+    , entityRefT+    , peReferenceT++    , singleCharsT+    )+where++import Text.ParserCombinators.Parsec+++import Text.XML.HXT.DOM.XmlTree hiding+    ( choice+    )++import Text.XML.HXT.DOM.Unicode+    ( isXmlChar+    , intToCharRef+    , intToCharRefHex+    )++import Text.XML.HXT.DOM.Util+    ( hexStringToInt+    , decimalStringToInt+    )++import Text.XML.HXT.Parser.XmlCharParser+    ( xmlNameChar+    , xmlNameStartChar+    , xmlNCNameChar+    , xmlNCNameStartChar+    , xmlSpaceChar+    )++-- ------------------------------------------------------------+--+-- Character (2.2) and White Space (2.3)+--+-- Unicode parsers in module XmlCharParser++-- ------------------------------------------------------------++sPace		:: GenParser Char state String+sPace+    = many1 xmlSpaceChar++sPace0		:: GenParser Char state String+sPace0+    = many xmlSpaceChar++skipS		:: GenParser Char state ()+skipS+    = skipMany1 xmlSpaceChar++skipS0		:: GenParser Char state ()+skipS0+    = skipMany xmlSpaceChar++-- ------------------------------------------------------------+--+-- Names and Tokens (2.3)++asciiLetter		:: GenParser Char state Char+asciiLetter+    = satisfy (\ c -> ( c >= 'A' && c <= 'Z' ||+			c >= 'a' && c <= 'z' )+	      )+      <?> "ASCII letter"++name		:: GenParser Char state String+name+    = try ( do+	    s1 <- xmlNameStartChar+	    sl <- many xmlNameChar+	    return (s1 : sl)+	  )+      <?> "Name"++-- Namespaces in XML: Rules [4-5] NCName:++ncName		:: GenParser Char state String+ncName+    = try ( do+	    s1 <- xmlNCNameStartChar+	    sl <- many xmlNCNameChar+	    return (s1 : sl)+	  )+      <?> "NCName"++-- Namespaces in XML: Rules [6-8] QName:++qName		:: GenParser Char state (String, String)+qName+    = do+      s1 <- ncName+      s2 <- option "" ( do+			char ':'+			ncName+		      )+      return ( if null s2 then (s2, s1) else (s1, s2) )++nmtoken		:: GenParser Char state String+nmtoken+    = try (many1 xmlNameChar)+      <?> "Nmtoken"++names		:: GenParser Char state [String]+names+    = sepBy1 name sPace++nmtokens	:: GenParser Char state [String]+nmtokens+    = sepBy1 nmtoken sPace++-- ------------------------------------------------------------+--+-- Literals (2.3)++singleChar		:: String -> GenParser Char state Char+singleChar notAllowed+    = satisfy (\ c -> isXmlChar c && not (c `elem` notAllowed))++singleChars		:: String -> GenParser Char state String+singleChars notAllowed+    = many1 (singleChar notAllowed)++entityValue	:: GenParser Char state String+entityValue+    = attrValue++attrValueDQ	:: GenParser Char state String+attrValueDQ+    = between dq dq (concRes $ many $ attrChar "<&\"")++attrValueSQ	:: GenParser Char state String+attrValueSQ+    = between sq sq (concRes $ many $ attrChar "<&\'")++attrValue	:: GenParser Char state String+attrValue+    = ( do+	v <- attrValueDQ+	return ("\"" ++ v ++ "\"")+      )+      <|>+      ( do+	v <- attrValueSQ+	return ("'" ++ v ++ "'")+      )+      <?> "attribute value (in quotes)"++attrChar	:: String -> GenParser Char state String+attrChar notAllowed+    = reference+      <|>+      mkList (singleChar notAllowed)+      <?> "legal attribute character or reference"+++systemLiteral		:: GenParser Char state String+systemLiteral+    = between dq dq (many $ noneOf "\"")+      <|>+      between sq sq (many $ noneOf "\'")+      <?> "system literal (in quotes)"++pubidLiteral		:: GenParser Char state String+pubidLiteral+    = between dq dq (many $ pubidChar "\'")+      <|>+      between sq sq (many $ pubidChar "")+      <?> "pubid literal (in quotes)"+      where+      pubidChar		:: String -> GenParser Char state Char+      pubidChar quoteChars+	  = asciiLetter+	    <|>+	    digit+	    <|>+	    oneOf " \r\n"		-- no "\t" allowed, so xmlSpaceChar parser not used+	    <|>+	    oneOf "-()+,./:=?;!*#@$_%"+            <|>+	    oneOf quoteChars+-- ------------------------------------------------------------+--+-- Character and Entity References (4.1)++reference	:: GenParser Char state String+reference+    = ( do+	i <- charRef+	return ("&#" ++ show i ++ ";")+      )+      <|>+      ( do+        n <- entityRef+        return ("&" ++ n ++ ";")+      )+      ++checkCharRef	:: Int -> GenParser Char state Int+checkCharRef i+    = if ( i <= fromEnum (maxBound::Char)+	   && isXmlChar (toEnum i)+	 )+        then return i+	else unexpected ("illegal value in character reference: " ++ intToCharRef i ++ " , in hex: " ++ intToCharRefHex i)++charRef		:: GenParser Char state Int+charRef+    = do+      try (string "&#x")+      d <- many1 hexDigit+      semi+      checkCharRef (hexStringToInt d)+      <|>+      do+      try (string "&#")+      d <- many1 digit+      semi+      checkCharRef (decimalStringToInt d)+      <?> "character reference"+++entityRef	:: GenParser Char state String+entityRef+    = do+      char '&'+      n <- name+      semi+      return n+      <?> "entity reference"++peReference	:: GenParser Char state String+peReference+    = try ( do+	    char '%'+	    n <- name+	    semi+	    return n+	  )+      <?> "parameter-entity reference"++-- ------------------------------------------------------------+--+-- 4.3++encName		:: GenParser Char state String+encName+    = do+      c <- asciiLetter+      r <- many (asciiLetter <|> digit <|> oneOf "._-")+      return (c:r)++versionNum	:: GenParser Char state String+versionNum+    = many1 xmlNameChar+++-- ------------------------------------------------------------+--+-- keywords++keyword		:: String -> GenParser Char state String+keyword kw+    = try ( do+	    n <- name+	    if n == kw+	      then return n+	      else unexpected n+	  )+      <?> kw++keywords	:: [String] -> GenParser Char state String+keywords+    = foldr1 (<|>) . map keyword++-- ------------------------------------------------------------+--+-- parser for quoted attribute values++quoted		:: GenParser Char state a -> GenParser Char state a+quoted p+    = between dq dq p+      <|>+      between sq sq p++-- ------------------------------------------------------------+--+-- simple char parsers++dq, sq, lt, gt, semi	:: GenParser Char state Char++dq	= char '\"'+sq	= char '\''+lt	= char '<'+gt	= char '>'+semi	= char ';'++separator	:: Char -> GenParser Char state ()+separator c+    = do+      try ( do+	    skipS0+	    char c+	  )+      skipS0+      <?> [c]++bar, comma, eq, lpar, rpar	:: GenParser Char state ()++bar	= separator '|'+comma	= separator ','+eq	= separator '='++lpar+    = do+      char '('+      skipS0++rpar+    = do+      skipS0+      char ')'+      return ()+++-- ------------------------------------------------------------+--+-- all chars but not a special substring++allBut		:: (GenParser Char state Char -> GenParser Char state String) -> String -> GenParser Char state String+allBut p str+    = allBut1 p (const True) str++allBut1		:: (GenParser Char state Char -> GenParser Char state String) -> (Char -> Bool) -> String -> GenParser Char state String+allBut1 p prd (c:rest)+    = p ( satisfy (\ x -> isXmlChar x && prd x && not (x == c) )+	  <|>+	  try ( do+		char c+		notFollowedBy ( do+				try (string rest)+				return c+			      )+		return c+	      )+	)++allBut1 _p _prd str+    = error ("allBut1 _ _ " ++ show str ++ " is undefined")++-- ------------------------------------------------------------+--+-- concatenate parse results++concRes		:: GenParser Char state [[a]] -> GenParser Char state [a]+concRes p+    = do+      sl <- p+      return (concat sl)++mkList		:: GenParser Char state a -> GenParser Char state [a]+mkList p+    = do+      r <- p+      return [r]++-- ------------------------------------------------------------+--+-- token parsers returning XmlTrees+--+-- ------------------------------------------------------------+--+-- Literals (2.3)++nameT		:: GenParser Char state XmlTree+nameT+    = do+      n <- name+      return (mkXDTDTree NAME [(a_name, n)] [])++nmtokenT	:: GenParser Char state XmlTree+nmtokenT+    = do+      n <- nmtoken+      return (mkXDTDTree NAME [(a_name, n)] [])+++entityValueT	:: GenParser Char state XmlTrees+entityValueT+    =  do+       sl <- between dq dq (entityTokensT "%&\"")+       return sl+       <|>+       do+       sl <- between sq sq (entityTokensT "%&\'")+       return sl+       <?> "entity value (in quotes)"++entityTokensT	:: String -> GenParser Char state XmlTrees+entityTokensT notAllowed+    = many (entityCharT notAllowed)++entityCharT	:: String -> GenParser Char state XmlTree+entityCharT notAllowed+    = peReferenceT+      <|>+      charRefT+      <|>+      bypassedEntityRefT+      <|>+      ( do+	cs <- many1 (singleChar notAllowed)+	return (mkXTextTree cs)+      )++attrValueT	:: GenParser Char state XmlTrees+attrValueT+    = between dq dq (attrValueT' "<&\"")+      <|>+      between sq sq (attrValueT' "<&\'")+      <?> "attribute value (in quotes)"++attrValueT'	:: String -> GenParser Char state XmlTrees+attrValueT' notAllowed+    = many ( referenceT <|> singleCharsT notAllowed)++singleCharsT	:: String -> GenParser Char state XmlTree+singleCharsT notAllowed+    = do+      cs <- singleChars notAllowed+      return (mkXTextTree cs)++-- ------------------------------------------------------------+--+-- Character and Entity References (4.1)++referenceT	:: GenParser Char state XmlTree+referenceT+    = charRefT+      <|>+      entityRefT++charRefT	:: GenParser Char state XmlTree+charRefT+    = do+      i <- charRef+      return (mkXCharRefTree $! i)++entityRefT	:: GenParser Char state XmlTree+entityRefT+    = do+      n <- entityRef+      return (mkXEntityRefTree $! n)++bypassedEntityRefT	:: GenParser Char state XmlTree+bypassedEntityRefT+    = do+      n <- entityRef+      return (mkXTextTree ("&" ++ n ++ ";"))++peReferenceT	:: GenParser Char state XmlTree+peReferenceT+    = do+      r <- peReference+      return (mkXPERefTree r)++-- ------------------------------------------------------------++
+ src/Text/XML/HXT/ProtocolHandler/Makefile view
@@ -0,0 +1,45 @@+# $Id: Makefile,v 1.1 2004/09/02 19:12:02 hxml Exp $+#+# Makefile to configure the http handlers to be used+#+# default is: http access may be done via a native http module+# or via an external program curl called via pipes+# the access can be controlled at runtime by option --withCurl+#+# variants:+#+# 1. ONLY_NATIVE_HTTP: does not need the code for calling external programs via pipes+# activate this variant by running "make only_native_http" in this dir before compilation+#+# 2. ONLY_CURL_HTTP: does not need the code for a socked connection and other stuff used by http modules+# activate this variant by running "make only_curl_http" in this dir before compilation+#+# 3. NO_HTTP: does not need any code for http, only local file access is supported+# activate this variant by running "make no_http" in this dir before compilation+#+# reset to default (both variants compiled in and selected by runtime options) by+# running "make default_http"++source	= ProtocolHandler.hs+tmp	= ProtocolHandler.tmp+target	= ../Parser/ProtocolHandler.hs++all		:+		@echo "make a target out of \"only_native_http only_curl_http no_http default_http\""++only_native_http	:+		ghc -E -cpp -DONLY_NATIVE_HTTP=1 -o $(tmp) $(source) ; grep -v '^#' $(tmp) > $(target)++only_curl_http	:+		ghc -E -cpp -DONLY_CURL_HTTP=1   -o $(tmp) $(source) ; grep -v '^#' $(tmp) > $(target)++no_http	:+		ghc -E -cpp -DNO_HTTP=1          -o $(tmp) $(source) ; grep -v '^#' $(tmp) > $(target)++default_http	:+		ghc -E -cpp                      -o $(tmp) $(source) ; grep -v '^#' $(tmp) > $(target)++clean		:+		rm -f $(tmp)++.PHONY		: all only_native_http only_curl_http no_http default_http clean
+ src/Text/XML/HXT/ProtocolHandler/ProtocolHandler.hs view
@@ -0,0 +1,115 @@+-- ------------------------------------------------------------+--+-- protocol handler functions+-- configuration file+-- real handler is generated with cpp+--+-- Version : $Id: ProtocolHandler.hs,v 1.2 2006/03/03 10:06:24 hxml Exp $++module Text.XML.HXT.Parser.ProtocolHandler+    ( getProtocolHandler+    )++where++import Text.XML.HXT.DOM.XmlState++-- ------------------------------------------------------------+--+-- file io and network++import Data.Maybe+    ( fromMaybe+    )++import Network.URI+    ( URI+    , uriScheme+    )++import Text.XML.HXT.Parser.ProtocolHandlerFile+    ( getFileContents+    )++#ifdef ONLY_NATIVE_HTTP++import Text.XML.HXT.Parser.ProtocolHandlerHttpNative+    ( getHttpContentsWithHttp+    )++#else+#ifdef ONLY_CURL_HTTP++import Text.XML.HXT.Parser.ProtocolHandlerHttpCurl+    ( getHttpContentsWithCurl+    )++#else+#ifdef NO_HTTP+#else++import Text.XML.HXT.Parser.ProtocolHandlerHttpNativeOrCurl+    ( getHttpContentsNativeOrWithCurl+    )++#endif+#endif+#endif++-- ------------------------------------------------------------+--++getProtocolHandler	:: String -> (URI -> XmlStateFilter a)+getProtocolHandler proto+    = fromMaybe getUnsupported handler+      where+      handler  = lookup proto protocolHandler++--+-- the fall back protocol handler++getUnsupported	:: URI -> XmlStateFilter a+getUnsupported uri+    = addFatal ( "unsupported protocol "+		 ++ show (uriScheme uri)+		 ++ " in URI: "+		 ++ show uri+	       )++-- ------------------------------------------------------------+--+-- the table of potocol handlers+-- looked up in getProtocolHandler++protocolHandler	:: [(String, URI -> XmlStateFilter a)]+protocolHandler+    = [ ("file", getFileContents)+      , ("http",++#ifdef ONLY_NATIVE_HTTP++	 getHttpContentsWithHttp++#else+#ifdef ONLY_CURL_HTTP++	 getHttpContentsWithCurl++#else+#ifdef NO_HTTP++         getUnsupported++#else++	 getHttpContentsNativeOrWithCurl++#endif+#endif+#endif+	)+      ]++-- ------------------------------------------------------------++
+ src/Text/XML/HXT/RelaxNG.hs view
@@ -0,0 +1,22 @@+-- |+-- This helper module exports elements from the basic Relax NG libraries:+-- Validator, CreatePattern, PatternToString and DataTypes.+-- It is the main entry point to the Relax NG schema validator of the Haskell+-- XML Toolbox.+--+-- Author : Torben Kuseler+--+-- Version : $Id: RelaxNG.hs,v 1.1 2005/09/02 17:09:39 hxml Exp $++module Text.XML.HXT.RelaxNG+  ( module Text.XML.HXT.RelaxNG.PatternToString+  , module Text.XML.HXT.RelaxNG.Validator+  , module Text.XML.HXT.RelaxNG.DataTypes+  , module Text.XML.HXT.RelaxNG.CreatePattern+  )+where++import Text.XML.HXT.RelaxNG.PatternToString+import Text.XML.HXT.RelaxNG.Validator+import Text.XML.HXT.RelaxNG.DataTypes+import Text.XML.HXT.RelaxNG.CreatePattern
+ src/Text/XML/HXT/RelaxNG/CreatePattern.hs view
@@ -0,0 +1,333 @@+-- |+-- +-- Creates the 'Pattern' datastructure from a simplified Relax NG schema. +-- The created datastructure is used in the validation algorithm+-- (see also: "Text.XML.HXT.RelaxNG.Validation")++module Text.XML.HXT.RelaxNG.CreatePattern+  ( createPatternFromXmlTree+  , createNameClass+  , module Text.XML.HXT.RelaxNG.PatternFunctions+  )+where++import Control.Arrow.ListArrows++import Text.XML.HXT.Arrow.DOMInterface++import Text.XML.HXT.Arrow.XmlArrow hiding+    ( hasName )++import qualified Text.XML.HXT.Arrow.XmlArrow as A+    ( hasName )++import Text.XML.HXT.RelaxNG.DataTypes+import Text.XML.HXT.RelaxNG.PatternFunctions++import Data.Maybe+    ( fromMaybe )++import Data.List+    ( isPrefixOf )++-- ------------------------------------------------------------++hasName :: String -> LA XmlTree XmlTree+hasName s = A.hasName s +            `orElse`+            (hasLocalPart s >>> hasNamespaceUri relaxNamespace)+++-- | Creates the 'Pattern' datastructure from a simplified Relax NG schema.+createPatternFromXmlTree :: LA XmlTree Pattern+createPatternFromXmlTree = createPatternFromXml $< createEnv+ where+ -- | Selects all define-pattern and creates an environment list.+ -- Each list entry maps the define name to the children of the define-pattern.+ -- The map is used to replace a ref-pattern with the referenced define-pattern.+ createEnv :: LA XmlTree Env+ createEnv = listA $ deep (isElem >>> hasName "define") +                     >>> +                     (getAttrValue "name" &&& getChildren)+++-- | Transforms each XML-element to the corresponding pattern+createPatternFromXml :: Env -> LA XmlTree Pattern+createPatternFromXml env+ = choiceA [+     isRoot                            :-> processRoot env,+     (isElem >>> hasName "empty")      :-> constA Empty,+     (isElem >>> hasName "notAllowed") :-> mkNotAllowed,+     (isElem >>> hasName "text")       :-> constA Text,+     (isElem >>> hasName "choice")     :-> mkRelaxChoice env,+     (isElem >>> hasName "interleave") :-> mkRelaxInterleave env,+     (isElem >>> hasName "group")      :-> mkRelaxGroup env,+     (isElem >>> hasName "oneOrMore")  :-> mkRelaxOneOrMore env,+     (isElem >>> hasName "list")       :-> mkRelaxList env,+     (isElem >>> hasName "data")       :-> mkRelaxData env,+     (isElem >>> hasName "value")      :-> mkRelaxValue,+     (isElem >>> hasName "attribute")  :-> mkRelaxAttribute env,+     (isElem >>> hasName "element")    :-> mkRelaxElement env,+     (isElem >>> hasName "ref")        :-> mkRelaxRef env,+     this                              :-> mkRelaxError ""+   ]++              +processRoot :: Env -> LA XmlTree Pattern+processRoot env+  = getChildren+    >>> +    choiceA [+      (isElem >>> hasName "relaxError") :-> (mkRelaxError $< getAttrValue "desc"),+      (isElem >>> hasName "grammar")    :-> (processGrammar env),+      this                              :-> (mkRelaxError "no grammar-pattern in schema")+    ]+++processGrammar :: Env -> LA XmlTree Pattern+processGrammar env+  = getChildren+    >>> +    choiceA [+      (isElem >>> hasName "define")     :-> none,+      (isElem >>> hasName "relaxError") :-> (mkRelaxError $< getAttrValue "desc"),+      (isElem >>> hasName "start")      :-> (getChildren >>> createPatternFromXml env),+      this                              :-> (mkRelaxError "no start-pattern in schema")+    ]+++{- |+  Transforms a ref-element.+  The value of the name-attribute is looked up in the environment list+  to find the corresponding define-pattern. +  Haskells lazy-evaluation is used to transform circular structures.+-}+mkRelaxRef :: Env -> LA XmlTree Pattern+mkRelaxRef e+ = getAttrValue "name"+   >>>+   arr (\n -> fromMaybe (NotAllowed $ "define-pattern with name " ++ n ++ " not found")+              . lookup n $ transformEnv e+       )+ where+ transformEnv :: [(String, XmlTree)] -> [(String, Pattern)]+ transformEnv env = [ (treeName, (transformEnvElem tree env)) | (treeName, tree) <- env]+ transformEnvElem :: XmlTree -> [(String, XmlTree)] -> Pattern+ transformEnvElem tree env = head $ runLA (createPatternFromXml env) tree +++-- | Transforms a notAllowed-element.+mkNotAllowed :: LA XmlTree Pattern+mkNotAllowed = constA $ NotAllowed "notAllowed-pattern in Relax NG schema definition"+++-- | Creates an error message.+mkRelaxError :: String -> LA XmlTree Pattern+mkRelaxError errStr+ = choiceA [+     (isElem >>> hasName "relaxError") :-> (getAttrValue "desc" >>> arr NotAllowed),+     isElem  :-> ( getName+                   >>>+                   arr (\n -> NotAllowed $ "Pattern " ++ n ++ +                                           " is not allowed in Relax NG schema"+                       )+                 ),+     isAttr  :-> ( getName+                   >>>+                   arr (\n -> NotAllowed $ "Attribute " ++ n ++ +                                           " is not allowed in Relax NG schema"+                       )+                 ),+     isError :-> (getErrorMsg >>> arr NotAllowed),                          +     this    :-> (arr (\e -> NotAllowed $ if errStr /= ""+                                          then errStr+                                          else "Can't create pattern from " ++ show e)+                 )+   ]+++-- | Transforms a choice-element.+mkRelaxChoice :: Env -> LA XmlTree Pattern+mkRelaxChoice env = listA getChildren+                    >>> +                    ifP (\l -> length l == 1)+                      (arrL id >>> createPatternFromXml env)+                      (getTwoChildrenPattern env >>> arr2 Choice)++               +-- | Transforms a interleave-element.+mkRelaxInterleave :: Env -> LA XmlTree Pattern+mkRelaxInterleave env = listA getChildren+                        >>> +                        getTwoChildrenPattern env+                        >>> +                        arr2 Interleave+++-- | Transforms a group-element.+mkRelaxGroup :: Env -> LA XmlTree Pattern+mkRelaxGroup env = listA getChildren+                   >>> +                   getTwoChildrenPattern env+                   >>>+                   arr2 Group+++-- | Transforms a oneOrMore-element.+mkRelaxOneOrMore :: Env -> LA XmlTree Pattern+mkRelaxOneOrMore env = getOneChildPattern env+                       >>> +                       arr OneOrMore+++-- | Transforms a list-element.+mkRelaxList :: Env -> LA XmlTree Pattern+mkRelaxList env = getOneChildPattern env >>> arr List+++-- | Transforms a data- or dataExcept-element.+mkRelaxData :: Env -> LA XmlTree Pattern+mkRelaxData env +  = ifA (getChildren >>> hasName "except")+     (processDataExcept >>> arr3 DataExcept)+     (processData >>> arr2 Data)+  where+  processDataExcept :: LA XmlTree (Datatype, (ParamList, Pattern))+  processDataExcept = getDatatype &&& getParamList &&& +                      ( getChildren+                        >>> +                        isElem >>> hasName "except"+                        >>> +                        getChildren+                        >>>+                        createPatternFromXml env+                      )+  processData :: LA XmlTree (Datatype, ParamList)+  processData = getDatatype &&& getParamList+  getParamList :: LA XmlTree ParamList+  getParamList = listA $ getChildren+                         >>>+                         isElem >>> hasName "param"+                         >>> +                         (getAttrValue "name" &&& (getChildren >>> getText))+         ++-- | Transforms a value-element.+mkRelaxValue :: LA XmlTree Pattern         +mkRelaxValue = getDatatype &&& getValue &&& getContext+               >>>+               arr3 Value +  where+  getContext :: LA XmlTree Context+  getContext = getAttrValue contextBaseAttr &&& getMapping+  getMapping :: LA XmlTree [(Prefix, Uri)]+  getMapping = listA $ getAttrl >>> +                       ( (getName >>> isA (contextAttributes `isPrefixOf`))+                         `guards`+                         ( (getName >>> arr (drop $ length contextAttributes)) +                           &&&+                           (getChildren >>> getText)+                         )+                       )+  getValue :: LA XmlTree String+  getValue = (getChildren >>> getText) `orElse` (constA "")+++getDatatype :: LA XmlTree Datatype+getDatatype = getAttrValue "datatypeLibrary"+              &&&+              getAttrValue "type"+++-- | Transforms a attribute-element.+-- The first child is a 'NameClass', the second one a pattern.+mkRelaxAttribute :: Env -> LA XmlTree Pattern+mkRelaxAttribute env+ = listA getChildren+   >>> +   ((arr head >>> createNameClass) &&& secondPattern env)+   >>>+   arr2 Attribute+++-- | Transforms a element-element.+-- The first child is a 'NameClass', the second one a pattern.+mkRelaxElement :: Env -> LA XmlTree Pattern+mkRelaxElement env+ = listA getChildren+   >>> +   ((arr head >>> createNameClass) &&& secondPattern env)+   >>>+   arr2 Element+++-- | Creates a 'NameClass' from an \"anyName\"-, \"nsName\"- or  \"name\"-Pattern, +createNameClass :: LA XmlTree NameClass+createNameClass+ = choiceA [   +     (isElem >>> hasName "anyName") :-> processAnyName,+     (isElem >>> hasName "nsName")  :-> processNsName,+     (isElem >>> hasName "name")    :-> processName,+     (isElem >>> hasName "choice")  :-> processChoice,+     this                           :-> mkNameClassError+   ]+ where+ processAnyName :: LA XmlTree NameClass+ processAnyName = ifA (getChildren >>> hasName "except")+                    ( getChildren >>> getChildren >>>+                      createNameClass >>> arr AnyNameExcept+                    )+                    (constA AnyName)+ processNsName :: LA XmlTree NameClass+ processNsName = ifA (getChildren >>> hasName "except")+                   ( ( getAttrValue "ns" +                       &&&+                       (getChildren >>> getChildren >>> createNameClass)+                     )+                     >>> +                     arr2 NsNameExcept+                   )+                   (getAttrValue "ns" >>> arr NsName) + processName :: LA XmlTree NameClass+ processName = (getAttrValue "ns" &&& (getChildren >>> getText)) >>> arr2 Name+ processChoice :: LA XmlTree NameClass+ processChoice = listA getChildren+                 >>>+                 (arr head >>> createNameClass) &&& (arr last >>> createNameClass)+                 >>>+                 arr2 NameClassChoice+                        ++mkNameClassError :: LA XmlTree NameClass+mkNameClassError + = choiceA [+     (isElem >>> hasName "relaxError") :-> (getAttrValue "desc" >>> arr NCError), +     isElem  :-> ( getName+                   >>>+                   arr (\n -> NCError ("Can't create name class from element " ++ n))+                 ),+     isAttr  :-> ( getName+                   >>>+                   arr (\n -> NCError ("Can't create name class from attribute: " ++ n))+                 ),+     isError :-> (getErrorMsg >>> arr NCError),                          +     this    :-> (arr (\e ->  NCError $ "Can't create name class from " ++ show e))      +   ]+++getOneChildPattern :: Env -> LA XmlTree Pattern+getOneChildPattern env = getChildren >>> createPatternFromXml env+++getTwoChildrenPattern :: Env -> LA XmlTrees (Pattern, Pattern)+getTwoChildrenPattern env = firstPattern env &&& secondPattern env+++firstPattern :: Env -> LA XmlTrees Pattern+firstPattern env = arr head >>> createPatternFromXml env+++-- | After simplification, each choice, group, etc. pattern has exactly two children,+-- so @last@ selects the second one+secondPattern :: Env -> LA XmlTrees Pattern+secondPattern env = arr last >>> createPatternFromXml env
+ src/Text/XML/HXT/RelaxNG/DataTypeLibMysql.hs view
@@ -0,0 +1,203 @@+-- |+-- Datatype library for the MySQL datatypes+--+-- $Id: DataTypeLibMysql.hs,v 1.1 2005/09/02 17:09:39 hxml Exp $++module Text.XML.HXT.RelaxNG.DataTypeLibMysql+  ( mysqlNS+  , mysqlDatatypeLib+  )+where++import Text.XML.HXT.RelaxNG.DataTypeLibUtils  +++-- ------------------------------------------------------------++-- | Namespace of the MySQL datatype library++mysqlNS :: String+mysqlNS = "http://www.mysql.com"+++-- | The main entry point to the MySQL datatype library.+--+-- The 'DTC' constructor exports the list of supported datatypes and params.+-- It also exports the specialized functions to validate a XML instance value with+-- respect to a datatype.++mysqlDatatypeLib :: DatatypeLibrary+mysqlDatatypeLib = (mysqlNS, DTC datatypeAllowsMysql datatypeEqualMysql mysqlDatatypes)+++-- | All supported datatypes of the library+mysqlDatatypes :: AllowedDatatypes+mysqlDatatypes = [ -- numeric types+                   ("SIGNED-TINYINT", numericParams)+                 , ("UNSIGNED-TINYINT", numericParams)+                 , ("SIGNED-SMALLINT", numericParams)+                 , ("UNSIGNED-SMALLINT", numericParams)+                 , ("SIGNED-MEDIUMINT", numericParams)+                 , ("UNSIGNED-MEDIUMINT", numericParams)+                 , ("SIGNED-INT", numericParams)+                 , ("UNSIGNED-INT", numericParams)+                 , ("SIGNED-BIGINT", numericParams)+                 , ("UNSIGNED-BIGINT", numericParams)+                 +                 -- string types+                 , ("CHAR", stringParams)+                 , ("VARCHAR", stringParams)                 +                 , ("BINARY", stringParams)+                 , ("VARBINARY", stringParams)                 +                 , ("TINYTEXT", stringParams)+                 , ("TINYBLOB", stringParams)                 +                 , ("TEXT", stringParams)+                 , ("BLOB", stringParams)                 +                 , ("MEDIUMTEXT", stringParams)+                 , ("MEDIUMBLOB", stringParams)                 +                 , ("LONGTEXT", stringParams)+                 , ("LONGBLOB", stringParams)                 +                 ]+++-- | List of supported string datatypes+stringTypes :: [String]+stringTypes = [ "CHAR"+	      , "VARCHAR"+	      , "BINARY"+	      , "VARBINARY"+              , "TINYTEXT"+	      , "TINYBLOB"+	      , "TEXT"+	      , "BLOB"+              , "MEDIUMTEXT"+	      , "MEDIUMBLOB"+	      , "LONGTEXT"+              , "LONGBLOB"+              ]+++-- | List of supported numeric datatypes+numericTypes :: [String]+numericTypes = [ "SIGNED-TINYINT"+	       , "UNSIGNED-TINYINT"+	       , "SIGNED-SMALLINT"+               , "UNSIGNED-SMALLINT"+	       , "SIGNED-MEDIUMINT"+               , "UNSIGNED-MEDIUMINT"+	       , "SIGNED-INT"+	       , "UNSIGNED-INT"+               , "SIGNED-BIGINT"+	       , "UNSIGNED-BIGINT"+               ]+++-- | List of allowed params for the numeric datatypes+numericParams :: AllowedParams+numericParams = [ "maxExclusive"+		, "minExclusive"+                , "maxInclusive"+		, "minInclusive"+                ]+                ++-- | List of allowed params for the string datatypes+stringParams :: AllowedParams+stringParams = [ "length"+	       , "maxLength"+	       , "minLength"+	       ]+                ++-- | Tests whether a XML instance value matches a data-pattern.+-- (see also: 'checkString' and 'checkNumeric') ++datatypeAllowsMysql :: DatatypeAllows++datatypeAllowsMysql d@"SIGNED-TINYINT" params value _ +    = checkNumeric d value (-128) 127 params++datatypeAllowsMysql d@"UNSIGNED-TINYINT" params value _ +    = checkNumeric d value 0 255 params++datatypeAllowsMysql d@"SIGNED-SMALLINT" params value _ +    = checkNumeric d value (-32768) 32767 params++datatypeAllowsMysql d@"UNSIGNED-SMALLINT" params value _ +    = checkNumeric d value 0 65535 params++datatypeAllowsMysql d@"SIGNED-MEDIUMINT" params value _ +    = checkNumeric d value (-8388608) 8388607 params++datatypeAllowsMysql d@"UNSIGNED-MEDIUMINT" params value _ +    = checkNumeric d value 0 16777215 params++datatypeAllowsMysql d@"SIGNED-INT" params value _ +    = checkNumeric d value (-2147483648) 2147483647 params++datatypeAllowsMysql d@"UNSIGNED-INT" params value _ +    = checkNumeric d value 0 4294967295 params++datatypeAllowsMysql d@"SIGNED-BIGINT" params value _ +    = checkNumeric d value (-9223372036854775808) 9223372036854775807 params++datatypeAllowsMysql d@"UNSIGNED-BIGINT" params value _ +    = checkNumeric d value 0 18446744073709551615 params+++datatypeAllowsMysql d@"CHAR" params value _ +    = checkString d value 0 255 params++datatypeAllowsMysql d@"VARCHAR" params value _ +    = checkString d value 0 65535 params++datatypeAllowsMysql d@"BINARY" params value _ +    = checkString d value 0 255 params+    +datatypeAllowsMysql d@"VARBINARY" params value _ +    = checkString d value 0 65535 params++datatypeAllowsMysql d@"TINYTEXT" params value _ +    = checkString d value 0 256 params -- 2^8++datatypeAllowsMysql d@"TINYBLOB" params value _ +    = checkString d value 0 256 params -- 2^8+    +datatypeAllowsMysql d@"TEXT" params value _ +    = checkString d value 0 65536 params -- 2^16++datatypeAllowsMysql d@"BLOB" params value _ +    = checkString d value 0 65536 params -- 2^16++datatypeAllowsMysql d@"MEDIUMTEXT" params value _ +    = checkString d value 0 16777216 params -- 2^24++datatypeAllowsMysql d@"MEDIUMBLOB" params value _ +    = checkString d value 0 16777216 params -- 2^24++datatypeAllowsMysql d@"LONGTEXT" params value _ +    = checkString d value 0 4294967296 params -- 2^32++datatypeAllowsMysql d@"LONGBLOB" params value _ +    = checkString d value 0 4294967296 params -- 2^32+++datatypeAllowsMysql t p v _+    = Just $ "Datatype " ++ t ++ " with parameter(s) " +++             formatStringList ", " (map (\(a, b) -> a ++ " = " ++ b) p) ++ " and value = " ++ v +++             " not allowed for DatatypeLibrary " ++ mysqlNS+++-- | Tests whether a XML instance value matches a value-pattern.+datatypeEqualMysql :: DatatypeEqual+datatypeEqualMysql d s1 _ s2 _ +    | elem d stringTypes  = if (s1 == s2)+			    then Nothing+			    else Just $ errorMsgEqual d s1 s2++    | elem d numericTypes = if (normalizeNumber s1 == normalizeNumber s2)+                            then Nothing+			    else Just $ errorMsgEqual d s1 s2++    | otherwise           = Just $ "Datatype " ++ d ++ " with values = " ++ s1 ++ " and " ++ s2 ++ +                                   " not allowed for DatatypeLibrary " ++ mysqlNS
+ src/Text/XML/HXT/RelaxNG/DataTypeLibUtils.hs view
@@ -0,0 +1,172 @@+-- |+-- exports helper functions for the integration of new datatype-libraries++module Text.XML.HXT.RelaxNG.DataTypeLibUtils+  ( checkString+  , checkNumeric+  , errorMsgEqual+  , module Text.XML.HXT.DOM.Util+  , module Text.XML.HXT.RelaxNG.Utils+  , module Text.XML.HXT.RelaxNG.DataTypes  +  )++where++import Text.XML.HXT.DOM.Util++import Text.XML.HXT.RelaxNG.DataTypes+import Text.XML.HXT.RelaxNG.Utils++import Maybe+  ( fromJust )+++-- ------------------------------------------------------------++-- | Function table for numeric tests,+-- XML document value is first operand, schema value second+fctTableNum :: (Ord a, Num a) => [(String, a -> a -> Bool)]+fctTableNum = [ ("maxExclusive", (<))+              , ("minExclusive", (>))+              , ("maxInclusive", (<=))+              , ("minInclusive", (>=))+              ]+++-- | Function table for string tests,+-- XML document value is first operand, schema value second+fctTableString :: [(String, String -> String -> Bool)]+fctTableString = [ ("length", (checkStrWithNumParam (==)))+                 , ("maxLength", (checkStrWithNumParam (<=)))+                 , ("minLength", (checkStrWithNumParam (>=)))+                 ]+++{- | +tests whether a string value matches a numeric param++valid example:++> <data type="CHAR"> <param name="maxLength">5</param> </data>++invalid example:++> <data type="CHAR"> <param name="minLength">foo</param> </data>++-}+checkStrWithNumParam :: (Int -> Int -> Bool) -> String -> String -> Bool+checkStrWithNumParam fct a b+  = if parseNumber b+    then (length a) `fct` (read b)+    else False++    +{- | +Tests whether a \"string\" datatype value is between the lower and +upper bound of the datatype and matches all parameters.++All tests are performed on the string value.+   +   * 1.parameter  :  datatype+   +   - 2.parameter  :  datatype value++   - 3.parameter  :  lower bound of the datatype range+   +   - 4.parameter  :  upper bound of the datatype range (-1 = no upper bound) +   +   - 5.parameter  :  list of parameters+   +   - return : Just \"Errormessage\" in case of an error, else Nothing+   +-}+checkString :: DatatypeName -> String -> Int -> Int -> ParamList -> Maybe String+checkString datatype value lowerBound upperBound params+  = if (length value >= lowerBound) && +       ((upperBound == (-1)) || (length value <= upperBound))+    then checkParamsString value params+    else Just $ "Length of " ++ value ++ " (" ++ (show $ length value) ++ +                " Chars) out of Range: " ++ show lowerBound ++ +                " .. " ++ show upperBound ++ " for datatype " ++ datatype+++-- | tests whether a string value matches a list of parameters+checkParamsString :: String -> ParamList -> Maybe String+checkParamsString _ [] = Nothing+checkParamsString value ((pName, pValue):xs)+  = if (getFct pName) value pValue+    then checkParamsString value xs+    else Just $ "Can't check Param-Restriction: " ++ pName ++ " = " ++ pValue +++                " against value = " ++ value+    where+    getFct :: String -> (String -> String -> Bool)+    getFct paramName = fromJust $ lookup paramName fctTableString                +++{- | +Tests whether a \"numeric\" datatype value is between the lower and upper +bound of the datatype and matches all parameters.++First, the string value is parsed into a numeric representation.+If no error occur, all following tests are performed on the numeric value.++   * 1.parameter  :  datatype+   +   - 2.parameter  :  datatype value++   - 3.parameter  :  lower bound of the datatype range+   +   - 4.parameter  :  upper bound of the datatype range (-1 = no upper bound) +   +   - 5.parameter  :  list of parameters+   +   - return : Just \"Errormessage\" in case of an error, else Nothing+   +-}+checkNumeric :: DatatypeName -> String -> Int -> Int -> ParamList -> Maybe String+checkNumeric datatype value lowerBound upperBound params+  = if parseNumber value +    then ( if (x >= lowerBound) && (x <= upperBound)+           then checkParamsNumeric x params+           else Just $ "Value = " ++ value ++ " out of Range: " ++ show lowerBound ++ +                       " .. " ++ show upperBound ++ " for datatype " ++ datatype+         )+    else Just ("Value = " ++ value ++ " is not a number")+    where +    x = read value+++-- | tests whether a numeric value matches a list of parameters+checkParamsNumeric :: (Read a, Ord a, Num a) => a -> ParamList -> Maybe String+checkParamsNumeric _ [] = Nothing+checkParamsNumeric value (x@(pName, pValue):xs)+  = if checkParam x  +    then checkParamsNumeric value xs+    else Just $ "Can't check Param-Restriction: " ++ pName ++ " = " ++ pValue +++                " against value = " ++ show value+    where+    getFct :: (Ord a, Num a) => String -> (a -> a -> Bool)+    getFct paramName = fromJust $ lookup paramName fctTableNum+    checkParam :: (String, String) -> Bool+    checkParam (pName', pValue')+      = if parseNumber pValue'+        then (getFct pName') value (read pValue')+        else False+++{- | +Error Message for the equality test of two datatype values+   +   * 1.parameter  :  datatype+   +   - 2.parameter  :  datatype value++   - 3.parameter  :  datatype value+   +example:++> errorMsgEqual "Int" "21" "42" -> "Datatype Int with value = 21 expected, but value = 42 found"++-}+errorMsgEqual :: DatatypeName -> String -> String -> String+errorMsgEqual d s1 s2 = "Datatype" ++ d ++ " with value = " ++ s1 ++ " expected, but value = " ++ s2 ++ " found"        
+ src/Text/XML/HXT/RelaxNG/DataTypeLibW3C.hs view
@@ -0,0 +1,92 @@+-- |+-- Datatype library for the W3C XML schema datatypes++module Text.XML.HXT.RelaxNG.DataTypeLibW3C+  ( w3cNS+  , w3cDatatypeLib+  )+where++import Text.XML.HXT.RelaxNG.DataTypeLibUtils  ++import Network.URI+  ( isURIReference )++import Text.XML.HXT.DOM.NamespaceFilter+  ( isWellformedQualifiedName+  , isNCName+  )++  +-- ------------------------------------------------------------++-- | Namespace of the W3C XML schema datatype library+w3cNS :: String+w3cNS = "http://www.w3.org/2001/XMLSchema-datatypes"+++-- | The main entry point to the W3C XML schema datatype library.+--+-- The 'DTC' constructor exports the list of supported datatypes and params.+-- It also exports the specialized functions to validate a XML instance value with+-- respect to a datatype.+w3cDatatypeLib :: DatatypeLibrary+w3cDatatypeLib = (w3cNS, DTC datatypeAllowsW3C datatypeEqualW3C w3cDatatypes)+++-- | All supported datatypes of the library+w3cDatatypes :: AllowedDatatypes+w3cDatatypes = [ ("NCName", stringParams)+               , ("anyURI", stringParams)+               , ("QName", stringParams)+               , ("string", stringParams)               +               ]+++-- | List of allowed params for the string datatypes+stringParams :: AllowedParams+stringParams = ["length", "maxLength", "minLength"]+++-- | Tests whether a XML instance value matches a data-pattern.+-- (see also: 'checkString')+datatypeAllowsW3C :: DatatypeAllows+datatypeAllowsW3C d@"NCName" params value _+  = let v = normalizeWhitespace value+    in ( if isNCName v && v /= ""+         then checkString d value 0 (-1) params +         else Just $ value ++ " is not a valid NCName for DatatypeLibrary " ++ w3cNS+       )+datatypeAllowsW3C d@"anyURI" params value _+  = let v = escapeURI $ normalizeWhitespace value+    in ( if isURIReference v +         then checkString d value 0 (-1) params+         else Just $ value ++ " is not a valid anyURI for DatatypeLibrary " ++ w3cNS+       )+datatypeAllowsW3C d@"QName" params value _+  = let v = normalizeWhitespace value+    in ( if isWellformedQualifiedName v && v /= "" +         then checkString d value 0 (-1) params+         else Just $ value ++ " is not a valid QName for DatatypeLibrary " ++ w3cNS+       )++datatypeAllowsW3C d@"string" params value _+  = checkString d value 0 (-1) params++datatypeAllowsW3C d p v _ +  = Just $ "Datatype " ++ d ++ " with parameter(s) " +++           formatStringList ", "(map (\(a, b) -> a ++ " = " ++ b) p) ++ " and value = " ++ v +++           " not allowed for DatatypeLibrary " ++ w3cNS++-- | Tests whether a XML instance value matches a value-pattern.+datatypeEqualW3C :: DatatypeEqual+datatypeEqualW3C d@"NCName" s1 _ s2 _+  = if s1 == s2 then Nothing else Just $ errorMsgEqual d s1 s2 +datatypeEqualW3C d@"anyURI" s1 _ s2 _ +  = if s1 == s2 then Nothing else Just $ errorMsgEqual d s1 s2 +datatypeEqualW3C d@"QName" s1 _ s2 _ +  = if s1 == s2 then Nothing else Just $ errorMsgEqual d s1 s2 +datatypeEqualW3C d@"string" s1 _ s2 _ +  = if s1 == s2 then Nothing else Just $ errorMsgEqual d s1 s2 +datatypeEqualW3C d _ _ _ _+  = Just $ "Datatype " ++ d ++ " not allowed for DatatypeLibrary " ++ w3cNS
+ src/Text/XML/HXT/RelaxNG/DataTypeLibraries.hs view
@@ -0,0 +1,136 @@+-- | This modul exports the list of supported datatype libraries.+-- It also exports the main functions to validate in XML instance value+-- with respect to a datatype.++module Text.XML.HXT.RelaxNG.DataTypeLibraries+  ( datatypeLibraries+  , datatypeEqual+  , datatypeAllows+  )+where++import Text.XML.HXT.Arrow.DOMInterface+    ( relaxNamespace+    )++import Text.XML.HXT.RelaxNG.DataTypeLibUtils  ++import Text.XML.HXT.RelaxNG.DataTypeLibMysql+    ( mysqlDatatypeLib )++import Text.XML.HXT.RelaxNG.DataTypeLibW3C+    ( w3cDatatypeLib )++import Maybe+    ( fromJust )++    +-- ------------------------------------------------------------+    ++-- | List of all supported datatype libraries which can be +-- used within the Relax NG validator modul.+datatypeLibraries :: DatatypeLibraries +datatypeLibraries = [ relaxDatatypeLib+                    , relaxDatatypeLib'+                    , mysqlDatatypeLib+                    , w3cDatatypeLib+                    ]+++{- |+Tests whether a XML instance value matches a value-pattern.++The following tests are performed:+   +   * 1. :  does the uri exist in the list of supported datatype libraries++   - 2. :  does the library support the datatype+   +   - 3. :  does the XML instance value match the value-pattern+   +The hard work is done by the specialized 'DatatypeEqual' function +(see also: 'DatatypeCheck') of the datatype library.+-}+datatypeEqual :: Uri -> DatatypeEqual  +datatypeEqual uri d s1 c1 s2 c2 +  = if elem uri (map fst datatypeLibraries)  +    then dtEqFct d s1 c1 s2 c2 +    else Just $ "Unknown DatatypeLibrary " ++ uri+  where+  DTC _ dtEqFct _ = fromJust $ lookup uri datatypeLibraries+++{- |+Tests whether a XML instance value matches a data-pattern.++The following tests are performed:+   +   * 1. :  does the uri exist in the list of supported datatype libraries++   - 2. :  does the library support the datatype+   +   - 3. :  does the XML instance value match the data-pattern+   +   - 4. :  does the XML instance value match all params+   +The hard work is done by the specialized 'DatatypeAllows' function +(see also: 'DatatypeCheck') of the datatype library.+   +-}+datatypeAllows :: Uri -> DatatypeAllows+datatypeAllows uri d params s1 c1 +  = if elem uri (map fst datatypeLibraries)+    then dtAllowFct d params s1 c1 +    else Just $ "Unknown DatatypeLibrary " ++ uri+  where+  DTC dtAllowFct _ _ = fromJust $ lookup uri datatypeLibraries+++-- --------------------------------------------------------------------------------------                    +-- Relax NG build in datatype library++relaxDatatypeLib :: DatatypeLibrary+relaxDatatypeLib +  = (relaxNamespace, DTC datatypeAllowsRelax datatypeEqualRelax relaxDatatypes)+++-- | if there is no datatype uri, the build in datatype library is used+relaxDatatypeLib' :: DatatypeLibrary+relaxDatatypeLib'+  = ("", DTC datatypeAllowsRelax datatypeEqualRelax relaxDatatypes)+++-- | The build in Relax NG datatype lib supportes only the token and string datatype,+-- without any params.+relaxDatatypes :: AllowedDatatypes+relaxDatatypes = [ ("token", [])+                 , ("string", [])+                 ]++datatypeAllowsRelax :: DatatypeAllows+datatypeAllowsRelax "string" [] _ _ = Nothing+datatypeAllowsRelax "token" [] _ _ = Nothing+datatypeAllowsRelax d p v _ +  = Just $ "Datatype " ++ d ++ " with parameter(s) " +++           formatStringList ", " (map (\(a, b) -> a ++ " = " ++ b) p) ++ +           " and value = " ++ v +++           " not allowed for DatatypeLibrary " ++ relaxNamespace+++-- | If the token datatype is used, the values have to be normalized+-- (trailing and leading whitespaces are removed).+-- token does not perform any changes to the values.+datatypeEqualRelax :: DatatypeEqual+datatypeEqualRelax d@"string" s1 _ s2 _+  = if s1 == s2+    then Nothing +    else Just $ errorMsgEqual d s1 s2+datatypeEqualRelax d@"token" s1 _ s2 _+  = if (normalizeWhitespace s1) == (normalizeWhitespace s2) +    then Nothing +    else Just $ errorMsgEqual d s1 s2+datatypeEqualRelax d s1 _ s2 _+  = Just $ "Datatype " ++ d ++ " with values = " ++ s1 ++ +           " and " ++ s2 ++ +           " not allowed for DatatypeLibrary " ++ relaxNamespace
+ src/Text/XML/HXT/RelaxNG/DataTypes.hs view
@@ -0,0 +1,183 @@+module Text.XML.HXT.RelaxNG.DataTypes+where ++import Text.XML.HXT.DOM.TypeDefs++-- ------------------------------------------------------------++relaxSchemaFile	:: String+relaxSchemaFile = "Text/XML/HXT/RelaxNG/SpecificationSchema.rng"+++relaxSchemaGrammarFile :: String+relaxSchemaGrammarFile = "Text/XML/HXT/RelaxNG/SpecificationSchemaGrammar.rng"++-- ------------------------------------------------------------+-- datatypes for the simplification process++a_numberOfErrors,+ a_relaxSimplificationChanges,+ defineOrigName :: String++a_numberOfErrors             = "numberOfErrors"+a_relaxSimplificationChanges = "relaxSimplificationChanges"+defineOrigName               = "RelaxDefineOriginalName"+++type Env = [(String, XmlTree)]++-- | Start of a context attribute value +-- (see also: 'Text.XML.HXT.RelaxNG.Simplification.simplificationStep1')+--+-- The value is always followed by the original attribute name and value++contextAttributes :: String+contextAttributes = "RelaxContext:"+++-- | Start of base uri attribute value +-- (see also: 'simplificationStep1' in "Text.XML.HXT.RelaxNG.Simplification")++contextBaseAttr :: String+contextBaseAttr = "RelaxContextBaseURI"+++-- see simplificationStep5 in Text.XML.HXT.RelaxNG.Simplification++type OldName = String+type NewName = String+type NamePair = (OldName, NewName)+type RefList = [NamePair]+++-- ------------------------------------------------------------+-- datatype library handling++-- | Type of all datatype libraries functions that tests whether +-- a XML instance value matches a value-pattern.+--+-- Returns Just \"errorMessage\" in case of an error else Nothing.++type DatatypeEqual  = DatatypeName -> String -> Context -> String -> Context -> Maybe String+++-- | Type of all datatype libraries functions that tests whether +-- a XML instance value matches a data-pattern.+--+-- Returns Just \"errorMessage\" in case of an error else Nothing.++type DatatypeAllows = DatatypeName -> ParamList -> String -> Context -> Maybe String+++-- | List of all supported datatype libraries++type DatatypeLibraries = [DatatypeLibrary]+++-- | Each datatype library is identified by a URI.++type DatatypeLibrary   = (Uri, DatatypeCheck)++type DatatypeName      = String++type ParamName         = String+++-- | List of all supported params for a datatype++type AllowedParams     = [ParamName]+++-- | List of all supported datatypes and there allowed params++type AllowedDatatypes  = [(DatatypeName, AllowedParams)]+++-- | The Constructor exports the list of supported datatypes for a library.+-- It also exports the specialized datatype library functions to validate +-- a XML instance value with respect to a datatype.++data DatatypeCheck +  = DTC { dtAllowsFct    :: DatatypeAllows -- ^ function to test whether a value matches a data-pattern+        , dtEqualFct     :: DatatypeEqual -- ^ function to test whether a value matches a value-pattern+        , dtAllowedTypes :: AllowedDatatypes -- ^ list of all supported params for a datatype+        }++-- ------------------------------------------------------------+-- datatypes for the validation process++type Uri = String++type LocalName = String+++-- | List of parameters; each parameter is a pair consisting of a local name and a value.++type ParamList = [(LocalName, String)]++type Prefix = String+++-- | A Context represents the context of an XML element. +-- It consists of a base URI and a mapping from prefixes to namespace URIs.++type Context = (Uri, [(Prefix, Uri)])++-- | A Datatype identifies a datatype by a datatype library name and a local name.++type Datatype = (Uri, LocalName)+++-- | Represents a name class++data NameClass = AnyName+               | AnyNameExcept NameClass+               | Name Uri LocalName+               | NsName Uri+               | NsNameExcept Uri NameClass+               | NameClassChoice NameClass NameClass+               | NCError String+               deriving Eq++instance Show NameClass+    where+    show AnyName = "AnyName"+    show (AnyNameExcept nameClass) +         = "AnyNameExcept: " ++ show nameClass+    show (Name uri localName) = "{" ++ uri ++ "}" ++ localName+    show (NsName uri) = "{" ++ uri ++ "}AnyName"+    show (NsNameExcept uri nameClass) +          = "NsNameExcept: {" ++ uri ++ "}" ++ show nameClass+    show (NameClassChoice nameClass1 nameClass2)+         = "NameClassChoice: " ++ show nameClass1 ++ "|" ++ show nameClass2+    show (NCError string) = "NCError: " ++ string+++-- | Represents a pattern after simplification++data Pattern = Empty+             | NotAllowed String -- ^ String represents the error message+             | Text+             | Choice Pattern Pattern+             | Interleave Pattern Pattern+             | Group Pattern Pattern+             | OneOrMore Pattern+             | List Pattern+             | Data Datatype ParamList+             | DataExcept Datatype ParamList Pattern+             | Value Datatype String Context+             | Attribute NameClass Pattern+             | Element NameClass Pattern+             | After Pattern Pattern+    deriving Show++-- | Possible content types of a Relax NG pattern.+-- (see also chapter 7.2 in Relax NG specification)++data ContentType = CTEmpty+                 | CTComplex+                 | CTSimple+                 | CTNone+     deriving (Show, Eq, Ord)++-- ------------------------------------------------------------
+ src/Text/XML/HXT/RelaxNG/PatternFunctions.hs view
@@ -0,0 +1,108 @@+-- | basic 'Pattern' functions+--++module Text.XML.HXT.RelaxNG.PatternFunctions++where++import Text.XML.HXT.RelaxNG.DataTypes+++-- ------------------------------------------------------------++isRelaxEmpty :: Pattern -> Bool+isRelaxEmpty Empty = True          +isRelaxEmpty _     = False++isRelaxNotAllowed :: Pattern -> Bool+isRelaxNotAllowed (NotAllowed _) = True          +isRelaxNotAllowed _              = False++isRelaxText :: Pattern -> Bool+isRelaxText Text = True          +isRelaxText _    = False++isRelaxChoice :: Pattern -> Bool+isRelaxChoice (Choice _ _) = True          +isRelaxChoice _            = False++isRelaxInterleave :: Pattern -> Bool+isRelaxInterleave (Interleave _ _) = True          +isRelaxInterleave _                = False++isRelaxGroup :: Pattern -> Bool+isRelaxGroup (Group _ _) = True          +isRelaxGroup _           = False++isRelaxOneOrMore :: Pattern -> Bool+isRelaxOneOrMore (OneOrMore _) = True          +isRelaxOneOrMore _             = False++isRelaxList :: Pattern -> Bool+isRelaxList (List _) = True          +isRelaxList _        = False++isRelaxData :: Pattern -> Bool+isRelaxData (Data _ _) = True          +isRelaxData _          = False++isRelaxDataExcept :: Pattern -> Bool+isRelaxDataExcept (DataExcept _ _ _) = True          +isRelaxDataExcept _                  = False++isRelaxValue :: Pattern -> Bool+isRelaxValue (Value _ _ _) = True          +isRelaxValue _             = False++isRelaxAttribute :: Pattern -> Bool+isRelaxAttribute (Attribute _ _) = True          +isRelaxAttribute _               = False++isRelaxElement :: Pattern -> Bool+isRelaxElement (Element _ _) = True          +isRelaxElement _             = False+             +isRelaxAfter :: Pattern -> Bool+isRelaxAfter (After _ _) = True          +isRelaxAfter _           = False+++-- | Returns a list of children pattern for each pattern, +-- e.g. (Choice p1 p2) = [p1, p2]+getChildrenPattern :: Pattern -> [Pattern]+getChildrenPattern (Choice p1 p2) = [p1, p2]+getChildrenPattern (Interleave p1 p2) = [p1, p2]+getChildrenPattern (Group p1 p2) = [p1, p2]+getChildrenPattern (OneOrMore p) = [p]+getChildrenPattern (List p) = [p]+getChildrenPattern (Element _ p) = [p]+getChildrenPattern (DataExcept _ _ p) = [p]+getChildrenPattern (Attribute _ p) = [p]+getChildrenPattern (After p1 p2) = [p1, p2]+getChildrenPattern _ = []+++-- | Returns the nameclass of a element- or attribute pattern.+-- Otherwise 'NCError' is returned.+getNameClassFromPattern :: Pattern -> NameClass+getNameClassFromPattern (Element nc _) = nc+getNameClassFromPattern (Attribute nc _) = nc+getNameClassFromPattern _ = NCError "Pattern without a NameClass"+++-- | Returns a string representation of the pattern name+getPatternName :: Pattern -> String+getPatternName (Empty) = "Empty"+getPatternName (NotAllowed _) = "NotAllowed"+getPatternName (Text) = "Text"+getPatternName (Choice _ _) = "Choice"+getPatternName (Interleave _ _) = "Interleave"+getPatternName (Group _ _) = "Group"+getPatternName (OneOrMore _) = "OneOrMore"+getPatternName (List _) = "List"+getPatternName (Data _ _ ) = "Data"+getPatternName (DataExcept _ _ _) = "DataExcept"+getPatternName (Value _ _ _) = "Value"+getPatternName (Attribute _ _) = "Attribute"+getPatternName (Element _ _) = "Element"+getPatternName (After _ _) = "After"
+ src/Text/XML/HXT/RelaxNG/PatternToString.hs view
@@ -0,0 +1,360 @@+module Text.XML.HXT.RelaxNG.PatternToString+  ( patternToStringTree+  , patternToFormatedString+  , xmlTreeToPatternStringTree+  , xmlTreeToPatternFormatedString+  , xmlTreeToPatternString+  , nameClassToString+  )+where++import Control.Arrow.ListArrows++import Data.Tree.NTree.TypeDefs++import Text.XML.HXT.Arrow.DOMInterface++import Text.XML.HXT.RelaxNG.DataTypes+import Text.XML.HXT.RelaxNG.CreatePattern+import Text.XML.HXT.RelaxNG.Utils++-- ------------------------------------------------------------++type PatternTree = NTree String+++{- |+Returns a string representation of the pattern structure.+(see also: 'createPatternFromXmlTree')++Example:++> Element {}foo (Choice (Choice (Value ("","token") "abc"+> ("foo","www.bar.baz")]))(Data ("http://www.mysql.com","VARCHAR")+> [("length","2"),("maxLength","5")])) (Element {}bar (Group (Element {}baz++The function can @not@ be used to display circular ref-pattern structures.+-}++xmlTreeToPatternString :: LA XmlTree String+xmlTreeToPatternString+    = createPatternFromXmlTree+      >>^+      show+++-- | Returns a string representation of a nameclass.++nameClassToString :: NameClass -> String+nameClassToString AnyName+    = "AnyName"++nameClassToString (AnyNameExcept nc) +    = "AnyNameExcept " ++ nameClassToString nc++nameClassToString (Name uri local) +    = "{" ++ uri ++ "}" ++ local++nameClassToString (NsName uri)+    = "{" ++ uri ++ "}"++nameClassToString (NsNameExcept uri nc)+    = uri ++ "except (NsName) " ++ nameClassToString nc++nameClassToString (NameClassChoice nc1 nc2)+    = nameClassToString nc1 ++ " " ++ nameClassToString nc2++nameClassToString (NCError e)+    = "NameClass Error: " ++ e+++-- ------------------------------------------------------------++{- |+Returns a tree representation of the pattern structure.+The hard work is done by 'formatTree'.++Example:++> +---element {}bar+>     |+>     +---group+>         |+>         +---oneOrMore+>         |   |+>         |   +---attribute AnyName+>         |       |+>         |       +---text+>         |+>         +---text+               +The function can be used to display circular ref-pattern structures.++Example:++> <define name="baz">+>   <element name="baz">+>     ... <ref name="baz"/> ...+>   </element>+> </define>++-}++patternToStringTree :: LA Pattern String+patternToStringTree+    = fromSLA [] pattern2PatternTree+      >>^+      (\p -> formatTree id p ++ "\n")+++-- | Returns a tree representation of the pattern structure.+-- (see also: 'createPatternFromXmlTree' and 'patternToStringTree')++xmlTreeToPatternStringTree :: LA XmlTree String+xmlTreeToPatternStringTree+    = createPatternFromXmlTree +      >>>+      patternToStringTree+++pattern2PatternTree :: SLA [NameClass] Pattern PatternTree+pattern2PatternTree+    = choiceA+      [ isA isRelaxEmpty      :-> (constA $ NTree "empty" [])+      , isA isRelaxNotAllowed :-> notAllowed2PatternTree+      , isA isRelaxText       :-> (constA $ NTree "text" [])+      , isA isRelaxChoice     :-> choice2PatternTree          +      , isA isRelaxInterleave :-> children2PatternTree "interleave"+      , isA isRelaxGroup      :-> children2PatternTree "group"+      , isA isRelaxOneOrMore  :-> children2PatternTree "oneOrMore"+      , isA isRelaxList       :-> children2PatternTree "list"+      , isA isRelaxData       :-> data2PatternTree+      , isA isRelaxDataExcept :-> dataExcept2PatternTree+      , isA isRelaxValue      :-> value2PatternTree+      , isA isRelaxAttribute  :-> createPatternTreeFromElement "attribute"          +      , isA isRelaxElement    :-> element2PatternTree+      , isA isRelaxAfter      :-> children2PatternTree "after"+      ]++notAllowed2PatternTree :: SLA [NameClass] Pattern PatternTree+notAllowed2PatternTree+    = arr $ \(NotAllowed s) -> NTree "notAllowed" [NTree s []]+++data2PatternTree :: SLA [NameClass] Pattern PatternTree+data2PatternTree +    = arr $ \ (Data d p) -> NTree "data" [ datatype2PatternTree d+					 , mapping2PatternTree "parameter" p+					 ]+ +dataExcept2PatternTree :: SLA [NameClass] Pattern PatternTree+dataExcept2PatternTree +    = this &&& (listA $ arrL getChildrenPattern >>> pattern2PatternTree)+      >>>+      arr2 ( \ (DataExcept d param _) pattern ->+             NTree "dataExcept" ([ datatype2PatternTree d+				 , mapping2PatternTree "parameter" param+				 ] ++ pattern)+           )++value2PatternTree :: SLA [NameClass] Pattern PatternTree +value2PatternTree+    = arr $ \ (Value d v c) -> NTree ("value = " ++ v) [ datatype2PatternTree d+                                                       , context2PatternTree c+                                                       ]+++createPatternTreeFromElement :: String -> SLA [NameClass] Pattern PatternTree+createPatternTreeFromElement name+    = ( arr getNameClassFromPattern+	&&&+	listA (arrL getChildrenPattern >>> pattern2PatternTree)+      )+      >>>+      arr2 (\nc rl -> NTree (name ++ " " ++ show nc) rl)++children2PatternTree :: String -> SLA [NameClass] Pattern PatternTree+children2PatternTree name +    = listA (arrL getChildrenPattern >>> pattern2PatternTree) +      >>^+      (NTree name)++choice2PatternTree :: SLA [NameClass] Pattern PatternTree+choice2PatternTree +    = ifA ( -- wenn das zweite kind ein noch nicht ausgegebenes element ist, +            -- muss dieses anders behandelt werden+            -- nur fuer bessere formatierung des outputs+            arr (last . getChildrenPattern) >>> isA (isRelaxElement) >>>+            (arr getNameClassFromPattern &&& getState) >>> +            isA(\ (nc, liste) -> not $ elem nc liste)+          )+      ( -- element in status aufnehmen, wird dann nicht mehr vom erste kind ausgegeben+        arr getChildrenPattern+	>>>+        changeState (\s p -> (getNameClassFromPattern (last p)) : s)+	>>>+        ( ( head ^>> pattern2PatternTree )		-- erstes kind normal verarbeiten+          &&&						-- zweites kind, das element, verarbeiten+          ( last ^>> createPatternTreeFromElement "element" )+        )+        >>>+        arr2 ( \ l1 l2 -> NTree "choice" [l1, l2] )+      )+      ( children2PatternTree "choice" )++                            +element2PatternTree :: SLA [NameClass] Pattern PatternTree+element2PatternTree +    = ifA ( (arr getNameClassFromPattern &&& getState)+            >>> +            isA (\ (nc, liste) -> elem nc liste)+          )+      ( arr getNameClassFromPattern+        >>> +        arr (\nc -> NTree ("reference to element " ++ show nc) [])+      )+      ( changeState (\ s p -> (getNameClassFromPattern p) : s)+        >>>+        createPatternTreeFromElement "element"+      )+++mapping2PatternTree :: String -> [(Prefix, Uri)] -> PatternTree+mapping2PatternTree name mapping+    = NTree name (map (\(a, b) -> NTree (a ++ " = " ++ b) []) mapping)+++datatype2PatternTree :: Datatype -> PatternTree+datatype2PatternTree dt+    = NTree (datatype2String dt) []+++context2PatternTree :: Context -> PatternTree+context2PatternTree (base, mapping)+    = NTree "context" [ NTree ("base-uri = " ++ base) []+                      , mapping2PatternTree "namespace environment" mapping+                      ]++-- ------------------------------------------------------------++-- | Returns a formated string representation of the pattern structure.+-- (see also: 'createPatternFromXmlTree' and 'patternToFormatedString')+xmlTreeToPatternFormatedString :: LA XmlTree String+xmlTreeToPatternFormatedString+    = createPatternFromXmlTree +      >>>+      fromSLA [] patternToFormatedString+++{- |+Returns a formated string representation of the pattern structure.++Example:++> Element {}foo (Choice (Choice ( Value = abc, +> datatypelibrary = http://relaxng.org/ns/structure/1.0, type = token, +> context (base-uri =file://test.rng, +> parameter: xml = http://www.w3.org/XML/1998/namespaces, foo = www.bar.baz), ++The function can be used to display circular ref-pattern structures.+-}++patternToFormatedString :: SLA [NameClass] Pattern String+patternToFormatedString+    = choiceA+      [ isA isRelaxEmpty      :-> (constA " empty ")+      , isA isRelaxNotAllowed :-> (arr $ \ (NotAllowed errorEnv) -> errorEnv)+      , isA isRelaxText       :-> (constA " text ")+      , isA isRelaxChoice     :-> children2FormatedString "choice"+      , isA isRelaxInterleave :-> children2FormatedString "interleave"+      , isA isRelaxGroup      :-> children2FormatedString "group"+      , isA isRelaxOneOrMore  :-> children2FormatedString "oneOrMore"+      , isA isRelaxList       :-> children2FormatedString "list"+      , isA isRelaxData       :-> data2FormatedString+      , isA isRelaxDataExcept :-> dataExcept2FormatedString+      , isA isRelaxValue      :-> value2FormatedString+      , isA isRelaxAttribute  :-> createFormatedStringFromElement "attribute"+      , isA isRelaxElement    :-> element2FormatedString+      , isA isRelaxAfter      :-> children2FormatedString "after"+      ]++children2FormatedString :: String -> SLA [NameClass] Pattern String+children2FormatedString name+    = listA (arrL getChildrenPattern >>> patternToFormatedString) +      >>^+      (\ l -> name ++ " (" ++ formatStringList ", " l ++ ") " )++data2FormatedString :: SLA [NameClass] Pattern String+data2FormatedString+    = arr ( \ (Data datatype paramList) ->+	    "Data " ++ datatype2String datatype ++ "\n " ++ +            mapping2String "parameter" paramList ++ "\n"+	  )++dataExcept2FormatedString :: SLA [NameClass] Pattern String+dataExcept2FormatedString + = arr ( \ (DataExcept datatype paramList _) ->+         "DataExcept " ++ show datatype ++ "\n " ++ +         mapping2String "parameter" paramList ++ "\n "+       )+   &&&+   ( arr (\ (DataExcept _ _ p) -> p) >>> patternToFormatedString )+   >>>+   arr2 (++)+++value2FormatedString :: SLA [NameClass] Pattern String+value2FormatedString + = arr $ \(Value datatype val context) ->+           "Value = " ++ val ++ ", " ++ datatype2String datatype ++ +           "\n " ++ context2String context ++ "\n"+++element2FormatedString :: SLA [NameClass] Pattern String+element2FormatedString+    = ifA ( (arr getNameClassFromPattern &&& getState)+            >>>+            isA (\ (nc, liste) -> elem nc liste)+	  )+      ( arr getNameClassFromPattern+	>>^ +	( \nc -> "reference to element " ++ nameClassToString nc ++ " " )+      )+      ( changeState (\ s p -> (getNameClassFromPattern p) : s)+	>>>+	createFormatedStringFromElement "element"+      )+++createFormatedStringFromElement :: String -> SLA [NameClass] Pattern String+createFormatedStringFromElement name+    = ( arr getNameClassFromPattern+	&&&+	( listA (arrL getChildrenPattern >>> patternToFormatedString)+	  >>^+	  formatStringList ", "+	)+      )+      >>>+      arr2 (\ nc rl -> name ++ " " ++ nameClassToString nc ++ " (" ++ rl ++ ")")+++-- ------------------------------------------------------------++mapping2String :: String -> [(Prefix, Uri)] -> String+mapping2String name mapping+    = name ++ ": " ++ +      formatStringList ", " (map (\(a, b) -> a ++ " = " ++ b) mapping)++datatype2String :: Datatype -> String+datatype2String (lib, localName)+    = "datatypelibrary = " ++ getLib ++ ", type = " ++ localName+    where+    getLib = if lib == "" then relaxNamespace else lib+  +context2String :: Context -> String+context2String (base, mapping)+    = "context (base-uri = " ++ base ++ ", " +++      mapping2String "namespace environment" mapping ++ ")"+  +-- ------------------------------------------------------------
+ src/Text/XML/HXT/RelaxNG/Schema.hs view
@@ -0,0 +1,3922 @@+{- |+   Module     : Text.HXT.RelaxNG.Schema+   Version    : $Id: Schema.hs,v 1.3 2005/09/30 14:41:44 hxml Exp $++Don't edit this module, it's generated by RelaxSchemaToXmlTree++-}++module Text.XML.HXT.RelaxNG.Schema+    ( relaxSchemaTree, relaxSchemaArrow )+where++import Text.XML.HXT.DOM.TypeDefs+import Text.XML.HXT.DOM.XmlTreeFunctions++import Control.Arrow.ListArrows++relaxSchemaArrow :: ArrowList a => a b XmlTree+relaxSchemaArrow = constA relaxSchemaTree++relaxSchemaTree :: XmlTree+relaxSchemaTree =+  let+  ns1	= "http://relaxng.org/ns/structure/1.0"+  qn1	= mkSNsName "RelaxContext:xml"+  qn2	= mkSNsName "RelaxContextBaseURI"+  qn3	= mkSNsName "RelaxContextDefault"+  qn4	= mkNsName "anyName" ns1+  qn5	= mkNsName "attribute" ns1+  qn6	= mkNsName "choice" ns1+  qn7	= mkNsName "data" ns1+  qn8	= mkSNsName "datatypeLibrary"+  qn9	= mkNsName "define" ns1+  qn10	= mkNsName "element" ns1+  qn11	= mkNsName "empty" ns1+  qn12	= mkNsName "except" ns1+  qn13	= mkNsName "grammar" ns1+  qn14	= mkNsName "group" ns1+  qn15	= mkNsName "interleave" ns1+  qn16	= mkSNsName "name"+  qn17	= mkNsName "name" ns1+  qn18	= mkSNsName "ns"+  qn19	= mkNsName "nsName" ns1+  qn20	= mkNsName "oneOrMore" ns1+  qn21	= mkNsName "ref" ns1+  qn22	= mkNsName "start" ns1+  qn23	= mkNsName "text" ns1+  qn24	= mkSNsName "type"+  qn25	= mkNsName "value" ns1+  in+  mkRootTree []+    [ mkQTagTree qn13 []+      [ mkQTagTree qn22 []+        [ mkQTagTree qn6 []+          [ mkQTagTree qn6 []+            [ mkQTagTree qn6 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn6 []+                              [ mkQTagTree qn6 []+                                [ mkQTagTree qn6 []+                                  [ mkQTagTree qn6 []+                                    [ mkQTagTree qn6 []+                                      [ mkQTagTree qn6 []+                                        [ mkQTagTree qn6 []+                                          [ mkQTagTree qn6 []+                                            [ mkQTagTree qn21+                                              [ mkQAttrTree qn16 [ mkXTextTree "24" ]+                                              ] []+                                            , mkQTagTree qn21+                                              [ mkQAttrTree qn16 [ mkXTextTree "25" ]+                                              ] []+                                            ]+                                          , mkQTagTree qn21+                                            [ mkQAttrTree qn16 [ mkXTextTree "26" ]+                                            ] []+                                          ]+                                        , mkQTagTree qn21+                                          [ mkQAttrTree qn16 [ mkXTextTree "27" ]+                                          ] []+                                        ]+                                      , mkQTagTree qn21+                                        [ mkQAttrTree qn16 [ mkXTextTree "28" ]+                                        ] []+                                      ]+                                    , mkQTagTree qn21+                                      [ mkQAttrTree qn16 [ mkXTextTree "29" ]+                                      ] []+                                    ]+                                  , mkQTagTree qn21+                                    [ mkQAttrTree qn16 [ mkXTextTree "30" ]+                                    ] []+                                  ]+                                , mkQTagTree qn21+                                  [ mkQAttrTree qn16 [ mkXTextTree "31" ]+                                  ] []+                                ]+                              , mkQTagTree qn21+                                [ mkQAttrTree qn16 [ mkXTextTree "32" ]+                                ] []+                              ]+                            , mkQTagTree qn21+                              [ mkQAttrTree qn16 [ mkXTextTree "33" ]+                              ] []+                            ]+                          , mkQTagTree qn21+                            [ mkQAttrTree qn16 [ mkXTextTree "34" ]+                            ] []+                          ]+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "35" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "36" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "37" ]+                      ] []+                    ]+                  , mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "38" ]+                    ] []+                  ]+                , mkQTagTree qn21+                  [ mkQAttrTree qn16 [ mkXTextTree "39" ]+                  ] []+                ]+              , mkQTagTree qn21+                [ mkQAttrTree qn16 [ mkXTextTree "42" ]+                ] []+              ]+            , mkQTagTree qn21+              [ mkQAttrTree qn16 [ mkXTextTree "43" ]+              ] []+            ]+          , mkQTagTree qn21+            [ mkQAttrTree qn16 [ mkXTextTree "44" ]+            ] []+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "44" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "grammar"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "11" ]+                          ] []+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "10" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "22" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "23" ]+                      ] []+                    ]+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "43" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "externalRef"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn5 []+                [ mkQTagTree qn17+                  [ mkQAttrTree qn18 [ mkXTextTree "" ]+                  ]+                  [ mkXTextTree "href"+                  ]+                , mkQTagTree qn7+                  [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                  , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                  ] []+                ]+              , mkQTagTree qn14 []+                [ mkQTagTree qn14 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn5 []+                      [ mkQTagTree qn17+                        [ mkQAttrTree qn18 [ mkXTextTree "" ]+                        ]+                        [ mkXTextTree "ns"+                        ]+                      , mkQTagTree qn23 [] []+                      ]+                    ]+                  , mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn5 []+                      [ mkQTagTree qn17+                        [ mkQAttrTree qn18 [ mkXTextTree "" ]+                        ]+                        [ mkXTextTree "datatypeLibrary"+                        ]+                      , mkQTagTree qn7+                        [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                        , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                        ] []+                      ]+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn20 []+                    [ mkQTagTree qn5 []+                      [ mkQTagTree qn4 []+                        [ mkQTagTree qn12 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn19+                              [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                              ] []+                            , mkQTagTree qn19+                              [ mkQAttrTree qn18 [ mkXTextTree "" ]+                              ] []+                            ]+                          ]+                        ]+                      , mkQTagTree qn23 [] []+                      ]+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn6 []+              [ mkQTagTree qn11 [] []+              , mkQTagTree qn20 []+                [ mkQTagTree qn21+                  [ mkQAttrTree qn16 [ mkXTextTree "15" ]+                  ] []+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "42" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "notAllowed"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn6 []+              [ mkQTagTree qn11 [] []+              , mkQTagTree qn20 []+                [ mkQTagTree qn21+                  [ mkQAttrTree qn16 [ mkXTextTree "15" ]+                  ] []+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "39" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "data"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn5 []+                [ mkQTagTree qn17+                  [ mkQAttrTree qn18 [ mkXTextTree "" ]+                  ]+                  [ mkXTextTree "type"+                  ]+                , mkQTagTree qn7+                  [ mkQAttrTree qn24 [ mkXTextTree "NCName" ]+                  , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                  ] []+                ]+              , mkQTagTree qn14 []+                [ mkQTagTree qn14 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn5 []+                      [ mkQTagTree qn17+                        [ mkQAttrTree qn18 [ mkXTextTree "" ]+                        ]+                        [ mkXTextTree "ns"+                        ]+                      , mkQTagTree qn23 [] []+                      ]+                    ]+                  , mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn5 []+                      [ mkQTagTree qn17+                        [ mkQAttrTree qn18 [ mkXTextTree "" ]+                        ]+                        [ mkXTextTree "datatypeLibrary"+                        ]+                      , mkQTagTree qn7+                        [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                        , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                        ] []+                      ]+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn20 []+                    [ mkQTagTree qn5 []+                      [ mkQTagTree qn4 []+                        [ mkQTagTree qn12 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn19+                              [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                              ] []+                            , mkQTagTree qn19+                              [ mkQAttrTree qn18 [ mkXTextTree "" ]+                              ] []+                            ]+                          ]+                        ]+                      , mkQTagTree qn23 [] []+                      ]+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn20 []+                    [ mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "40" ]+                      ] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "41" ]+                    ] []+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "41" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "except"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn20 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn6 []+                              [ mkQTagTree qn6 []+                                [ mkQTagTree qn6 []+                                  [ mkQTagTree qn6 []+                                    [ mkQTagTree qn6 []+                                      [ mkQTagTree qn6 []+                                        [ mkQTagTree qn6 []+                                          [ mkQTagTree qn6 []+                                            [ mkQTagTree qn6 []+                                              [ mkQTagTree qn6 []+                                                [ mkQTagTree qn6 []+                                                  [ mkQTagTree qn6 []+                                                    [ mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "24" ]+                                                      ] []+                                                    , mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]+                                                      ] []+                                                    ]+                                                  , mkQTagTree qn21+                                                    [ mkQAttrTree qn16 [ mkXTextTree "26" ]+                                                    ] []+                                                  ]+                                                , mkQTagTree qn21+                                                  [ mkQAttrTree qn16 [ mkXTextTree "27" ]+                                                  ] []+                                                ]+                                              , mkQTagTree qn21+                                                [ mkQAttrTree qn16 [ mkXTextTree "28" ]+                                                ] []+                                              ]+                                            , mkQTagTree qn21+                                              [ mkQAttrTree qn16 [ mkXTextTree "29" ]+                                              ] []+                                            ]+                                          , mkQTagTree qn21+                                            [ mkQAttrTree qn16 [ mkXTextTree "30" ]+                                            ] []+                                          ]+                                        , mkQTagTree qn21+                                          [ mkQAttrTree qn16 [ mkXTextTree "31" ]+                                          ] []+                                        ]+                                      , mkQTagTree qn21+                                        [ mkQAttrTree qn16 [ mkXTextTree "32" ]+                                        ] []+                                      ]+                                    , mkQTagTree qn21+                                      [ mkQAttrTree qn16 [ mkXTextTree "33" ]+                                      ] []+                                    ]+                                  , mkQTagTree qn21+                                    [ mkQAttrTree qn16 [ mkXTextTree "34" ]+                                    ] []+                                  ]+                                , mkQTagTree qn21+                                  [ mkQAttrTree qn16 [ mkXTextTree "35" ]+                                  ] []+                                ]+                              , mkQTagTree qn21+                                [ mkQAttrTree qn16 [ mkXTextTree "36" ]+                                ] []+                              ]+                            , mkQTagTree qn21+                              [ mkQAttrTree qn16 [ mkXTextTree "37" ]+                              ] []+                            ]+                          , mkQTagTree qn21+                            [ mkQAttrTree qn16 [ mkXTextTree "38" ]+                            ] []+                          ]+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "39" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "42" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "43" ]+                      ] []+                    ]+                  , mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "44" ]+                    ] []+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "40" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "param"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn5 []+              [ mkQTagTree qn17+                [ mkQAttrTree qn18 [ mkXTextTree "" ]+                ]+                [ mkXTextTree "name"+                ]+              , mkQTagTree qn7+                [ mkQAttrTree qn24 [ mkXTextTree "NCName" ]+                , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                ] []+              ]+            , mkQTagTree qn23 [] []+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "38" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "value"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn5 []+                  [ mkQTagTree qn17+                    [ mkQAttrTree qn18 [ mkXTextTree "" ]+                    ]+                    [ mkXTextTree "type"+                    ]+                  , mkQTagTree qn7+                    [ mkQAttrTree qn24 [ mkXTextTree "NCName" ]+                    , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn14 []+                [ mkQTagTree qn14 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn5 []+                      [ mkQTagTree qn17+                        [ mkQAttrTree qn18 [ mkXTextTree "" ]+                        ]+                        [ mkXTextTree "ns"+                        ]+                      , mkQTagTree qn23 [] []+                      ]+                    ]+                  , mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn5 []+                      [ mkQTagTree qn17+                        [ mkQAttrTree qn18 [ mkXTextTree "" ]+                        ]+                        [ mkXTextTree "datatypeLibrary"+                        ]+                      , mkQTagTree qn7+                        [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                        , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                        ] []+                      ]+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn20 []+                    [ mkQTagTree qn5 []+                      [ mkQTagTree qn4 []+                        [ mkQTagTree qn12 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn19+                              [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                              ] []+                            , mkQTagTree qn19+                              [ mkQAttrTree qn18 [ mkXTextTree "" ]+                              ] []+                            ]+                          ]+                        ]+                      , mkQTagTree qn23 [] []+                      ]+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn23 [] []+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "37" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "text"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn6 []+              [ mkQTagTree qn11 [] []+              , mkQTagTree qn20 []+                [ mkQTagTree qn21+                  [ mkQAttrTree qn16 [ mkXTextTree "15" ]+                  ] []+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "36" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "empty"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn6 []+              [ mkQTagTree qn11 [] []+              , mkQTagTree qn20 []+                [ mkQTagTree qn21+                  [ mkQAttrTree qn16 [ mkXTextTree "15" ]+                  ] []+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "35" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "parentRef"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn5 []+              [ mkQTagTree qn17+                [ mkQAttrTree qn18 [ mkXTextTree "" ]+                ]+                [ mkXTextTree "name"+                ]+              , mkQTagTree qn7+                [ mkQAttrTree qn24 [ mkXTextTree "NCName" ]+                , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                ] []+              ]+            , mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "34" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "ref"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn5 []+              [ mkQTagTree qn17+                [ mkQAttrTree qn18 [ mkXTextTree "" ]+                ]+                [ mkXTextTree "name"+                ]+              , mkQTagTree qn7+                [ mkQAttrTree qn24 [ mkXTextTree "NCName" ]+                , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                ] []+              ]+            , mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "33" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "mixed"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn20 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn6 []+                              [ mkQTagTree qn6 []+                                [ mkQTagTree qn6 []+                                  [ mkQTagTree qn6 []+                                    [ mkQTagTree qn6 []+                                      [ mkQTagTree qn6 []+                                        [ mkQTagTree qn6 []+                                          [ mkQTagTree qn6 []+                                            [ mkQTagTree qn6 []+                                              [ mkQTagTree qn6 []+                                                [ mkQTagTree qn6 []+                                                  [ mkQTagTree qn6 []+                                                    [ mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "24" ]+                                                      ] []+                                                    , mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]+                                                      ] []+                                                    ]+                                                  , mkQTagTree qn21+                                                    [ mkQAttrTree qn16 [ mkXTextTree "26" ]+                                                    ] []+                                                  ]+                                                , mkQTagTree qn21+                                                  [ mkQAttrTree qn16 [ mkXTextTree "27" ]+                                                  ] []+                                                ]+                                              , mkQTagTree qn21+                                                [ mkQAttrTree qn16 [ mkXTextTree "28" ]+                                                ] []+                                              ]+                                            , mkQTagTree qn21+                                              [ mkQAttrTree qn16 [ mkXTextTree "29" ]+                                              ] []+                                            ]+                                          , mkQTagTree qn21+                                            [ mkQAttrTree qn16 [ mkXTextTree "30" ]+                                            ] []+                                          ]+                                        , mkQTagTree qn21+                                          [ mkQAttrTree qn16 [ mkXTextTree "31" ]+                                          ] []+                                        ]+                                      , mkQTagTree qn21+                                        [ mkQAttrTree qn16 [ mkXTextTree "32" ]+                                        ] []+                                      ]+                                    , mkQTagTree qn21+                                      [ mkQAttrTree qn16 [ mkXTextTree "33" ]+                                      ] []+                                    ]+                                  , mkQTagTree qn21+                                    [ mkQAttrTree qn16 [ mkXTextTree "34" ]+                                    ] []+                                  ]+                                , mkQTagTree qn21+                                  [ mkQAttrTree qn16 [ mkXTextTree "35" ]+                                  ] []+                                ]+                              , mkQTagTree qn21+                                [ mkQAttrTree qn16 [ mkXTextTree "36" ]+                                ] []+                              ]+                            , mkQTagTree qn21+                              [ mkQAttrTree qn16 [ mkXTextTree "37" ]+                              ] []+                            ]+                          , mkQTagTree qn21+                            [ mkQAttrTree qn16 [ mkXTextTree "38" ]+                            ] []+                          ]+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "39" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "42" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "43" ]+                      ] []+                    ]+                  , mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "44" ]+                    ] []+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "32" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "list"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn20 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn6 []+                              [ mkQTagTree qn6 []+                                [ mkQTagTree qn6 []+                                  [ mkQTagTree qn6 []+                                    [ mkQTagTree qn6 []+                                      [ mkQTagTree qn6 []+                                        [ mkQTagTree qn6 []+                                          [ mkQTagTree qn6 []+                                            [ mkQTagTree qn6 []+                                              [ mkQTagTree qn6 []+                                                [ mkQTagTree qn6 []+                                                  [ mkQTagTree qn6 []+                                                    [ mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "24" ]+                                                      ] []+                                                    , mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]+                                                      ] []+                                                    ]+                                                  , mkQTagTree qn21+                                                    [ mkQAttrTree qn16 [ mkXTextTree "26" ]+                                                    ] []+                                                  ]+                                                , mkQTagTree qn21+                                                  [ mkQAttrTree qn16 [ mkXTextTree "27" ]+                                                  ] []+                                                ]+                                              , mkQTagTree qn21+                                                [ mkQAttrTree qn16 [ mkXTextTree "28" ]+                                                ] []+                                              ]+                                            , mkQTagTree qn21+                                              [ mkQAttrTree qn16 [ mkXTextTree "29" ]+                                              ] []+                                            ]+                                          , mkQTagTree qn21+                                            [ mkQAttrTree qn16 [ mkXTextTree "30" ]+                                            ] []+                                          ]+                                        , mkQTagTree qn21+                                          [ mkQAttrTree qn16 [ mkXTextTree "31" ]+                                          ] []+                                        ]+                                      , mkQTagTree qn21+                                        [ mkQAttrTree qn16 [ mkXTextTree "32" ]+                                        ] []+                                      ]+                                    , mkQTagTree qn21+                                      [ mkQAttrTree qn16 [ mkXTextTree "33" ]+                                      ] []+                                    ]+                                  , mkQTagTree qn21+                                    [ mkQAttrTree qn16 [ mkXTextTree "34" ]+                                    ] []+                                  ]+                                , mkQTagTree qn21+                                  [ mkQAttrTree qn16 [ mkXTextTree "35" ]+                                  ] []+                                ]+                              , mkQTagTree qn21+                                [ mkQAttrTree qn16 [ mkXTextTree "36" ]+                                ] []+                              ]+                            , mkQTagTree qn21+                              [ mkQAttrTree qn16 [ mkXTextTree "37" ]+                              ] []+                            ]+                          , mkQTagTree qn21+                            [ mkQAttrTree qn16 [ mkXTextTree "38" ]+                            ] []+                          ]+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "39" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "42" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "43" ]+                      ] []+                    ]+                  , mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "44" ]+                    ] []+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "31" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "oneOrMore"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn20 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn6 []+                              [ mkQTagTree qn6 []+                                [ mkQTagTree qn6 []+                                  [ mkQTagTree qn6 []+                                    [ mkQTagTree qn6 []+                                      [ mkQTagTree qn6 []+                                        [ mkQTagTree qn6 []+                                          [ mkQTagTree qn6 []+                                            [ mkQTagTree qn6 []+                                              [ mkQTagTree qn6 []+                                                [ mkQTagTree qn6 []+                                                  [ mkQTagTree qn6 []+                                                    [ mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "24" ]+                                                      ] []+                                                    , mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]+                                                      ] []+                                                    ]+                                                  , mkQTagTree qn21+                                                    [ mkQAttrTree qn16 [ mkXTextTree "26" ]+                                                    ] []+                                                  ]+                                                , mkQTagTree qn21+                                                  [ mkQAttrTree qn16 [ mkXTextTree "27" ]+                                                  ] []+                                                ]+                                              , mkQTagTree qn21+                                                [ mkQAttrTree qn16 [ mkXTextTree "28" ]+                                                ] []+                                              ]+                                            , mkQTagTree qn21+                                              [ mkQAttrTree qn16 [ mkXTextTree "29" ]+                                              ] []+                                            ]+                                          , mkQTagTree qn21+                                            [ mkQAttrTree qn16 [ mkXTextTree "30" ]+                                            ] []+                                          ]+                                        , mkQTagTree qn21+                                          [ mkQAttrTree qn16 [ mkXTextTree "31" ]+                                          ] []+                                        ]+                                      , mkQTagTree qn21+                                        [ mkQAttrTree qn16 [ mkXTextTree "32" ]+                                        ] []+                                      ]+                                    , mkQTagTree qn21+                                      [ mkQAttrTree qn16 [ mkXTextTree "33" ]+                                      ] []+                                    ]+                                  , mkQTagTree qn21+                                    [ mkQAttrTree qn16 [ mkXTextTree "34" ]+                                    ] []+                                  ]+                                , mkQTagTree qn21+                                  [ mkQAttrTree qn16 [ mkXTextTree "35" ]+                                  ] []+                                ]+                              , mkQTagTree qn21+                                [ mkQAttrTree qn16 [ mkXTextTree "36" ]+                                ] []+                              ]+                            , mkQTagTree qn21+                              [ mkQAttrTree qn16 [ mkXTextTree "37" ]+                              ] []+                            ]+                          , mkQTagTree qn21+                            [ mkQAttrTree qn16 [ mkXTextTree "38" ]+                            ] []+                          ]+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "39" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "42" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "43" ]+                      ] []+                    ]+                  , mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "44" ]+                    ] []+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "30" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "zeroOrMore"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn20 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn6 []+                              [ mkQTagTree qn6 []+                                [ mkQTagTree qn6 []+                                  [ mkQTagTree qn6 []+                                    [ mkQTagTree qn6 []+                                      [ mkQTagTree qn6 []+                                        [ mkQTagTree qn6 []+                                          [ mkQTagTree qn6 []+                                            [ mkQTagTree qn6 []+                                              [ mkQTagTree qn6 []+                                                [ mkQTagTree qn6 []+                                                  [ mkQTagTree qn6 []+                                                    [ mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "24" ]+                                                      ] []+                                                    , mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]+                                                      ] []+                                                    ]+                                                  , mkQTagTree qn21+                                                    [ mkQAttrTree qn16 [ mkXTextTree "26" ]+                                                    ] []+                                                  ]+                                                , mkQTagTree qn21+                                                  [ mkQAttrTree qn16 [ mkXTextTree "27" ]+                                                  ] []+                                                ]+                                              , mkQTagTree qn21+                                                [ mkQAttrTree qn16 [ mkXTextTree "28" ]+                                                ] []+                                              ]+                                            , mkQTagTree qn21+                                              [ mkQAttrTree qn16 [ mkXTextTree "29" ]+                                              ] []+                                            ]+                                          , mkQTagTree qn21+                                            [ mkQAttrTree qn16 [ mkXTextTree "30" ]+                                            ] []+                                          ]+                                        , mkQTagTree qn21+                                          [ mkQAttrTree qn16 [ mkXTextTree "31" ]+                                          ] []+                                        ]+                                      , mkQTagTree qn21+                                        [ mkQAttrTree qn16 [ mkXTextTree "32" ]+                                        ] []+                                      ]+                                    , mkQTagTree qn21+                                      [ mkQAttrTree qn16 [ mkXTextTree "33" ]+                                      ] []+                                    ]+                                  , mkQTagTree qn21+                                    [ mkQAttrTree qn16 [ mkXTextTree "34" ]+                                    ] []+                                  ]+                                , mkQTagTree qn21+                                  [ mkQAttrTree qn16 [ mkXTextTree "35" ]+                                  ] []+                                ]+                              , mkQTagTree qn21+                                [ mkQAttrTree qn16 [ mkXTextTree "36" ]+                                ] []+                              ]+                            , mkQTagTree qn21+                              [ mkQAttrTree qn16 [ mkXTextTree "37" ]+                              ] []+                            ]+                          , mkQTagTree qn21+                            [ mkQAttrTree qn16 [ mkXTextTree "38" ]+                            ] []+                          ]+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "39" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "42" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "43" ]+                      ] []+                    ]+                  , mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "44" ]+                    ] []+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "29" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "optional"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn20 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn6 []+                              [ mkQTagTree qn6 []+                                [ mkQTagTree qn6 []+                                  [ mkQTagTree qn6 []+                                    [ mkQTagTree qn6 []+                                      [ mkQTagTree qn6 []+                                        [ mkQTagTree qn6 []+                                          [ mkQTagTree qn6 []+                                            [ mkQTagTree qn6 []+                                              [ mkQTagTree qn6 []+                                                [ mkQTagTree qn6 []+                                                  [ mkQTagTree qn6 []+                                                    [ mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "24" ]+                                                      ] []+                                                    , mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]+                                                      ] []+                                                    ]+                                                  , mkQTagTree qn21+                                                    [ mkQAttrTree qn16 [ mkXTextTree "26" ]+                                                    ] []+                                                  ]+                                                , mkQTagTree qn21+                                                  [ mkQAttrTree qn16 [ mkXTextTree "27" ]+                                                  ] []+                                                ]+                                              , mkQTagTree qn21+                                                [ mkQAttrTree qn16 [ mkXTextTree "28" ]+                                                ] []+                                              ]+                                            , mkQTagTree qn21+                                              [ mkQAttrTree qn16 [ mkXTextTree "29" ]+                                              ] []+                                            ]+                                          , mkQTagTree qn21+                                            [ mkQAttrTree qn16 [ mkXTextTree "30" ]+                                            ] []+                                          ]+                                        , mkQTagTree qn21+                                          [ mkQAttrTree qn16 [ mkXTextTree "31" ]+                                          ] []+                                        ]+                                      , mkQTagTree qn21+                                        [ mkQAttrTree qn16 [ mkXTextTree "32" ]+                                        ] []+                                      ]+                                    , mkQTagTree qn21+                                      [ mkQAttrTree qn16 [ mkXTextTree "33" ]+                                      ] []+                                    ]+                                  , mkQTagTree qn21+                                    [ mkQAttrTree qn16 [ mkXTextTree "34" ]+                                    ] []+                                  ]+                                , mkQTagTree qn21+                                  [ mkQAttrTree qn16 [ mkXTextTree "35" ]+                                  ] []+                                ]+                              , mkQTagTree qn21+                                [ mkQAttrTree qn16 [ mkXTextTree "36" ]+                                ] []+                              ]+                            , mkQTagTree qn21+                              [ mkQAttrTree qn16 [ mkXTextTree "37" ]+                              ] []+                            ]+                          , mkQTagTree qn21+                            [ mkQAttrTree qn16 [ mkXTextTree "38" ]+                            ] []+                          ]+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "39" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "42" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "43" ]+                      ] []+                    ]+                  , mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "44" ]+                    ] []+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "28" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "choice"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn20 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn6 []+                              [ mkQTagTree qn6 []+                                [ mkQTagTree qn6 []+                                  [ mkQTagTree qn6 []+                                    [ mkQTagTree qn6 []+                                      [ mkQTagTree qn6 []+                                        [ mkQTagTree qn6 []+                                          [ mkQTagTree qn6 []+                                            [ mkQTagTree qn6 []+                                              [ mkQTagTree qn6 []+                                                [ mkQTagTree qn6 []+                                                  [ mkQTagTree qn6 []+                                                    [ mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "24" ]+                                                      ] []+                                                    , mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]+                                                      ] []+                                                    ]+                                                  , mkQTagTree qn21+                                                    [ mkQAttrTree qn16 [ mkXTextTree "26" ]+                                                    ] []+                                                  ]+                                                , mkQTagTree qn21+                                                  [ mkQAttrTree qn16 [ mkXTextTree "27" ]+                                                  ] []+                                                ]+                                              , mkQTagTree qn21+                                                [ mkQAttrTree qn16 [ mkXTextTree "28" ]+                                                ] []+                                              ]+                                            , mkQTagTree qn21+                                              [ mkQAttrTree qn16 [ mkXTextTree "29" ]+                                              ] []+                                            ]+                                          , mkQTagTree qn21+                                            [ mkQAttrTree qn16 [ mkXTextTree "30" ]+                                            ] []+                                          ]+                                        , mkQTagTree qn21+                                          [ mkQAttrTree qn16 [ mkXTextTree "31" ]+                                          ] []+                                        ]+                                      , mkQTagTree qn21+                                        [ mkQAttrTree qn16 [ mkXTextTree "32" ]+                                        ] []+                                      ]+                                    , mkQTagTree qn21+                                      [ mkQAttrTree qn16 [ mkXTextTree "33" ]+                                      ] []+                                    ]+                                  , mkQTagTree qn21+                                    [ mkQAttrTree qn16 [ mkXTextTree "34" ]+                                    ] []+                                  ]+                                , mkQTagTree qn21+                                  [ mkQAttrTree qn16 [ mkXTextTree "35" ]+                                  ] []+                                ]+                              , mkQTagTree qn21+                                [ mkQAttrTree qn16 [ mkXTextTree "36" ]+                                ] []+                              ]+                            , mkQTagTree qn21+                              [ mkQAttrTree qn16 [ mkXTextTree "37" ]+                              ] []+                            ]+                          , mkQTagTree qn21+                            [ mkQAttrTree qn16 [ mkXTextTree "38" ]+                            ] []+                          ]+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "39" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "42" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "43" ]+                      ] []+                    ]+                  , mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "44" ]+                    ] []+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "27" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "interleave"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn20 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn6 []+                              [ mkQTagTree qn6 []+                                [ mkQTagTree qn6 []+                                  [ mkQTagTree qn6 []+                                    [ mkQTagTree qn6 []+                                      [ mkQTagTree qn6 []+                                        [ mkQTagTree qn6 []+                                          [ mkQTagTree qn6 []+                                            [ mkQTagTree qn6 []+                                              [ mkQTagTree qn6 []+                                                [ mkQTagTree qn6 []+                                                  [ mkQTagTree qn6 []+                                                    [ mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "24" ]+                                                      ] []+                                                    , mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]+                                                      ] []+                                                    ]+                                                  , mkQTagTree qn21+                                                    [ mkQAttrTree qn16 [ mkXTextTree "26" ]+                                                    ] []+                                                  ]+                                                , mkQTagTree qn21+                                                  [ mkQAttrTree qn16 [ mkXTextTree "27" ]+                                                  ] []+                                                ]+                                              , mkQTagTree qn21+                                                [ mkQAttrTree qn16 [ mkXTextTree "28" ]+                                                ] []+                                              ]+                                            , mkQTagTree qn21+                                              [ mkQAttrTree qn16 [ mkXTextTree "29" ]+                                              ] []+                                            ]+                                          , mkQTagTree qn21+                                            [ mkQAttrTree qn16 [ mkXTextTree "30" ]+                                            ] []+                                          ]+                                        , mkQTagTree qn21+                                          [ mkQAttrTree qn16 [ mkXTextTree "31" ]+                                          ] []+                                        ]+                                      , mkQTagTree qn21+                                        [ mkQAttrTree qn16 [ mkXTextTree "32" ]+                                        ] []+                                      ]+                                    , mkQTagTree qn21+                                      [ mkQAttrTree qn16 [ mkXTextTree "33" ]+                                      ] []+                                    ]+                                  , mkQTagTree qn21+                                    [ mkQAttrTree qn16 [ mkXTextTree "34" ]+                                    ] []+                                  ]+                                , mkQTagTree qn21+                                  [ mkQAttrTree qn16 [ mkXTextTree "35" ]+                                  ] []+                                ]+                              , mkQTagTree qn21+                                [ mkQAttrTree qn16 [ mkXTextTree "36" ]+                                ] []+                              ]+                            , mkQTagTree qn21+                              [ mkQAttrTree qn16 [ mkXTextTree "37" ]+                              ] []+                            ]+                          , mkQTagTree qn21+                            [ mkQAttrTree qn16 [ mkXTextTree "38" ]+                            ] []+                          ]+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "39" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "42" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "43" ]+                      ] []+                    ]+                  , mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "44" ]+                    ] []+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "26" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "group"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn20 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn6 []+                              [ mkQTagTree qn6 []+                                [ mkQTagTree qn6 []+                                  [ mkQTagTree qn6 []+                                    [ mkQTagTree qn6 []+                                      [ mkQTagTree qn6 []+                                        [ mkQTagTree qn6 []+                                          [ mkQTagTree qn6 []+                                            [ mkQTagTree qn6 []+                                              [ mkQTagTree qn6 []+                                                [ mkQTagTree qn6 []+                                                  [ mkQTagTree qn6 []+                                                    [ mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "24" ]+                                                      ] []+                                                    , mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]+                                                      ] []+                                                    ]+                                                  , mkQTagTree qn21+                                                    [ mkQAttrTree qn16 [ mkXTextTree "26" ]+                                                    ] []+                                                  ]+                                                , mkQTagTree qn21+                                                  [ mkQAttrTree qn16 [ mkXTextTree "27" ]+                                                  ] []+                                                ]+                                              , mkQTagTree qn21+                                                [ mkQAttrTree qn16 [ mkXTextTree "28" ]+                                                ] []+                                              ]+                                            , mkQTagTree qn21+                                              [ mkQAttrTree qn16 [ mkXTextTree "29" ]+                                              ] []+                                            ]+                                          , mkQTagTree qn21+                                            [ mkQAttrTree qn16 [ mkXTextTree "30" ]+                                            ] []+                                          ]+                                        , mkQTagTree qn21+                                          [ mkQAttrTree qn16 [ mkXTextTree "31" ]+                                          ] []+                                        ]+                                      , mkQTagTree qn21+                                        [ mkQAttrTree qn16 [ mkXTextTree "32" ]+                                        ] []+                                      ]+                                    , mkQTagTree qn21+                                      [ mkQAttrTree qn16 [ mkXTextTree "33" ]+                                      ] []+                                    ]+                                  , mkQTagTree qn21+                                    [ mkQAttrTree qn16 [ mkXTextTree "34" ]+                                    ] []+                                  ]+                                , mkQTagTree qn21+                                  [ mkQAttrTree qn16 [ mkXTextTree "35" ]+                                  ] []+                                ]+                              , mkQTagTree qn21+                                [ mkQAttrTree qn16 [ mkXTextTree "36" ]+                                ] []+                              ]+                            , mkQTagTree qn21+                              [ mkQAttrTree qn16 [ mkXTextTree "37" ]+                              ] []+                            ]+                          , mkQTagTree qn21+                            [ mkQAttrTree qn16 [ mkXTextTree "38" ]+                            ] []+                          ]+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "39" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "42" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "43" ]+                      ] []+                    ]+                  , mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "44" ]+                    ] []+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "25" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "attribute"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn14 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn5 []+                      [ mkQTagTree qn17+                        [ mkQAttrTree qn18 [ mkXTextTree "" ]+                        ]+                        [ mkXTextTree "ns"+                        ]+                      , mkQTagTree qn23 [] []+                      ]+                    ]+                  , mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn5 []+                      [ mkQTagTree qn17+                        [ mkQAttrTree qn18 [ mkXTextTree "" ]+                        ]+                        [ mkXTextTree "datatypeLibrary"+                        ]+                      , mkQTagTree qn7+                        [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                        , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                        ] []+                      ]+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn20 []+                    [ mkQTagTree qn5 []+                      [ mkQTagTree qn4 []+                        [ mkQTagTree qn12 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn19+                              [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                              ] []+                            , mkQTagTree qn19+                              [ mkQAttrTree qn18 [ mkXTextTree "" ]+                              ] []+                            ]+                          ]+                        ]+                      , mkQTagTree qn23 [] []+                      ]+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn5 []+                  [ mkQTagTree qn17+                    [ mkQAttrTree qn18 [ mkXTextTree "" ]+                    ]+                    [ mkXTextTree "name"+                    ]+                  , mkQTagTree qn7+                    [ mkQAttrTree qn24 [ mkXTextTree "QName" ]+                    , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                    ] []+                  ]+                , mkQTagTree qn15 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn20 []+                      [ mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "15" ]+                        ] []+                      ]+                    ]+                  , mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "17" ]+                          ] []+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "18" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "19" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "20" ]+                      ] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn6 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn6 []+                              [ mkQTagTree qn6 []+                                [ mkQTagTree qn6 []+                                  [ mkQTagTree qn6 []+                                    [ mkQTagTree qn6 []+                                      [ mkQTagTree qn6 []+                                        [ mkQTagTree qn6 []+                                          [ mkQTagTree qn6 []+                                            [ mkQTagTree qn6 []+                                              [ mkQTagTree qn6 []+                                                [ mkQTagTree qn6 []+                                                  [ mkQTagTree qn6 []+                                                    [ mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "24" ]+                                                      ] []+                                                    , mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]+                                                      ] []+                                                    ]+                                                  , mkQTagTree qn21+                                                    [ mkQAttrTree qn16 [ mkXTextTree "26" ]+                                                    ] []+                                                  ]+                                                , mkQTagTree qn21+                                                  [ mkQAttrTree qn16 [ mkXTextTree "27" ]+                                                  ] []+                                                ]+                                              , mkQTagTree qn21+                                                [ mkQAttrTree qn16 [ mkXTextTree "28" ]+                                                ] []+                                              ]+                                            , mkQTagTree qn21+                                              [ mkQAttrTree qn16 [ mkXTextTree "29" ]+                                              ] []+                                            ]+                                          , mkQTagTree qn21+                                            [ mkQAttrTree qn16 [ mkXTextTree "30" ]+                                            ] []+                                          ]+                                        , mkQTagTree qn21+                                          [ mkQAttrTree qn16 [ mkXTextTree "31" ]+                                          ] []+                                        ]+                                      , mkQTagTree qn21+                                        [ mkQAttrTree qn16 [ mkXTextTree "32" ]+                                        ] []+                                      ]+                                    , mkQTagTree qn21+                                      [ mkQAttrTree qn16 [ mkXTextTree "33" ]+                                      ] []+                                    ]+                                  , mkQTagTree qn21+                                    [ mkQAttrTree qn16 [ mkXTextTree "34" ]+                                    ] []+                                  ]+                                , mkQTagTree qn21+                                  [ mkQAttrTree qn16 [ mkXTextTree "35" ]+                                  ] []+                                ]+                              , mkQTagTree qn21+                                [ mkQAttrTree qn16 [ mkXTextTree "36" ]+                                ] []+                              ]+                            , mkQTagTree qn21+                              [ mkQAttrTree qn16 [ mkXTextTree "37" ]+                              ] []+                            ]+                          , mkQTagTree qn21+                            [ mkQAttrTree qn16 [ mkXTextTree "38" ]+                            ] []+                          ]+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "39" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "42" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "43" ]+                      ] []+                    ]+                  , mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "44" ]+                    ] []+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "24" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "element"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn5 []+                  [ mkQTagTree qn17+                    [ mkQAttrTree qn18 [ mkXTextTree "" ]+                    ]+                    [ mkXTextTree "name"+                    ]+                  , mkQTagTree qn7+                    [ mkQAttrTree qn24 [ mkXTextTree "QName" ]+                    , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                    ] []+                  ]+                , mkQTagTree qn15 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn20 []+                      [ mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "15" ]+                        ] []+                      ]+                    ]+                  , mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "17" ]+                          ] []+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "18" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "19" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "20" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn14 []+                [ mkQTagTree qn14 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn5 []+                      [ mkQTagTree qn17+                        [ mkQAttrTree qn18 [ mkXTextTree "" ]+                        ]+                        [ mkXTextTree "ns"+                        ]+                      , mkQTagTree qn23 [] []+                      ]+                    ]+                  , mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn5 []+                      [ mkQTagTree qn17+                        [ mkQAttrTree qn18 [ mkXTextTree "" ]+                        ]+                        [ mkXTextTree "datatypeLibrary"+                        ]+                      , mkQTagTree qn7+                        [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                        , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                        ] []+                      ]+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn20 []+                    [ mkQTagTree qn5 []+                      [ mkQTagTree qn4 []+                        [ mkQTagTree qn12 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn19+                              [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                              ] []+                            , mkQTagTree qn19+                              [ mkQAttrTree qn18 [ mkXTextTree "" ]+                              ] []+                            ]+                          ]+                        ]+                      , mkQTagTree qn23 [] []+                      ]+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn20 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn6 []+                              [ mkQTagTree qn6 []+                                [ mkQTagTree qn6 []+                                  [ mkQTagTree qn6 []+                                    [ mkQTagTree qn6 []+                                      [ mkQTagTree qn6 []+                                        [ mkQTagTree qn6 []+                                          [ mkQTagTree qn6 []+                                            [ mkQTagTree qn6 []+                                              [ mkQTagTree qn6 []+                                                [ mkQTagTree qn6 []+                                                  [ mkQTagTree qn6 []+                                                    [ mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "24" ]+                                                      ] []+                                                    , mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]+                                                      ] []+                                                    ]+                                                  , mkQTagTree qn21+                                                    [ mkQAttrTree qn16 [ mkXTextTree "26" ]+                                                    ] []+                                                  ]+                                                , mkQTagTree qn21+                                                  [ mkQAttrTree qn16 [ mkXTextTree "27" ]+                                                  ] []+                                                ]+                                              , mkQTagTree qn21+                                                [ mkQAttrTree qn16 [ mkXTextTree "28" ]+                                                ] []+                                              ]+                                            , mkQTagTree qn21+                                              [ mkQAttrTree qn16 [ mkXTextTree "29" ]+                                              ] []+                                            ]+                                          , mkQTagTree qn21+                                            [ mkQAttrTree qn16 [ mkXTextTree "30" ]+                                            ] []+                                          ]+                                        , mkQTagTree qn21+                                          [ mkQAttrTree qn16 [ mkXTextTree "31" ]+                                          ] []+                                        ]+                                      , mkQTagTree qn21+                                        [ mkQAttrTree qn16 [ mkXTextTree "32" ]+                                        ] []+                                      ]+                                    , mkQTagTree qn21+                                      [ mkQAttrTree qn16 [ mkXTextTree "33" ]+                                      ] []+                                    ]+                                  , mkQTagTree qn21+                                    [ mkQAttrTree qn16 [ mkXTextTree "34" ]+                                    ] []+                                  ]+                                , mkQTagTree qn21+                                  [ mkQAttrTree qn16 [ mkXTextTree "35" ]+                                  ] []+                                ]+                              , mkQTagTree qn21+                                [ mkQAttrTree qn16 [ mkXTextTree "36" ]+                                ] []+                              ]+                            , mkQTagTree qn21+                              [ mkQAttrTree qn16 [ mkXTextTree "37" ]+                              ] []+                            ]+                          , mkQTagTree qn21+                            [ mkQAttrTree qn16 [ mkXTextTree "38" ]+                            ] []+                          ]+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "39" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "42" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "43" ]+                      ] []+                    ]+                  , mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "44" ]+                    ] []+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "23" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "include"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn5 []+                [ mkQTagTree qn17+                  [ mkQAttrTree qn18 [ mkXTextTree "" ]+                  ]+                  [ mkXTextTree "href"+                  ]+                , mkQTagTree qn7+                  [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                  , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                  ] []+                ]+              , mkQTagTree qn14 []+                [ mkQTagTree qn14 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn5 []+                      [ mkQTagTree qn17+                        [ mkQAttrTree qn18 [ mkXTextTree "" ]+                        ]+                        [ mkXTextTree "ns"+                        ]+                      , mkQTagTree qn23 [] []+                      ]+                    ]+                  , mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn5 []+                      [ mkQTagTree qn17+                        [ mkQAttrTree qn18 [ mkXTextTree "" ]+                        ]+                        [ mkXTextTree "datatypeLibrary"+                        ]+                      , mkQTagTree qn7+                        [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                        , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                        ] []+                      ]+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn20 []+                    [ mkQTagTree qn5 []+                      [ mkQTagTree qn4 []+                        [ mkQTagTree qn12 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn19+                              [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                              ] []+                            , mkQTagTree qn19+                              [ mkQAttrTree qn18 [ mkXTextTree "" ]+                              ] []+                            ]+                          ]+                        ]+                      , mkQTagTree qn23 [] []+                      ]+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "11" ]+                        ] []+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "10" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "21" ]+                      ] []+                    ]+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "22" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "div"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "11" ]+                          ] []+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "10" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "22" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "23" ]+                      ] []+                    ]+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "21" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "div"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "11" ]+                        ] []+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "10" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "21" ]+                      ] []+                    ]+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "20" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "choice"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn20 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "17" ]+                        ] []+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "18" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "19" ]+                      ] []+                    ]+                  , mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "20" ]+                    ] []+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "19" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "nsName"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn21+                  [ mkQAttrTree qn16 [ mkXTextTree "16" ]+                  ] []+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "18" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "anyName"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn21+                  [ mkQAttrTree qn16 [ mkXTextTree "16" ]+                  ] []+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "17" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "name"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn7+              [ mkQAttrTree qn24 [ mkXTextTree "QName" ]+              , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+              ] []+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "16" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "except"+            ]+          , mkQTagTree qn15 []+            [ mkQTagTree qn6 []+              [ mkQTagTree qn11 [] []+              , mkQTagTree qn20 []+                [ mkQTagTree qn21+                  [ mkQAttrTree qn16 [ mkXTextTree "15" ]+                  ] []+                ]+              ]+            , mkQTagTree qn20 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "17" ]+                      ] []+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "18" ]+                      ] []+                    ]+                  , mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "19" ]+                    ] []+                  ]+                , mkQTagTree qn21+                  [ mkQAttrTree qn16 [ mkXTextTree "20" ]+                  ] []+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "15" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn4 []+            [ mkQTagTree qn12 []+              [ mkQTagTree qn19+                [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                ] []+              ]+            ]+          , mkQTagTree qn6 []+            [ mkQTagTree qn11 [] []+            , mkQTagTree qn20 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 [] []+                    , mkQTagTree qn23 [] []+                    ]+                  , mkQTagTree qn23 [] []+                  ]+                , mkQTagTree qn21+                  [ mkQAttrTree qn16 [ mkXTextTree "0" ]+                  ] []+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "0" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn4 [] []+          , mkQTagTree qn6 []+            [ mkQTagTree qn11 [] []+            , mkQTagTree qn20 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 [] []+                    , mkQTagTree qn23 [] []+                    ]+                  , mkQTagTree qn23 [] []+                  ]+                , mkQTagTree qn21+                  [ mkQAttrTree qn16 [ mkXTextTree "0" ]+                  ] []+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "10" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "define"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn5 []+                  [ mkQTagTree qn17+                    [ mkQAttrTree qn18 [ mkXTextTree "" ]+                    ]+                    [ mkXTextTree "name"+                    ]+                  , mkQTagTree qn7+                    [ mkQAttrTree qn24 [ mkXTextTree "NCName" ]+                    , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                    ] []+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "combine"+                      ]+                    , mkQTagTree qn6 []+                      [ mkQTagTree qn25+                        [ mkQAttrTree qn1 [ mkXTextTree "http://www.w3.org/XML/1998/namespaces" ]+                        , mkQAttrTree qn3 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                        , mkQAttrTree qn2 [ mkXTextTree "file:///home/uwe/fh/public_html/src/haskell/hxml/src/Text/XML/HXT/RelaxNG/schema2hs/Schema.rng" ]+                        , mkQAttrTree qn8 [ mkXTextTree "" ]+                        , mkQAttrTree qn24 [ mkXTextTree "token" ]+                        , mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                        ]+                        [ mkXTextTree "choice"+                        ]+                      , mkQTagTree qn25+                        [ mkQAttrTree qn1 [ mkXTextTree "http://www.w3.org/XML/1998/namespaces" ]+                        , mkQAttrTree qn3 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                        , mkQAttrTree qn2 [ mkXTextTree "file:///home/uwe/fh/public_html/src/haskell/hxml/src/Text/XML/HXT/RelaxNG/schema2hs/Schema.rng" ]+                        , mkQAttrTree qn8 [ mkXTextTree "" ]+                        , mkQAttrTree qn24 [ mkXTextTree "token" ]+                        , mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                        ]+                        [ mkXTextTree "interleave"+                        ]+                      ]+                    ]+                  ]+                ]+              , mkQTagTree qn14 []+                [ mkQTagTree qn14 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn5 []+                      [ mkQTagTree qn17+                        [ mkQAttrTree qn18 [ mkXTextTree "" ]+                        ]+                        [ mkXTextTree "ns"+                        ]+                      , mkQTagTree qn23 [] []+                      ]+                    ]+                  , mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn5 []+                      [ mkQTagTree qn17+                        [ mkQAttrTree qn18 [ mkXTextTree "" ]+                        ]+                        [ mkXTextTree "datatypeLibrary"+                        ]+                      , mkQTagTree qn7+                        [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                        , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                        ] []+                      ]+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn20 []+                    [ mkQTagTree qn5 []+                      [ mkQTagTree qn4 []+                        [ mkQTagTree qn12 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn19+                              [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                              ] []+                            , mkQTagTree qn19+                              [ mkQAttrTree qn18 [ mkXTextTree "" ]+                              ] []+                            ]+                          ]+                        ]+                      , mkQTagTree qn23 [] []+                      ]+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn20 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn6 []+                              [ mkQTagTree qn6 []+                                [ mkQTagTree qn6 []+                                  [ mkQTagTree qn6 []+                                    [ mkQTagTree qn6 []+                                      [ mkQTagTree qn6 []+                                        [ mkQTagTree qn6 []+                                          [ mkQTagTree qn6 []+                                            [ mkQTagTree qn6 []+                                              [ mkQTagTree qn6 []+                                                [ mkQTagTree qn6 []+                                                  [ mkQTagTree qn6 []+                                                    [ mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "24" ]+                                                      ] []+                                                    , mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]+                                                      ] []+                                                    ]+                                                  , mkQTagTree qn21+                                                    [ mkQAttrTree qn16 [ mkXTextTree "26" ]+                                                    ] []+                                                  ]+                                                , mkQTagTree qn21+                                                  [ mkQAttrTree qn16 [ mkXTextTree "27" ]+                                                  ] []+                                                ]+                                              , mkQTagTree qn21+                                                [ mkQAttrTree qn16 [ mkXTextTree "28" ]+                                                ] []+                                              ]+                                            , mkQTagTree qn21+                                              [ mkQAttrTree qn16 [ mkXTextTree "29" ]+                                              ] []+                                            ]+                                          , mkQTagTree qn21+                                            [ mkQAttrTree qn16 [ mkXTextTree "30" ]+                                            ] []+                                          ]+                                        , mkQTagTree qn21+                                          [ mkQAttrTree qn16 [ mkXTextTree "31" ]+                                          ] []+                                        ]+                                      , mkQTagTree qn21+                                        [ mkQAttrTree qn16 [ mkXTextTree "32" ]+                                        ] []+                                      ]+                                    , mkQTagTree qn21+                                      [ mkQAttrTree qn16 [ mkXTextTree "33" ]+                                      ] []+                                    ]+                                  , mkQTagTree qn21+                                    [ mkQAttrTree qn16 [ mkXTextTree "34" ]+                                    ] []+                                  ]+                                , mkQTagTree qn21+                                  [ mkQAttrTree qn16 [ mkXTextTree "35" ]+                                  ] []+                                ]+                              , mkQTagTree qn21+                                [ mkQAttrTree qn16 [ mkXTextTree "36" ]+                                ] []+                              ]+                            , mkQTagTree qn21+                              [ mkQAttrTree qn16 [ mkXTextTree "37" ]+                              ] []+                            ]+                          , mkQTagTree qn21+                            [ mkQAttrTree qn16 [ mkXTextTree "38" ]+                            ] []+                          ]+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "39" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "42" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "43" ]+                      ] []+                    ]+                  , mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "44" ]+                    ] []+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "11" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "start"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn5 []+                  [ mkQTagTree qn17+                    [ mkQAttrTree qn18 [ mkXTextTree "" ]+                    ]+                    [ mkXTextTree "combine"+                    ]+                  , mkQTagTree qn6 []+                    [ mkQTagTree qn25+                      [ mkQAttrTree qn1 [ mkXTextTree "http://www.w3.org/XML/1998/namespaces" ]+                      , mkQAttrTree qn3 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                      , mkQAttrTree qn2 [ mkXTextTree "file:///home/uwe/fh/public_html/src/haskell/hxml/src/Text/XML/HXT/RelaxNG/schema2hs/Schema.rng" ]+                      , mkQAttrTree qn8 [ mkXTextTree "" ]+                      , mkQAttrTree qn24 [ mkXTextTree "token" ]+                      , mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                      ]+                      [ mkXTextTree "choice"+                      ]+                    , mkQTagTree qn25+                      [ mkQAttrTree qn1 [ mkXTextTree "http://www.w3.org/XML/1998/namespaces" ]+                      , mkQAttrTree qn3 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                      , mkQAttrTree qn2 [ mkXTextTree "file:///home/uwe/fh/public_html/src/haskell/hxml/src/Text/XML/HXT/RelaxNG/schema2hs/Schema.rng" ]+                      , mkQAttrTree qn8 [ mkXTextTree "" ]+                      , mkQAttrTree qn24 [ mkXTextTree "token" ]+                      , mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                      ]+                      [ mkXTextTree "interleave"+                      ]+                    ]+                  ]+                ]+              , mkQTagTree qn14 []+                [ mkQTagTree qn14 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn5 []+                      [ mkQTagTree qn17+                        [ mkQAttrTree qn18 [ mkXTextTree "" ]+                        ]+                        [ mkXTextTree "ns"+                        ]+                      , mkQTagTree qn23 [] []+                      ]+                    ]+                  , mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn5 []+                      [ mkQTagTree qn17+                        [ mkQAttrTree qn18 [ mkXTextTree "" ]+                        ]+                        [ mkXTextTree "datatypeLibrary"+                        ]+                      , mkQTagTree qn7+                        [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                        , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                        ] []+                      ]+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn20 []+                    [ mkQTagTree qn5 []+                      [ mkQTagTree qn4 []+                        [ mkQTagTree qn12 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn19+                              [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                              ] []+                            , mkQTagTree qn19+                              [ mkQAttrTree qn18 [ mkXTextTree "" ]+                              ] []+                            ]+                          ]+                        ]+                      , mkQTagTree qn23 [] []+                      ]+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "15" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn6 []+                              [ mkQTagTree qn6 []+                                [ mkQTagTree qn6 []+                                  [ mkQTagTree qn6 []+                                    [ mkQTagTree qn6 []+                                      [ mkQTagTree qn6 []+                                        [ mkQTagTree qn6 []+                                          [ mkQTagTree qn6 []+                                            [ mkQTagTree qn6 []+                                              [ mkQTagTree qn6 []+                                                [ mkQTagTree qn6 []+                                                  [ mkQTagTree qn21+                                                    [ mkQAttrTree qn16 [ mkXTextTree "24" ]+                                                    ] []+                                                  , mkQTagTree qn21+                                                    [ mkQAttrTree qn16 [ mkXTextTree "25" ]+                                                    ] []+                                                  ]+                                                , mkQTagTree qn21+                                                  [ mkQAttrTree qn16 [ mkXTextTree "26" ]+                                                  ] []+                                                ]+                                              , mkQTagTree qn21+                                                [ mkQAttrTree qn16 [ mkXTextTree "27" ]+                                                ] []+                                              ]+                                            , mkQTagTree qn21+                                              [ mkQAttrTree qn16 [ mkXTextTree "28" ]+                                              ] []+                                            ]+                                          , mkQTagTree qn21+                                            [ mkQAttrTree qn16 [ mkXTextTree "29" ]+                                            ] []+                                          ]+                                        , mkQTagTree qn21+                                          [ mkQAttrTree qn16 [ mkXTextTree "30" ]+                                          ] []+                                        ]+                                      , mkQTagTree qn21+                                        [ mkQAttrTree qn16 [ mkXTextTree "31" ]+                                        ] []+                                      ]+                                    , mkQTagTree qn21+                                      [ mkQAttrTree qn16 [ mkXTextTree "32" ]+                                      ] []+                                    ]+                                  , mkQTagTree qn21+                                    [ mkQAttrTree qn16 [ mkXTextTree "33" ]+                                    ] []+                                  ]+                                , mkQTagTree qn21+                                  [ mkQAttrTree qn16 [ mkXTextTree "34" ]+                                  ] []+                                ]+                              , mkQTagTree qn21+                                [ mkQAttrTree qn16 [ mkXTextTree "35" ]+                                ] []+                              ]+                            , mkQTagTree qn21+                              [ mkQAttrTree qn16 [ mkXTextTree "36" ]+                              ] []+                            ]+                          , mkQTagTree qn21+                            [ mkQAttrTree qn16 [ mkXTextTree "37" ]+                            ] []+                          ]+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "38" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "39" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "42" ]+                      ] []+                    ]+                  , mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "43" ]+                    ] []+                  ]+                , mkQTagTree qn21+                  [ mkQAttrTree qn16 [ mkXTextTree "44" ]+                  ] []+                ]+              ]+            ]+          ]+        ]+      ]+    ]
+ src/Text/XML/HXT/RelaxNG/SchemaGrammar.hs view
@@ -0,0 +1,3832 @@+{- |+   Module     : Text.HXT.RelaxNG.SchemaGrammar+   Version    : $Id: SchemaGrammar.hs,v 1.3 2005/09/30 14:41:45 hxml Exp $++Don't edit this module, it's generated by RelaxSchemaToXmlTree++-}++module Text.XML.HXT.RelaxNG.SchemaGrammar+    ( relaxSchemaTree, relaxSchemaArrow )+where++import Text.XML.HXT.DOM.TypeDefs+import Text.XML.HXT.DOM.XmlTreeFunctions++import Control.Arrow.ListArrows++relaxSchemaArrow :: ArrowList a => a b XmlTree+relaxSchemaArrow = constA relaxSchemaTree++relaxSchemaTree :: XmlTree+relaxSchemaTree =+  let+  ns1	= "http://relaxng.org/ns/structure/1.0"+  qn1	= mkSNsName "RelaxContext:xml"+  qn2	= mkSNsName "RelaxContextBaseURI"+  qn3	= mkSNsName "RelaxContextDefault"+  qn4	= mkNsName "anyName" ns1+  qn5	= mkNsName "attribute" ns1+  qn6	= mkNsName "choice" ns1+  qn7	= mkNsName "data" ns1+  qn8	= mkSNsName "datatypeLibrary"+  qn9	= mkNsName "define" ns1+  qn10	= mkNsName "element" ns1+  qn11	= mkNsName "empty" ns1+  qn12	= mkNsName "except" ns1+  qn13	= mkNsName "grammar" ns1+  qn14	= mkNsName "group" ns1+  qn15	= mkNsName "interleave" ns1+  qn16	= mkSNsName "name"+  qn17	= mkNsName "name" ns1+  qn18	= mkSNsName "ns"+  qn19	= mkNsName "nsName" ns1+  qn20	= mkNsName "oneOrMore" ns1+  qn21	= mkNsName "ref" ns1+  qn22	= mkNsName "start" ns1+  qn23	= mkNsName "text" ns1+  qn24	= mkSNsName "type"+  qn25	= mkNsName "value" ns1+  in+  mkRootTree []+    [ mkQTagTree qn13 []+      [ mkQTagTree qn22 []+        [ mkQTagTree qn21+          [ mkQAttrTree qn16 [ mkXTextTree "14" ]+          ] []+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "44" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "externalRef"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn5 []+                [ mkQTagTree qn17+                  [ mkQAttrTree qn18 [ mkXTextTree "" ]+                  ]+                  [ mkXTextTree "href"+                  ]+                , mkQTagTree qn7+                  [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                  , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                  ] []+                ]+              , mkQTagTree qn14 []+                [ mkQTagTree qn14 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn5 []+                      [ mkQTagTree qn17+                        [ mkQAttrTree qn18 [ mkXTextTree "" ]+                        ]+                        [ mkXTextTree "ns"+                        ]+                      , mkQTagTree qn23 [] []+                      ]+                    ]+                  , mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn5 []+                      [ mkQTagTree qn17+                        [ mkQAttrTree qn18 [ mkXTextTree "" ]+                        ]+                        [ mkXTextTree "datatypeLibrary"+                        ]+                      , mkQTagTree qn7+                        [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                        , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                        ] []+                      ]+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn20 []+                    [ mkQTagTree qn5 []+                      [ mkQTagTree qn4 []+                        [ mkQTagTree qn12 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn19+                              [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                              ] []+                            , mkQTagTree qn19+                              [ mkQAttrTree qn18 [ mkXTextTree "" ]+                              ] []+                            ]+                          ]+                        ]+                      , mkQTagTree qn23 [] []+                      ]+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn6 []+              [ mkQTagTree qn11 [] []+              , mkQTagTree qn20 []+                [ mkQTagTree qn21+                  [ mkQAttrTree qn16 [ mkXTextTree "16" ]+                  ] []+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "43" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "notAllowed"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn6 []+              [ mkQTagTree qn11 [] []+              , mkQTagTree qn20 []+                [ mkQTagTree qn21+                  [ mkQAttrTree qn16 [ mkXTextTree "16" ]+                  ] []+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "40" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "data"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn5 []+                [ mkQTagTree qn17+                  [ mkQAttrTree qn18 [ mkXTextTree "" ]+                  ]+                  [ mkXTextTree "type"+                  ]+                , mkQTagTree qn7+                  [ mkQAttrTree qn24 [ mkXTextTree "NCName" ]+                  , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                  ] []+                ]+              , mkQTagTree qn14 []+                [ mkQTagTree qn14 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn5 []+                      [ mkQTagTree qn17+                        [ mkQAttrTree qn18 [ mkXTextTree "" ]+                        ]+                        [ mkXTextTree "ns"+                        ]+                      , mkQTagTree qn23 [] []+                      ]+                    ]+                  , mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn5 []+                      [ mkQTagTree qn17+                        [ mkQAttrTree qn18 [ mkXTextTree "" ]+                        ]+                        [ mkXTextTree "datatypeLibrary"+                        ]+                      , mkQTagTree qn7+                        [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                        , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                        ] []+                      ]+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn20 []+                    [ mkQTagTree qn5 []+                      [ mkQTagTree qn4 []+                        [ mkQTagTree qn12 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn19+                              [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                              ] []+                            , mkQTagTree qn19+                              [ mkQAttrTree qn18 [ mkXTextTree "" ]+                              ] []+                            ]+                          ]+                        ]+                      , mkQTagTree qn23 [] []+                      ]+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn20 []+                    [ mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "41" ]+                      ] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "42" ]+                    ] []+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "42" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "except"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn20 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn6 []+                              [ mkQTagTree qn6 []+                                [ mkQTagTree qn6 []+                                  [ mkQTagTree qn6 []+                                    [ mkQTagTree qn6 []+                                      [ mkQTagTree qn6 []+                                        [ mkQTagTree qn6 []+                                          [ mkQTagTree qn6 []+                                            [ mkQTagTree qn6 []+                                              [ mkQTagTree qn6 []+                                                [ mkQTagTree qn6 []+                                                  [ mkQTagTree qn6 []+                                                    [ mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]+                                                      ] []+                                                    , mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "26" ]+                                                      ] []+                                                    ]+                                                  , mkQTagTree qn21+                                                    [ mkQAttrTree qn16 [ mkXTextTree "27" ]+                                                    ] []+                                                  ]+                                                , mkQTagTree qn21+                                                  [ mkQAttrTree qn16 [ mkXTextTree "28" ]+                                                  ] []+                                                ]+                                              , mkQTagTree qn21+                                                [ mkQAttrTree qn16 [ mkXTextTree "29" ]+                                                ] []+                                              ]+                                            , mkQTagTree qn21+                                              [ mkQAttrTree qn16 [ mkXTextTree "30" ]+                                              ] []+                                            ]+                                          , mkQTagTree qn21+                                            [ mkQAttrTree qn16 [ mkXTextTree "31" ]+                                            ] []+                                          ]+                                        , mkQTagTree qn21+                                          [ mkQAttrTree qn16 [ mkXTextTree "32" ]+                                          ] []+                                        ]+                                      , mkQTagTree qn21+                                        [ mkQAttrTree qn16 [ mkXTextTree "33" ]+                                        ] []+                                      ]+                                    , mkQTagTree qn21+                                      [ mkQAttrTree qn16 [ mkXTextTree "34" ]+                                      ] []+                                    ]+                                  , mkQTagTree qn21+                                    [ mkQAttrTree qn16 [ mkXTextTree "35" ]+                                    ] []+                                  ]+                                , mkQTagTree qn21+                                  [ mkQAttrTree qn16 [ mkXTextTree "36" ]+                                  ] []+                                ]+                              , mkQTagTree qn21+                                [ mkQAttrTree qn16 [ mkXTextTree "37" ]+                                ] []+                              ]+                            , mkQTagTree qn21+                              [ mkQAttrTree qn16 [ mkXTextTree "38" ]+                              ] []+                            ]+                          , mkQTagTree qn21+                            [ mkQAttrTree qn16 [ mkXTextTree "39" ]+                            ] []+                          ]+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "40" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "43" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "44" ]+                      ] []+                    ]+                  , mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "14" ]+                    ] []+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "41" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "param"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn5 []+              [ mkQTagTree qn17+                [ mkQAttrTree qn18 [ mkXTextTree "" ]+                ]+                [ mkXTextTree "name"+                ]+              , mkQTagTree qn7+                [ mkQAttrTree qn24 [ mkXTextTree "NCName" ]+                , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                ] []+              ]+            , mkQTagTree qn23 [] []+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "39" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "value"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn5 []+                  [ mkQTagTree qn17+                    [ mkQAttrTree qn18 [ mkXTextTree "" ]+                    ]+                    [ mkXTextTree "type"+                    ]+                  , mkQTagTree qn7+                    [ mkQAttrTree qn24 [ mkXTextTree "NCName" ]+                    , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn14 []+                [ mkQTagTree qn14 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn5 []+                      [ mkQTagTree qn17+                        [ mkQAttrTree qn18 [ mkXTextTree "" ]+                        ]+                        [ mkXTextTree "ns"+                        ]+                      , mkQTagTree qn23 [] []+                      ]+                    ]+                  , mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn5 []+                      [ mkQTagTree qn17+                        [ mkQAttrTree qn18 [ mkXTextTree "" ]+                        ]+                        [ mkXTextTree "datatypeLibrary"+                        ]+                      , mkQTagTree qn7+                        [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                        , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                        ] []+                      ]+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn20 []+                    [ mkQTagTree qn5 []+                      [ mkQTagTree qn4 []+                        [ mkQTagTree qn12 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn19+                              [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                              ] []+                            , mkQTagTree qn19+                              [ mkQAttrTree qn18 [ mkXTextTree "" ]+                              ] []+                            ]+                          ]+                        ]+                      , mkQTagTree qn23 [] []+                      ]+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn23 [] []+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "38" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "text"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn6 []+              [ mkQTagTree qn11 [] []+              , mkQTagTree qn20 []+                [ mkQTagTree qn21+                  [ mkQAttrTree qn16 [ mkXTextTree "16" ]+                  ] []+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "37" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "empty"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn6 []+              [ mkQTagTree qn11 [] []+              , mkQTagTree qn20 []+                [ mkQTagTree qn21+                  [ mkQAttrTree qn16 [ mkXTextTree "16" ]+                  ] []+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "36" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "parentRef"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn5 []+              [ mkQTagTree qn17+                [ mkQAttrTree qn18 [ mkXTextTree "" ]+                ]+                [ mkXTextTree "name"+                ]+              , mkQTagTree qn7+                [ mkQAttrTree qn24 [ mkXTextTree "NCName" ]+                , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                ] []+              ]+            , mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "35" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "ref"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn5 []+              [ mkQTagTree qn17+                [ mkQAttrTree qn18 [ mkXTextTree "" ]+                ]+                [ mkXTextTree "name"+                ]+              , mkQTagTree qn7+                [ mkQAttrTree qn24 [ mkXTextTree "NCName" ]+                , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                ] []+              ]+            , mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "34" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "mixed"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn20 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn6 []+                              [ mkQTagTree qn6 []+                                [ mkQTagTree qn6 []+                                  [ mkQTagTree qn6 []+                                    [ mkQTagTree qn6 []+                                      [ mkQTagTree qn6 []+                                        [ mkQTagTree qn6 []+                                          [ mkQTagTree qn6 []+                                            [ mkQTagTree qn6 []+                                              [ mkQTagTree qn6 []+                                                [ mkQTagTree qn6 []+                                                  [ mkQTagTree qn6 []+                                                    [ mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]+                                                      ] []+                                                    , mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "26" ]+                                                      ] []+                                                    ]+                                                  , mkQTagTree qn21+                                                    [ mkQAttrTree qn16 [ mkXTextTree "27" ]+                                                    ] []+                                                  ]+                                                , mkQTagTree qn21+                                                  [ mkQAttrTree qn16 [ mkXTextTree "28" ]+                                                  ] []+                                                ]+                                              , mkQTagTree qn21+                                                [ mkQAttrTree qn16 [ mkXTextTree "29" ]+                                                ] []+                                              ]+                                            , mkQTagTree qn21+                                              [ mkQAttrTree qn16 [ mkXTextTree "30" ]+                                              ] []+                                            ]+                                          , mkQTagTree qn21+                                            [ mkQAttrTree qn16 [ mkXTextTree "31" ]+                                            ] []+                                          ]+                                        , mkQTagTree qn21+                                          [ mkQAttrTree qn16 [ mkXTextTree "32" ]+                                          ] []+                                        ]+                                      , mkQTagTree qn21+                                        [ mkQAttrTree qn16 [ mkXTextTree "33" ]+                                        ] []+                                      ]+                                    , mkQTagTree qn21+                                      [ mkQAttrTree qn16 [ mkXTextTree "34" ]+                                      ] []+                                    ]+                                  , mkQTagTree qn21+                                    [ mkQAttrTree qn16 [ mkXTextTree "35" ]+                                    ] []+                                  ]+                                , mkQTagTree qn21+                                  [ mkQAttrTree qn16 [ mkXTextTree "36" ]+                                  ] []+                                ]+                              , mkQTagTree qn21+                                [ mkQAttrTree qn16 [ mkXTextTree "37" ]+                                ] []+                              ]+                            , mkQTagTree qn21+                              [ mkQAttrTree qn16 [ mkXTextTree "38" ]+                              ] []+                            ]+                          , mkQTagTree qn21+                            [ mkQAttrTree qn16 [ mkXTextTree "39" ]+                            ] []+                          ]+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "40" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "43" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "44" ]+                      ] []+                    ]+                  , mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "14" ]+                    ] []+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "33" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "list"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn20 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn6 []+                              [ mkQTagTree qn6 []+                                [ mkQTagTree qn6 []+                                  [ mkQTagTree qn6 []+                                    [ mkQTagTree qn6 []+                                      [ mkQTagTree qn6 []+                                        [ mkQTagTree qn6 []+                                          [ mkQTagTree qn6 []+                                            [ mkQTagTree qn6 []+                                              [ mkQTagTree qn6 []+                                                [ mkQTagTree qn6 []+                                                  [ mkQTagTree qn6 []+                                                    [ mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]+                                                      ] []+                                                    , mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "26" ]+                                                      ] []+                                                    ]+                                                  , mkQTagTree qn21+                                                    [ mkQAttrTree qn16 [ mkXTextTree "27" ]+                                                    ] []+                                                  ]+                                                , mkQTagTree qn21+                                                  [ mkQAttrTree qn16 [ mkXTextTree "28" ]+                                                  ] []+                                                ]+                                              , mkQTagTree qn21+                                                [ mkQAttrTree qn16 [ mkXTextTree "29" ]+                                                ] []+                                              ]+                                            , mkQTagTree qn21+                                              [ mkQAttrTree qn16 [ mkXTextTree "30" ]+                                              ] []+                                            ]+                                          , mkQTagTree qn21+                                            [ mkQAttrTree qn16 [ mkXTextTree "31" ]+                                            ] []+                                          ]+                                        , mkQTagTree qn21+                                          [ mkQAttrTree qn16 [ mkXTextTree "32" ]+                                          ] []+                                        ]+                                      , mkQTagTree qn21+                                        [ mkQAttrTree qn16 [ mkXTextTree "33" ]+                                        ] []+                                      ]+                                    , mkQTagTree qn21+                                      [ mkQAttrTree qn16 [ mkXTextTree "34" ]+                                      ] []+                                    ]+                                  , mkQTagTree qn21+                                    [ mkQAttrTree qn16 [ mkXTextTree "35" ]+                                    ] []+                                  ]+                                , mkQTagTree qn21+                                  [ mkQAttrTree qn16 [ mkXTextTree "36" ]+                                  ] []+                                ]+                              , mkQTagTree qn21+                                [ mkQAttrTree qn16 [ mkXTextTree "37" ]+                                ] []+                              ]+                            , mkQTagTree qn21+                              [ mkQAttrTree qn16 [ mkXTextTree "38" ]+                              ] []+                            ]+                          , mkQTagTree qn21+                            [ mkQAttrTree qn16 [ mkXTextTree "39" ]+                            ] []+                          ]+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "40" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "43" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "44" ]+                      ] []+                    ]+                  , mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "14" ]+                    ] []+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "32" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "oneOrMore"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn20 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn6 []+                              [ mkQTagTree qn6 []+                                [ mkQTagTree qn6 []+                                  [ mkQTagTree qn6 []+                                    [ mkQTagTree qn6 []+                                      [ mkQTagTree qn6 []+                                        [ mkQTagTree qn6 []+                                          [ mkQTagTree qn6 []+                                            [ mkQTagTree qn6 []+                                              [ mkQTagTree qn6 []+                                                [ mkQTagTree qn6 []+                                                  [ mkQTagTree qn6 []+                                                    [ mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]+                                                      ] []+                                                    , mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "26" ]+                                                      ] []+                                                    ]+                                                  , mkQTagTree qn21+                                                    [ mkQAttrTree qn16 [ mkXTextTree "27" ]+                                                    ] []+                                                  ]+                                                , mkQTagTree qn21+                                                  [ mkQAttrTree qn16 [ mkXTextTree "28" ]+                                                  ] []+                                                ]+                                              , mkQTagTree qn21+                                                [ mkQAttrTree qn16 [ mkXTextTree "29" ]+                                                ] []+                                              ]+                                            , mkQTagTree qn21+                                              [ mkQAttrTree qn16 [ mkXTextTree "30" ]+                                              ] []+                                            ]+                                          , mkQTagTree qn21+                                            [ mkQAttrTree qn16 [ mkXTextTree "31" ]+                                            ] []+                                          ]+                                        , mkQTagTree qn21+                                          [ mkQAttrTree qn16 [ mkXTextTree "32" ]+                                          ] []+                                        ]+                                      , mkQTagTree qn21+                                        [ mkQAttrTree qn16 [ mkXTextTree "33" ]+                                        ] []+                                      ]+                                    , mkQTagTree qn21+                                      [ mkQAttrTree qn16 [ mkXTextTree "34" ]+                                      ] []+                                    ]+                                  , mkQTagTree qn21+                                    [ mkQAttrTree qn16 [ mkXTextTree "35" ]+                                    ] []+                                  ]+                                , mkQTagTree qn21+                                  [ mkQAttrTree qn16 [ mkXTextTree "36" ]+                                  ] []+                                ]+                              , mkQTagTree qn21+                                [ mkQAttrTree qn16 [ mkXTextTree "37" ]+                                ] []+                              ]+                            , mkQTagTree qn21+                              [ mkQAttrTree qn16 [ mkXTextTree "38" ]+                              ] []+                            ]+                          , mkQTagTree qn21+                            [ mkQAttrTree qn16 [ mkXTextTree "39" ]+                            ] []+                          ]+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "40" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "43" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "44" ]+                      ] []+                    ]+                  , mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "14" ]+                    ] []+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "31" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "zeroOrMore"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn20 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn6 []+                              [ mkQTagTree qn6 []+                                [ mkQTagTree qn6 []+                                  [ mkQTagTree qn6 []+                                    [ mkQTagTree qn6 []+                                      [ mkQTagTree qn6 []+                                        [ mkQTagTree qn6 []+                                          [ mkQTagTree qn6 []+                                            [ mkQTagTree qn6 []+                                              [ mkQTagTree qn6 []+                                                [ mkQTagTree qn6 []+                                                  [ mkQTagTree qn6 []+                                                    [ mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]+                                                      ] []+                                                    , mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "26" ]+                                                      ] []+                                                    ]+                                                  , mkQTagTree qn21+                                                    [ mkQAttrTree qn16 [ mkXTextTree "27" ]+                                                    ] []+                                                  ]+                                                , mkQTagTree qn21+                                                  [ mkQAttrTree qn16 [ mkXTextTree "28" ]+                                                  ] []+                                                ]+                                              , mkQTagTree qn21+                                                [ mkQAttrTree qn16 [ mkXTextTree "29" ]+                                                ] []+                                              ]+                                            , mkQTagTree qn21+                                              [ mkQAttrTree qn16 [ mkXTextTree "30" ]+                                              ] []+                                            ]+                                          , mkQTagTree qn21+                                            [ mkQAttrTree qn16 [ mkXTextTree "31" ]+                                            ] []+                                          ]+                                        , mkQTagTree qn21+                                          [ mkQAttrTree qn16 [ mkXTextTree "32" ]+                                          ] []+                                        ]+                                      , mkQTagTree qn21+                                        [ mkQAttrTree qn16 [ mkXTextTree "33" ]+                                        ] []+                                      ]+                                    , mkQTagTree qn21+                                      [ mkQAttrTree qn16 [ mkXTextTree "34" ]+                                      ] []+                                    ]+                                  , mkQTagTree qn21+                                    [ mkQAttrTree qn16 [ mkXTextTree "35" ]+                                    ] []+                                  ]+                                , mkQTagTree qn21+                                  [ mkQAttrTree qn16 [ mkXTextTree "36" ]+                                  ] []+                                ]+                              , mkQTagTree qn21+                                [ mkQAttrTree qn16 [ mkXTextTree "37" ]+                                ] []+                              ]+                            , mkQTagTree qn21+                              [ mkQAttrTree qn16 [ mkXTextTree "38" ]+                              ] []+                            ]+                          , mkQTagTree qn21+                            [ mkQAttrTree qn16 [ mkXTextTree "39" ]+                            ] []+                          ]+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "40" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "43" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "44" ]+                      ] []+                    ]+                  , mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "14" ]+                    ] []+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "30" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "optional"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn20 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn6 []+                              [ mkQTagTree qn6 []+                                [ mkQTagTree qn6 []+                                  [ mkQTagTree qn6 []+                                    [ mkQTagTree qn6 []+                                      [ mkQTagTree qn6 []+                                        [ mkQTagTree qn6 []+                                          [ mkQTagTree qn6 []+                                            [ mkQTagTree qn6 []+                                              [ mkQTagTree qn6 []+                                                [ mkQTagTree qn6 []+                                                  [ mkQTagTree qn6 []+                                                    [ mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]+                                                      ] []+                                                    , mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "26" ]+                                                      ] []+                                                    ]+                                                  , mkQTagTree qn21+                                                    [ mkQAttrTree qn16 [ mkXTextTree "27" ]+                                                    ] []+                                                  ]+                                                , mkQTagTree qn21+                                                  [ mkQAttrTree qn16 [ mkXTextTree "28" ]+                                                  ] []+                                                ]+                                              , mkQTagTree qn21+                                                [ mkQAttrTree qn16 [ mkXTextTree "29" ]+                                                ] []+                                              ]+                                            , mkQTagTree qn21+                                              [ mkQAttrTree qn16 [ mkXTextTree "30" ]+                                              ] []+                                            ]+                                          , mkQTagTree qn21+                                            [ mkQAttrTree qn16 [ mkXTextTree "31" ]+                                            ] []+                                          ]+                                        , mkQTagTree qn21+                                          [ mkQAttrTree qn16 [ mkXTextTree "32" ]+                                          ] []+                                        ]+                                      , mkQTagTree qn21+                                        [ mkQAttrTree qn16 [ mkXTextTree "33" ]+                                        ] []+                                      ]+                                    , mkQTagTree qn21+                                      [ mkQAttrTree qn16 [ mkXTextTree "34" ]+                                      ] []+                                    ]+                                  , mkQTagTree qn21+                                    [ mkQAttrTree qn16 [ mkXTextTree "35" ]+                                    ] []+                                  ]+                                , mkQTagTree qn21+                                  [ mkQAttrTree qn16 [ mkXTextTree "36" ]+                                  ] []+                                ]+                              , mkQTagTree qn21+                                [ mkQAttrTree qn16 [ mkXTextTree "37" ]+                                ] []+                              ]+                            , mkQTagTree qn21+                              [ mkQAttrTree qn16 [ mkXTextTree "38" ]+                              ] []+                            ]+                          , mkQTagTree qn21+                            [ mkQAttrTree qn16 [ mkXTextTree "39" ]+                            ] []+                          ]+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "40" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "43" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "44" ]+                      ] []+                    ]+                  , mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "14" ]+                    ] []+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "29" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "choice"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn20 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn6 []+                              [ mkQTagTree qn6 []+                                [ mkQTagTree qn6 []+                                  [ mkQTagTree qn6 []+                                    [ mkQTagTree qn6 []+                                      [ mkQTagTree qn6 []+                                        [ mkQTagTree qn6 []+                                          [ mkQTagTree qn6 []+                                            [ mkQTagTree qn6 []+                                              [ mkQTagTree qn6 []+                                                [ mkQTagTree qn6 []+                                                  [ mkQTagTree qn6 []+                                                    [ mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]+                                                      ] []+                                                    , mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "26" ]+                                                      ] []+                                                    ]+                                                  , mkQTagTree qn21+                                                    [ mkQAttrTree qn16 [ mkXTextTree "27" ]+                                                    ] []+                                                  ]+                                                , mkQTagTree qn21+                                                  [ mkQAttrTree qn16 [ mkXTextTree "28" ]+                                                  ] []+                                                ]+                                              , mkQTagTree qn21+                                                [ mkQAttrTree qn16 [ mkXTextTree "29" ]+                                                ] []+                                              ]+                                            , mkQTagTree qn21+                                              [ mkQAttrTree qn16 [ mkXTextTree "30" ]+                                              ] []+                                            ]+                                          , mkQTagTree qn21+                                            [ mkQAttrTree qn16 [ mkXTextTree "31" ]+                                            ] []+                                          ]+                                        , mkQTagTree qn21+                                          [ mkQAttrTree qn16 [ mkXTextTree "32" ]+                                          ] []+                                        ]+                                      , mkQTagTree qn21+                                        [ mkQAttrTree qn16 [ mkXTextTree "33" ]+                                        ] []+                                      ]+                                    , mkQTagTree qn21+                                      [ mkQAttrTree qn16 [ mkXTextTree "34" ]+                                      ] []+                                    ]+                                  , mkQTagTree qn21+                                    [ mkQAttrTree qn16 [ mkXTextTree "35" ]+                                    ] []+                                  ]+                                , mkQTagTree qn21+                                  [ mkQAttrTree qn16 [ mkXTextTree "36" ]+                                  ] []+                                ]+                              , mkQTagTree qn21+                                [ mkQAttrTree qn16 [ mkXTextTree "37" ]+                                ] []+                              ]+                            , mkQTagTree qn21+                              [ mkQAttrTree qn16 [ mkXTextTree "38" ]+                              ] []+                            ]+                          , mkQTagTree qn21+                            [ mkQAttrTree qn16 [ mkXTextTree "39" ]+                            ] []+                          ]+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "40" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "43" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "44" ]+                      ] []+                    ]+                  , mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "14" ]+                    ] []+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "28" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "interleave"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn20 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn6 []+                              [ mkQTagTree qn6 []+                                [ mkQTagTree qn6 []+                                  [ mkQTagTree qn6 []+                                    [ mkQTagTree qn6 []+                                      [ mkQTagTree qn6 []+                                        [ mkQTagTree qn6 []+                                          [ mkQTagTree qn6 []+                                            [ mkQTagTree qn6 []+                                              [ mkQTagTree qn6 []+                                                [ mkQTagTree qn6 []+                                                  [ mkQTagTree qn6 []+                                                    [ mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]+                                                      ] []+                                                    , mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "26" ]+                                                      ] []+                                                    ]+                                                  , mkQTagTree qn21+                                                    [ mkQAttrTree qn16 [ mkXTextTree "27" ]+                                                    ] []+                                                  ]+                                                , mkQTagTree qn21+                                                  [ mkQAttrTree qn16 [ mkXTextTree "28" ]+                                                  ] []+                                                ]+                                              , mkQTagTree qn21+                                                [ mkQAttrTree qn16 [ mkXTextTree "29" ]+                                                ] []+                                              ]+                                            , mkQTagTree qn21+                                              [ mkQAttrTree qn16 [ mkXTextTree "30" ]+                                              ] []+                                            ]+                                          , mkQTagTree qn21+                                            [ mkQAttrTree qn16 [ mkXTextTree "31" ]+                                            ] []+                                          ]+                                        , mkQTagTree qn21+                                          [ mkQAttrTree qn16 [ mkXTextTree "32" ]+                                          ] []+                                        ]+                                      , mkQTagTree qn21+                                        [ mkQAttrTree qn16 [ mkXTextTree "33" ]+                                        ] []+                                      ]+                                    , mkQTagTree qn21+                                      [ mkQAttrTree qn16 [ mkXTextTree "34" ]+                                      ] []+                                    ]+                                  , mkQTagTree qn21+                                    [ mkQAttrTree qn16 [ mkXTextTree "35" ]+                                    ] []+                                  ]+                                , mkQTagTree qn21+                                  [ mkQAttrTree qn16 [ mkXTextTree "36" ]+                                  ] []+                                ]+                              , mkQTagTree qn21+                                [ mkQAttrTree qn16 [ mkXTextTree "37" ]+                                ] []+                              ]+                            , mkQTagTree qn21+                              [ mkQAttrTree qn16 [ mkXTextTree "38" ]+                              ] []+                            ]+                          , mkQTagTree qn21+                            [ mkQAttrTree qn16 [ mkXTextTree "39" ]+                            ] []+                          ]+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "40" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "43" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "44" ]+                      ] []+                    ]+                  , mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "14" ]+                    ] []+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "27" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "group"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn20 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn6 []+                              [ mkQTagTree qn6 []+                                [ mkQTagTree qn6 []+                                  [ mkQTagTree qn6 []+                                    [ mkQTagTree qn6 []+                                      [ mkQTagTree qn6 []+                                        [ mkQTagTree qn6 []+                                          [ mkQTagTree qn6 []+                                            [ mkQTagTree qn6 []+                                              [ mkQTagTree qn6 []+                                                [ mkQTagTree qn6 []+                                                  [ mkQTagTree qn6 []+                                                    [ mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]+                                                      ] []+                                                    , mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "26" ]+                                                      ] []+                                                    ]+                                                  , mkQTagTree qn21+                                                    [ mkQAttrTree qn16 [ mkXTextTree "27" ]+                                                    ] []+                                                  ]+                                                , mkQTagTree qn21+                                                  [ mkQAttrTree qn16 [ mkXTextTree "28" ]+                                                  ] []+                                                ]+                                              , mkQTagTree qn21+                                                [ mkQAttrTree qn16 [ mkXTextTree "29" ]+                                                ] []+                                              ]+                                            , mkQTagTree qn21+                                              [ mkQAttrTree qn16 [ mkXTextTree "30" ]+                                              ] []+                                            ]+                                          , mkQTagTree qn21+                                            [ mkQAttrTree qn16 [ mkXTextTree "31" ]+                                            ] []+                                          ]+                                        , mkQTagTree qn21+                                          [ mkQAttrTree qn16 [ mkXTextTree "32" ]+                                          ] []+                                        ]+                                      , mkQTagTree qn21+                                        [ mkQAttrTree qn16 [ mkXTextTree "33" ]+                                        ] []+                                      ]+                                    , mkQTagTree qn21+                                      [ mkQAttrTree qn16 [ mkXTextTree "34" ]+                                      ] []+                                    ]+                                  , mkQTagTree qn21+                                    [ mkQAttrTree qn16 [ mkXTextTree "35" ]+                                    ] []+                                  ]+                                , mkQTagTree qn21+                                  [ mkQAttrTree qn16 [ mkXTextTree "36" ]+                                  ] []+                                ]+                              , mkQTagTree qn21+                                [ mkQAttrTree qn16 [ mkXTextTree "37" ]+                                ] []+                              ]+                            , mkQTagTree qn21+                              [ mkQAttrTree qn16 [ mkXTextTree "38" ]+                              ] []+                            ]+                          , mkQTagTree qn21+                            [ mkQAttrTree qn16 [ mkXTextTree "39" ]+                            ] []+                          ]+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "40" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "43" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "44" ]+                      ] []+                    ]+                  , mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "14" ]+                    ] []+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "26" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "attribute"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn14 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn5 []+                      [ mkQTagTree qn17+                        [ mkQAttrTree qn18 [ mkXTextTree "" ]+                        ]+                        [ mkXTextTree "ns"+                        ]+                      , mkQTagTree qn23 [] []+                      ]+                    ]+                  , mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn5 []+                      [ mkQTagTree qn17+                        [ mkQAttrTree qn18 [ mkXTextTree "" ]+                        ]+                        [ mkXTextTree "datatypeLibrary"+                        ]+                      , mkQTagTree qn7+                        [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                        , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                        ] []+                      ]+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn20 []+                    [ mkQTagTree qn5 []+                      [ mkQTagTree qn4 []+                        [ mkQTagTree qn12 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn19+                              [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                              ] []+                            , mkQTagTree qn19+                              [ mkQAttrTree qn18 [ mkXTextTree "" ]+                              ] []+                            ]+                          ]+                        ]+                      , mkQTagTree qn23 [] []+                      ]+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn5 []+                  [ mkQTagTree qn17+                    [ mkQAttrTree qn18 [ mkXTextTree "" ]+                    ]+                    [ mkXTextTree "name"+                    ]+                  , mkQTagTree qn7+                    [ mkQAttrTree qn24 [ mkXTextTree "QName" ]+                    , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                    ] []+                  ]+                , mkQTagTree qn15 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn20 []+                      [ mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "16" ]+                        ] []+                      ]+                    ]+                  , mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "18" ]+                          ] []+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "19" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "20" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "21" ]+                      ] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn6 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn6 []+                              [ mkQTagTree qn6 []+                                [ mkQTagTree qn6 []+                                  [ mkQTagTree qn6 []+                                    [ mkQTagTree qn6 []+                                      [ mkQTagTree qn6 []+                                        [ mkQTagTree qn6 []+                                          [ mkQTagTree qn6 []+                                            [ mkQTagTree qn6 []+                                              [ mkQTagTree qn6 []+                                                [ mkQTagTree qn6 []+                                                  [ mkQTagTree qn6 []+                                                    [ mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]+                                                      ] []+                                                    , mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "26" ]+                                                      ] []+                                                    ]+                                                  , mkQTagTree qn21+                                                    [ mkQAttrTree qn16 [ mkXTextTree "27" ]+                                                    ] []+                                                  ]+                                                , mkQTagTree qn21+                                                  [ mkQAttrTree qn16 [ mkXTextTree "28" ]+                                                  ] []+                                                ]+                                              , mkQTagTree qn21+                                                [ mkQAttrTree qn16 [ mkXTextTree "29" ]+                                                ] []+                                              ]+                                            , mkQTagTree qn21+                                              [ mkQAttrTree qn16 [ mkXTextTree "30" ]+                                              ] []+                                            ]+                                          , mkQTagTree qn21+                                            [ mkQAttrTree qn16 [ mkXTextTree "31" ]+                                            ] []+                                          ]+                                        , mkQTagTree qn21+                                          [ mkQAttrTree qn16 [ mkXTextTree "32" ]+                                          ] []+                                        ]+                                      , mkQTagTree qn21+                                        [ mkQAttrTree qn16 [ mkXTextTree "33" ]+                                        ] []+                                      ]+                                    , mkQTagTree qn21+                                      [ mkQAttrTree qn16 [ mkXTextTree "34" ]+                                      ] []+                                    ]+                                  , mkQTagTree qn21+                                    [ mkQAttrTree qn16 [ mkXTextTree "35" ]+                                    ] []+                                  ]+                                , mkQTagTree qn21+                                  [ mkQAttrTree qn16 [ mkXTextTree "36" ]+                                  ] []+                                ]+                              , mkQTagTree qn21+                                [ mkQAttrTree qn16 [ mkXTextTree "37" ]+                                ] []+                              ]+                            , mkQTagTree qn21+                              [ mkQAttrTree qn16 [ mkXTextTree "38" ]+                              ] []+                            ]+                          , mkQTagTree qn21+                            [ mkQAttrTree qn16 [ mkXTextTree "39" ]+                            ] []+                          ]+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "40" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "43" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "44" ]+                      ] []+                    ]+                  , mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "14" ]+                    ] []+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "25" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "element"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn5 []+                  [ mkQTagTree qn17+                    [ mkQAttrTree qn18 [ mkXTextTree "" ]+                    ]+                    [ mkXTextTree "name"+                    ]+                  , mkQTagTree qn7+                    [ mkQAttrTree qn24 [ mkXTextTree "QName" ]+                    , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                    ] []+                  ]+                , mkQTagTree qn15 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn20 []+                      [ mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "16" ]+                        ] []+                      ]+                    ]+                  , mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "18" ]+                          ] []+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "19" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "20" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "21" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn14 []+                [ mkQTagTree qn14 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn5 []+                      [ mkQTagTree qn17+                        [ mkQAttrTree qn18 [ mkXTextTree "" ]+                        ]+                        [ mkXTextTree "ns"+                        ]+                      , mkQTagTree qn23 [] []+                      ]+                    ]+                  , mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn5 []+                      [ mkQTagTree qn17+                        [ mkQAttrTree qn18 [ mkXTextTree "" ]+                        ]+                        [ mkXTextTree "datatypeLibrary"+                        ]+                      , mkQTagTree qn7+                        [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                        , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                        ] []+                      ]+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn20 []+                    [ mkQTagTree qn5 []+                      [ mkQTagTree qn4 []+                        [ mkQTagTree qn12 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn19+                              [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                              ] []+                            , mkQTagTree qn19+                              [ mkQAttrTree qn18 [ mkXTextTree "" ]+                              ] []+                            ]+                          ]+                        ]+                      , mkQTagTree qn23 [] []+                      ]+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn20 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn6 []+                              [ mkQTagTree qn6 []+                                [ mkQTagTree qn6 []+                                  [ mkQTagTree qn6 []+                                    [ mkQTagTree qn6 []+                                      [ mkQTagTree qn6 []+                                        [ mkQTagTree qn6 []+                                          [ mkQTagTree qn6 []+                                            [ mkQTagTree qn6 []+                                              [ mkQTagTree qn6 []+                                                [ mkQTagTree qn6 []+                                                  [ mkQTagTree qn6 []+                                                    [ mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]+                                                      ] []+                                                    , mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "26" ]+                                                      ] []+                                                    ]+                                                  , mkQTagTree qn21+                                                    [ mkQAttrTree qn16 [ mkXTextTree "27" ]+                                                    ] []+                                                  ]+                                                , mkQTagTree qn21+                                                  [ mkQAttrTree qn16 [ mkXTextTree "28" ]+                                                  ] []+                                                ]+                                              , mkQTagTree qn21+                                                [ mkQAttrTree qn16 [ mkXTextTree "29" ]+                                                ] []+                                              ]+                                            , mkQTagTree qn21+                                              [ mkQAttrTree qn16 [ mkXTextTree "30" ]+                                              ] []+                                            ]+                                          , mkQTagTree qn21+                                            [ mkQAttrTree qn16 [ mkXTextTree "31" ]+                                            ] []+                                          ]+                                        , mkQTagTree qn21+                                          [ mkQAttrTree qn16 [ mkXTextTree "32" ]+                                          ] []+                                        ]+                                      , mkQTagTree qn21+                                        [ mkQAttrTree qn16 [ mkXTextTree "33" ]+                                        ] []+                                      ]+                                    , mkQTagTree qn21+                                      [ mkQAttrTree qn16 [ mkXTextTree "34" ]+                                      ] []+                                    ]+                                  , mkQTagTree qn21+                                    [ mkQAttrTree qn16 [ mkXTextTree "35" ]+                                    ] []+                                  ]+                                , mkQTagTree qn21+                                  [ mkQAttrTree qn16 [ mkXTextTree "36" ]+                                  ] []+                                ]+                              , mkQTagTree qn21+                                [ mkQAttrTree qn16 [ mkXTextTree "37" ]+                                ] []+                              ]+                            , mkQTagTree qn21+                              [ mkQAttrTree qn16 [ mkXTextTree "38" ]+                              ] []+                            ]+                          , mkQTagTree qn21+                            [ mkQAttrTree qn16 [ mkXTextTree "39" ]+                            ] []+                          ]+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "40" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "43" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "44" ]+                      ] []+                    ]+                  , mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "14" ]+                    ] []+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "24" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "include"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn5 []+                [ mkQTagTree qn17+                  [ mkQAttrTree qn18 [ mkXTextTree "" ]+                  ]+                  [ mkXTextTree "href"+                  ]+                , mkQTagTree qn7+                  [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                  , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                  ] []+                ]+              , mkQTagTree qn14 []+                [ mkQTagTree qn14 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn5 []+                      [ mkQTagTree qn17+                        [ mkQAttrTree qn18 [ mkXTextTree "" ]+                        ]+                        [ mkXTextTree "ns"+                        ]+                      , mkQTagTree qn23 [] []+                      ]+                    ]+                  , mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn5 []+                      [ mkQTagTree qn17+                        [ mkQAttrTree qn18 [ mkXTextTree "" ]+                        ]+                        [ mkXTextTree "datatypeLibrary"+                        ]+                      , mkQTagTree qn7+                        [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                        , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                        ] []+                      ]+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn20 []+                    [ mkQTagTree qn5 []+                      [ mkQTagTree qn4 []+                        [ mkQTagTree qn12 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn19+                              [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                              ] []+                            , mkQTagTree qn19+                              [ mkQAttrTree qn18 [ mkXTextTree "" ]+                              ] []+                            ]+                          ]+                        ]+                      , mkQTagTree qn23 [] []+                      ]+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "11" ]+                        ] []+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "10" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "22" ]+                      ] []+                    ]+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "23" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "div"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "11" ]+                          ] []+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "10" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "23" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "24" ]+                      ] []+                    ]+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "22" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "div"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "11" ]+                        ] []+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "10" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "22" ]+                      ] []+                    ]+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "21" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "choice"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn20 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "18" ]+                        ] []+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "19" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "20" ]+                      ] []+                    ]+                  , mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "21" ]+                    ] []+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "20" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "nsName"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn21+                  [ mkQAttrTree qn16 [ mkXTextTree "17" ]+                  ] []+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "19" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "anyName"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn21+                  [ mkQAttrTree qn16 [ mkXTextTree "17" ]+                  ] []+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "18" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "name"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn7+              [ mkQAttrTree qn24 [ mkXTextTree "QName" ]+              , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+              ] []+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "17" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "except"+            ]+          , mkQTagTree qn15 []+            [ mkQTagTree qn6 []+              [ mkQTagTree qn11 [] []+              , mkQTagTree qn20 []+                [ mkQTagTree qn21+                  [ mkQAttrTree qn16 [ mkXTextTree "16" ]+                  ] []+                ]+              ]+            , mkQTagTree qn20 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "18" ]+                      ] []+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "19" ]+                      ] []+                    ]+                  , mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "20" ]+                    ] []+                  ]+                , mkQTagTree qn21+                  [ mkQAttrTree qn16 [ mkXTextTree "21" ]+                  ] []+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "16" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn4 []+            [ mkQTagTree qn12 []+              [ mkQTagTree qn19+                [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                ] []+              ]+            ]+          , mkQTagTree qn6 []+            [ mkQTagTree qn11 [] []+            , mkQTagTree qn20 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 [] []+                    , mkQTagTree qn23 [] []+                    ]+                  , mkQTagTree qn23 [] []+                  ]+                , mkQTagTree qn21+                  [ mkQAttrTree qn16 [ mkXTextTree "0" ]+                  ] []+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "0" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn4 [] []+          , mkQTagTree qn6 []+            [ mkQTagTree qn11 [] []+            , mkQTagTree qn20 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 [] []+                    , mkQTagTree qn23 [] []+                    ]+                  , mkQTagTree qn23 [] []+                  ]+                , mkQTagTree qn21+                  [ mkQAttrTree qn16 [ mkXTextTree "0" ]+                  ] []+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "10" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "define"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn5 []+                  [ mkQTagTree qn17+                    [ mkQAttrTree qn18 [ mkXTextTree "" ]+                    ]+                    [ mkXTextTree "name"+                    ]+                  , mkQTagTree qn7+                    [ mkQAttrTree qn24 [ mkXTextTree "NCName" ]+                    , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                    ] []+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "combine"+                      ]+                    , mkQTagTree qn6 []+                      [ mkQTagTree qn25+                        [ mkQAttrTree qn1 [ mkXTextTree "http://www.w3.org/XML/1998/namespaces" ]+                        , mkQAttrTree qn3 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                        , mkQAttrTree qn2 [ mkXTextTree "file:///home/uwe/fh/public_html/src/haskell/hxml/src/Text/XML/HXT/RelaxNG/schema2hs/SchemaGrammar.rng" ]+                        , mkQAttrTree qn8 [ mkXTextTree "" ]+                        , mkQAttrTree qn24 [ mkXTextTree "token" ]+                        , mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                        ]+                        [ mkXTextTree "choice"+                        ]+                      , mkQTagTree qn25+                        [ mkQAttrTree qn1 [ mkXTextTree "http://www.w3.org/XML/1998/namespaces" ]+                        , mkQAttrTree qn3 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                        , mkQAttrTree qn2 [ mkXTextTree "file:///home/uwe/fh/public_html/src/haskell/hxml/src/Text/XML/HXT/RelaxNG/schema2hs/SchemaGrammar.rng" ]+                        , mkQAttrTree qn8 [ mkXTextTree "" ]+                        , mkQAttrTree qn24 [ mkXTextTree "token" ]+                        , mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                        ]+                        [ mkXTextTree "interleave"+                        ]+                      ]+                    ]+                  ]+                ]+              , mkQTagTree qn14 []+                [ mkQTagTree qn14 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn5 []+                      [ mkQTagTree qn17+                        [ mkQAttrTree qn18 [ mkXTextTree "" ]+                        ]+                        [ mkXTextTree "ns"+                        ]+                      , mkQTagTree qn23 [] []+                      ]+                    ]+                  , mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn5 []+                      [ mkQTagTree qn17+                        [ mkQAttrTree qn18 [ mkXTextTree "" ]+                        ]+                        [ mkXTextTree "datatypeLibrary"+                        ]+                      , mkQTagTree qn7+                        [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                        , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                        ] []+                      ]+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn20 []+                    [ mkQTagTree qn5 []+                      [ mkQTagTree qn4 []+                        [ mkQTagTree qn12 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn19+                              [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                              ] []+                            , mkQTagTree qn19+                              [ mkQAttrTree qn18 [ mkXTextTree "" ]+                              ] []+                            ]+                          ]+                        ]+                      , mkQTagTree qn23 [] []+                      ]+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn20 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn6 []+                              [ mkQTagTree qn6 []+                                [ mkQTagTree qn6 []+                                  [ mkQTagTree qn6 []+                                    [ mkQTagTree qn6 []+                                      [ mkQTagTree qn6 []+                                        [ mkQTagTree qn6 []+                                          [ mkQTagTree qn6 []+                                            [ mkQTagTree qn6 []+                                              [ mkQTagTree qn6 []+                                                [ mkQTagTree qn6 []+                                                  [ mkQTagTree qn6 []+                                                    [ mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "25" ]+                                                      ] []+                                                    , mkQTagTree qn21+                                                      [ mkQAttrTree qn16 [ mkXTextTree "26" ]+                                                      ] []+                                                    ]+                                                  , mkQTagTree qn21+                                                    [ mkQAttrTree qn16 [ mkXTextTree "27" ]+                                                    ] []+                                                  ]+                                                , mkQTagTree qn21+                                                  [ mkQAttrTree qn16 [ mkXTextTree "28" ]+                                                  ] []+                                                ]+                                              , mkQTagTree qn21+                                                [ mkQAttrTree qn16 [ mkXTextTree "29" ]+                                                ] []+                                              ]+                                            , mkQTagTree qn21+                                              [ mkQAttrTree qn16 [ mkXTextTree "30" ]+                                              ] []+                                            ]+                                          , mkQTagTree qn21+                                            [ mkQAttrTree qn16 [ mkXTextTree "31" ]+                                            ] []+                                          ]+                                        , mkQTagTree qn21+                                          [ mkQAttrTree qn16 [ mkXTextTree "32" ]+                                          ] []+                                        ]+                                      , mkQTagTree qn21+                                        [ mkQAttrTree qn16 [ mkXTextTree "33" ]+                                        ] []+                                      ]+                                    , mkQTagTree qn21+                                      [ mkQAttrTree qn16 [ mkXTextTree "34" ]+                                      ] []+                                    ]+                                  , mkQTagTree qn21+                                    [ mkQAttrTree qn16 [ mkXTextTree "35" ]+                                    ] []+                                  ]+                                , mkQTagTree qn21+                                  [ mkQAttrTree qn16 [ mkXTextTree "36" ]+                                  ] []+                                ]+                              , mkQTagTree qn21+                                [ mkQAttrTree qn16 [ mkXTextTree "37" ]+                                ] []+                              ]+                            , mkQTagTree qn21+                              [ mkQAttrTree qn16 [ mkXTextTree "38" ]+                              ] []+                            ]+                          , mkQTagTree qn21+                            [ mkQAttrTree qn16 [ mkXTextTree "39" ]+                            ] []+                          ]+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "40" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "43" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "44" ]+                      ] []+                    ]+                  , mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "14" ]+                    ] []+                  ]+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "11" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "start"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn5 []+                  [ mkQTagTree qn17+                    [ mkQAttrTree qn18 [ mkXTextTree "" ]+                    ]+                    [ mkXTextTree "combine"+                    ]+                  , mkQTagTree qn6 []+                    [ mkQTagTree qn25+                      [ mkQAttrTree qn1 [ mkXTextTree "http://www.w3.org/XML/1998/namespaces" ]+                      , mkQAttrTree qn3 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                      , mkQAttrTree qn2 [ mkXTextTree "file:///home/uwe/fh/public_html/src/haskell/hxml/src/Text/XML/HXT/RelaxNG/schema2hs/SchemaGrammar.rng" ]+                      , mkQAttrTree qn8 [ mkXTextTree "" ]+                      , mkQAttrTree qn24 [ mkXTextTree "token" ]+                      , mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                      ]+                      [ mkXTextTree "choice"+                      ]+                    , mkQTagTree qn25+                      [ mkQAttrTree qn1 [ mkXTextTree "http://www.w3.org/XML/1998/namespaces" ]+                      , mkQAttrTree qn3 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                      , mkQAttrTree qn2 [ mkXTextTree "file:///home/uwe/fh/public_html/src/haskell/hxml/src/Text/XML/HXT/RelaxNG/schema2hs/SchemaGrammar.rng" ]+                      , mkQAttrTree qn8 [ mkXTextTree "" ]+                      , mkQAttrTree qn24 [ mkXTextTree "token" ]+                      , mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                      ]+                      [ mkXTextTree "interleave"+                      ]+                    ]+                  ]+                ]+              , mkQTagTree qn14 []+                [ mkQTagTree qn14 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn5 []+                      [ mkQTagTree qn17+                        [ mkQAttrTree qn18 [ mkXTextTree "" ]+                        ]+                        [ mkXTextTree "ns"+                        ]+                      , mkQTagTree qn23 [] []+                      ]+                    ]+                  , mkQTagTree qn6 []+                    [ mkQTagTree qn11 [] []+                    , mkQTagTree qn5 []+                      [ mkQTagTree qn17+                        [ mkQAttrTree qn18 [ mkXTextTree "" ]+                        ]+                        [ mkXTextTree "datatypeLibrary"+                        ]+                      , mkQTagTree qn7+                        [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                        , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                        ] []+                      ]+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn20 []+                    [ mkQTagTree qn5 []+                      [ mkQTagTree qn4 []+                        [ mkQTagTree qn12 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn19+                              [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                              ] []+                            , mkQTagTree qn19+                              [ mkQAttrTree qn18 [ mkXTextTree "" ]+                              ] []+                            ]+                          ]+                        ]+                      , mkQTagTree qn23 [] []+                      ]+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn6 []+                            [ mkQTagTree qn6 []+                              [ mkQTagTree qn6 []+                                [ mkQTagTree qn6 []+                                  [ mkQTagTree qn6 []+                                    [ mkQTagTree qn6 []+                                      [ mkQTagTree qn6 []+                                        [ mkQTagTree qn6 []+                                          [ mkQTagTree qn6 []+                                            [ mkQTagTree qn6 []+                                              [ mkQTagTree qn6 []+                                                [ mkQTagTree qn6 []+                                                  [ mkQTagTree qn21+                                                    [ mkQAttrTree qn16 [ mkXTextTree "25" ]+                                                    ] []+                                                  , mkQTagTree qn21+                                                    [ mkQAttrTree qn16 [ mkXTextTree "26" ]+                                                    ] []+                                                  ]+                                                , mkQTagTree qn21+                                                  [ mkQAttrTree qn16 [ mkXTextTree "27" ]+                                                  ] []+                                                ]+                                              , mkQTagTree qn21+                                                [ mkQAttrTree qn16 [ mkXTextTree "28" ]+                                                ] []+                                              ]+                                            , mkQTagTree qn21+                                              [ mkQAttrTree qn16 [ mkXTextTree "29" ]+                                              ] []+                                            ]+                                          , mkQTagTree qn21+                                            [ mkQAttrTree qn16 [ mkXTextTree "30" ]+                                            ] []+                                          ]+                                        , mkQTagTree qn21+                                          [ mkQAttrTree qn16 [ mkXTextTree "31" ]+                                          ] []+                                        ]+                                      , mkQTagTree qn21+                                        [ mkQAttrTree qn16 [ mkXTextTree "32" ]+                                        ] []+                                      ]+                                    , mkQTagTree qn21+                                      [ mkQAttrTree qn16 [ mkXTextTree "33" ]+                                      ] []+                                    ]+                                  , mkQTagTree qn21+                                    [ mkQAttrTree qn16 [ mkXTextTree "34" ]+                                    ] []+                                  ]+                                , mkQTagTree qn21+                                  [ mkQAttrTree qn16 [ mkXTextTree "35" ]+                                  ] []+                                ]+                              , mkQTagTree qn21+                                [ mkQAttrTree qn16 [ mkXTextTree "36" ]+                                ] []+                              ]+                            , mkQTagTree qn21+                              [ mkQAttrTree qn16 [ mkXTextTree "37" ]+                              ] []+                            ]+                          , mkQTagTree qn21+                            [ mkQAttrTree qn16 [ mkXTextTree "38" ]+                            ] []+                          ]+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "39" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "40" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "43" ]+                      ] []+                    ]+                  , mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "44" ]+                    ] []+                  ]+                , mkQTagTree qn21+                  [ mkQAttrTree qn16 [ mkXTextTree "14" ]+                  ] []+                ]+              ]+            ]+          ]+        ]+      , mkQTagTree qn9+        [ mkQAttrTree qn16 [ mkXTextTree "14" ]+        ]+        [ mkQTagTree qn10 []+          [ mkQTagTree qn17+            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+            ]+            [ mkXTextTree "grammar"+            ]+          , mkQTagTree qn14 []+            [ mkQTagTree qn14 []+              [ mkQTagTree qn14 []+                [ mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "ns"+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                , mkQTagTree qn6 []+                  [ mkQTagTree qn11 [] []+                  , mkQTagTree qn5 []+                    [ mkQTagTree qn17+                      [ mkQAttrTree qn18 [ mkXTextTree "" ]+                      ]+                      [ mkXTextTree "datatypeLibrary"+                      ]+                    , mkQTagTree qn7+                      [ mkQAttrTree qn24 [ mkXTextTree "anyURI" ]+                      , mkQAttrTree qn8 [ mkXTextTree "http://www.w3.org/2001/XMLSchema-datatypes" ]+                      ] []+                    ]+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn5 []+                    [ mkQTagTree qn4 []+                      [ mkQTagTree qn12 []+                        [ mkQTagTree qn6 []+                          [ mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "http://relaxng.org/ns/structure/1.0" ]+                            ] []+                          , mkQTagTree qn19+                            [ mkQAttrTree qn18 [ mkXTextTree "" ]+                            ] []+                          ]+                        ]+                      ]+                    , mkQTagTree qn23 [] []+                    ]+                  ]+                ]+              ]+            , mkQTagTree qn15 []+              [ mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn21+                    [ mkQAttrTree qn16 [ mkXTextTree "16" ]+                    ] []+                  ]+                ]+              , mkQTagTree qn6 []+                [ mkQTagTree qn11 [] []+                , mkQTagTree qn20 []+                  [ mkQTagTree qn6 []+                    [ mkQTagTree qn6 []+                      [ mkQTagTree qn6 []+                        [ mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "11" ]+                          ] []+                        , mkQTagTree qn21+                          [ mkQAttrTree qn16 [ mkXTextTree "10" ]+                          ] []+                        ]+                      , mkQTagTree qn21+                        [ mkQAttrTree qn16 [ mkXTextTree "23" ]+                        ] []+                      ]+                    , mkQTagTree qn21+                      [ mkQAttrTree qn16 [ mkXTextTree "24" ]+                      ] []+                    ]+                  ]+                ]+              ]+            ]+          ]+        ]+      ]+    ]
+ src/Text/XML/HXT/RelaxNG/Simplification.hs view
@@ -0,0 +1,2152 @@+-- |+-- The modul creates the simplified form of a Relax NG schema.+-- See also chapter 4 of the Relax NG specification.+++module Text.XML.HXT.RelaxNG.Simplification+  ( createSimpleForm+  , getErrors+  )++where+++import Control.Arrow.ListArrows++import Text.XML.HXT.Arrow.DOMInterface+import Text.XML.HXT.Arrow.XmlArrow+    hiding+    ( mkText+    , mkError+    , mkElement+    , hasName+    )++import qualified Text.XML.HXT.Arrow.XmlArrow as A+    ( mkElement+    , hasName+    )++import Text.XML.HXT.Arrow.XmlIOStateArrow++import Text.XML.HXT.Arrow.Namespace+    ( processWithNsEnv+    , propagateNamespaces+    )++import Text.XML.HXT.Arrow.Edit+    ( removeWhiteSpace+    )+++import qualified Text.XML.HXT.Arrow.XmlNode as XN+    ( mkAttr+    , mkText+    )++import Text.XML.HXT.RelaxNG.DataTypes+import Text.XML.HXT.RelaxNG.CreatePattern+import Text.XML.HXT.RelaxNG.DataTypeLibraries+import Text.XML.HXT.RelaxNG.Utils+import Text.XML.HXT.RelaxNG.Validation+import Text.XML.HXT.RelaxNG.Schema        as S+import Text.XML.HXT.RelaxNG.SchemaGrammar as SG++import Data.Maybe+import Char+import List+import Directory+  ( doesFileExist )++  +-- ------------------------------------------------------------++hasName :: ArrowXml a => String -> a XmlTree XmlTree+hasName s = A.hasName s +            `orElse`+            (hasLocalPart s >>> hasNamespaceUri relaxNamespace)+++{- +- 4.1. Annotations: Foreign attributes and elements are removed.+- 4.2. Whitespace:+    - For each element other than value and param, each child that is a string +      containing only whitespace characters is removed. -> fertig+    - Leading and trailing whitespace characters are removed from the value of each name,+      type and combine attribute and from the content of each name element. -> fertig+- 4.3. datatypeLibrary attribute:+    - The value of each datatypeLibary attribute is transformed by escaping disallowed characters+    - For any data or value element that does not have a datatypeLibrary attribute, +      a datatypeLibrary attribute is added.+    - Any datatypeLibrary attribute that is on an element other than data or value is removed.+- 4.4. type attribute of value element+-}+simplificationStep1 :: IOSArrow XmlTree XmlTree+simplificationStep1 =+  ( {- +    - 4.5. href attribute+        - The value of the href attribute on an externalRef or include element is first +          transformed by escaping disallowed characters+        - The URI reference is then resolved into an absolute form+        - The value of the href attribute will be used to construct an element.+    -}+    processHref $< getBaseURI+    >>>+    -- 4.10 QNames+    processWithNsEnv processEnvNames [("xml",xmlNamespace)]+    >>>+    -- 4.4 For any data or value element that does not have a datatypeLibrary attribute,+    -- a datatypeLibrary attribute is added.+    -- Wird vorgezogen, da danach der Rest in einem Baumdurchlauf erledigt werden kann+    processdatatypeLib ""+    >>>+    processTopDownWithAttrl (+      ( -- 4.1 Foreign attributes and elements are removed+        none+        `when` +        ( ( isElem >>> neg isRoot +            >>> +            getNamespaceUri+            >>>+            isA (\uri -> (not $ compareURI uri relaxNamespace))+          )+          `orElse`+          ( isAttr+            >>>+            getNamespaceUri+            >>>+            isA (\uri -> (uri /= "" && (not $ compareURI uri relaxNamespace)))+          )+        )+      )+      >>>+      ( -- 4.2 For each element other than value and param, each child that +        -- is a string containing only whitespace characters is removed.+        ( (processChildren removeWhiteSpace) +          `whenNot` +          (hasName "param" `orElse` hasName "value")+        )+        `when` isElem +      )+      >>>       +      ( -- 4.2 Leading and trailing whitespace characters are removed from the value +        -- of each name, type and combine attribute ...+        (changeAttrValue normalizeWhitespace)+        `when`+        (isAttr >>> (hasName "name" `orElse` hasName "type" `orElse` hasName "combine"))+      )+      >>>+      ( -- 4.2 ... and from the content of each name element.+        (processChildren $ changeText normalizeWhitespace)+        `when`+        (isElem >>> hasName "name")+      )+      >>>+      ( -- 4.3 The value of each datatypeLibary attribute is transformed+        -- by escaping disallowed characters+        (changeAttrValue escapeURI)+        `when`+        (isAttr >>> hasName "datatypeLibrary")+      )+      >>>+      ( -- The value of the datatypeLibary attribute has to be a valid URI+        ( mkRelaxError "" $< ( getAttrValue "datatypeLibrary"+                               >>> +                               arr (\a -> "datatypeLibrary attribute: " ++ +                                          a ++ " is not a valid URI"+                                   )+                             )+        )+        `when`+        ( isElem >>> hasAttr "datatypeLibrary"+          >>> +          getAttrValue "datatypeLibrary" >>> isA (not . isRelaxAnyURI)+        )+      )+      >>>       +      ( -- 4.3 Any datatypeLibrary attribute that is on an element +        -- other than data or value is removed.+        removeAttr "datatypeLibrary"+        `when`+        ( isElem >>> neg (hasName "data" `orElse` hasName "value") +          >>> +          hasAttr "datatypeLibrary"+        )+      )+      >>>       +      ( -- 4.4 For any value element that does not have a type attribute,+        -- a type attribute is added with value token and the value of +        -- the datatypeLibrary attribute is changed to the empty string.+        (addAttr "type" "token" >>> addAttr "datatypeLibrary" "")+        `when`+        (isElem >>> hasName "value" >>> neg (hasAttr "type"))+      ) +    )    +  ) `when` collectErrors+  where+  processHref :: String -> IOSArrow XmlTree XmlTree+  processHref uri+    = processChildren (+        choiceA [+          (isElem >>> hasAttr "xml:base")+            :-> ( ifA (checkElemName ["externalRef", "include"] >>> hasAttr "href")+                   ( -- The value of the href attribute is transformed by+                     -- escaping disallowed characters+                     (processAttrl (changeAttrValue escapeURI `when` hasName "href"))+                     >>> -- compute the new base uri from the old uri and the href attribute+                     (addAttr "href" $< (absURI "href" $< (absURI "xml:base" uri)))+                     >>> +                     (processHref $< absURI "xml:base" uri)+                   ) -- element without a href attribute, just compute the new base uri+                   (processHref $< absURI "xml:base" uri)+                ),+          (checkElemName ["externalRef", "include"] >>> hasAttr "href")+            :-> ( -- The value of the href attribute is transformed by +                  -- escaping disallowed characters+                  (processAttrl (changeAttrValue escapeURI `when` hasName "href"))+                  >>>+                  (addAttr "href" $< absURI "href" uri)+                ),+          this :-> (processHref uri)+        ]+      )+    where+    absURI :: String -> String -> IOSArrow XmlTree String+    absURI attrName u = getAttrValue attrName+                        >>> +                        arr (\a -> fromMaybe "" (expandURIString a u))+                        >>> -- the uri should not have a fragment-identifier (4.5)+                        ( (arr (++ ", it is not a valid URI for text/xml"))+                          `whenNot`+                          (getFragmentFromURI >>> isA(== ""))+                        )++  +  processEnvNames :: [(String, String)] -> IOSArrow XmlTree XmlTree+  processEnvNames env+    = ( (replaceQNames env $< getAttrValue "name")+        `when`+        ( isElem >>> (hasName "element" `orElse ` hasName "attribute")+          >>>+          getAttrValue "name" >>> isA (elem ':')+        )+      )+      >>>+      ( (addAttrl (getBaseURI >>> createAttrL))      +        `when`+        (isElem >>> hasName "value")+      )+    where+    createAttrL :: IOSArrow String XmlTree+    createAttrL = setBaseUri &&& constA (map createAttr env) >>> arr2L (:)+      where+      createAttr :: (String, String) -> XmlTree+      createAttr (pre, uri)+        = if pre == "" -- default namespace+          then XN.mkAttr (QN "" "RelaxContextDefault" "") [XN.mkText uri]+          else XN.mkAttr (QN "" (contextAttributes++pre) "") [XN.mkText uri]+      setBaseUri :: IOSArrow String XmlTree+      setBaseUri = mkAttr (QN "" contextBaseAttr "") (txt $< this)+ +    replaceQNames :: [(String, String)] -> String -> IOSArrow XmlTree XmlTree                        +    replaceQNames e name+      = ifP (const $ uri == Nothing) +          ( mkRelaxError "" $ "No Namespace-Mapping for the prefix " ++ pre ++ +                              " in the Context of Element: " ++ name+          )+          (addAttr "name" ('{' : (fromJust uri) ++ "}" ++ local))+      where+      (pre, local') = span (/= ':') name+      local         = tail local'+      uri :: Maybe String+      uri           = lookup pre e++  -- The value of the added datatypeLibrary attribute is the value of the +  -- datatypeLibrary attribute of the nearest ancestor element that +  -- has a datatypeLibrary attribute, or the empty string +  -- if there is no such ancestor.+  processdatatypeLib :: (ArrowXml a) => String -> a XmlTree XmlTree+  processdatatypeLib lib +    = processChildren $+        choiceA [ +          (isElem >>> hasAttr "datatypeLibrary")+               -- set the new datatypeLibrary value+               :-> (processdatatypeLib $< getAttrValue "datatypeLibrary"),+          +          ( isElem >>> (hasName "data" `orElse` hasName "value")+            >>> +            neg (hasAttr "datatypeLibrary")+               -- add a datatypeLibrary attribute+          )    :-> (addAttr "datatypeLibrary" lib >>> processdatatypeLib lib),+          +          this :-> (processdatatypeLib lib)+        ]+++-- ------------------------------------------------------------+++{- +- 4.5. href attribute+    - see simplificationStep1+- 4.6. externalRef element+    - An element is constructed using the URI reference +      that is the value of href attribute+    - This element must match the syntax for pattern.+    - The element is transformed by recursively applying the rules from +      this subsection and from previous subsections of this section.+    - This must not result in a loop.+    - Any ns attribute on the externalRef element is transferred +      to the referenced element if the referenced element does+      not already have an ns attribute.+    - The externalRef element is then replaced by the referenced element.+- 4.7. include element+    - An element is constructed using the URI reference that is the+      value of href attribute+    - This element must be a grammar element, matching the syntax for grammar.+    - This grammar element is transformed by recursively applying the rules +      from this subsection and from previous subsections of this section.+    - This must not result in a loop.+    +    - If the include element has a start component, then the grammar element+      must have a start component.+    - If the include element has a start component, then all start components+      are removed from the grammar element.+    - If the include element has a define component, then the grammar element+      must have a define component with the same name.+    - For every define component of the include element, all define components+      with the same name are removed from the grammar element.+    +    - The include element is transformed into a div element.+    - The attributes of the div element are the attributes of the +      include element other than the href attribute.+    - The children of the div element are the grammar element+    - The grammar element is then renamed to div.+-}++simplificationStep2 :: Attributes -> Bool -> Bool -> [Uri] -> [Uri] -> IOSArrow XmlTree XmlTree+simplificationStep2 readOptions validateExternalRef validateInclude extHRefs includeHRefs =+  ( processTopDown (+      ( (importExternalRef $<< (getAttrValue "ns" &&& getAttrValue "href"))+        `when`+        (isElem >>> hasName "externalRef")+      )+      >>>+      ( (importInclude $< getAttrValue "href")+        `when`+        (isElem >>> hasName "include")+      )+    )+  ) `when` collectErrors+  where+  importExternalRef :: String -> String -> IOSArrow XmlTree XmlTree+  importExternalRef ns href+    = ifA ( -- test whether the referenced schema exists+            neg $ constA href >>> getPathFromURI >>> isIOA doesFileExist+          )+        ( mkRelaxError "" ( "Can't read " ++ href +++			    ", referenced in externalRef-Pattern" )+	)+        ( ifP (const $ elem href extHRefs)+           -- if the referenced name already exists in the list of processed ref attributes+           -- we have found a loop+            (mkRelaxError "" $ "loop in externalRef-Pattern, " ++ +                               formatStringList " -> " (reverse $ href:extHRefs)+            )+            ( ifA ( if validateExternalRef 					-- if validation parameters are set+		    then validateDocWithRelax S.relaxSchemaArrow [] href	-- the referenced schema is validated with respect to+		    else none							-- the Relax NG spezification+                  )+                ( mkRelaxError "" ( "The content of the schema " ++ href ++ +				    ", referenced in externalRef does not " +++				    "match the syntax for pattern" )+                )+                ( readForRelax readOptions href+                  >>>+                  simplificationStep1						-- perform the transformations from previous steps+                  >>>+                  simplificationStep2 readOptions validateExternalRef validateInclude (href:extHRefs) includeHRefs+                  >>>+                  getChildren -- remove the root node+                  >>>+                  ( -- Any ns attribute on the externalRef element+                    -- is transferred to the referenced element+                    addAttr "ns" ns+                    `when`+                    (getAttrValue "ns" >>> isA (\a -> a == "" && ns /= ""))+                  )+                )+            )+        )+  +  importInclude :: String -> IOSArrow XmlTree XmlTree+  importInclude href+    = ifA ( -- test whether the referenced schema exists+            neg $ constA href >>> getPathFromURI >>> isIOA doesFileExist+          )+        ( mkRelaxError "" ( "Can't read " ++ href +++                            ", referenced in include-Pattern" )+        )+        ( ifP (const $ elem href includeHRefs)+           -- if the referenced name still exists in the list of processed+           -- ref attributes we have found a loop+            (mkRelaxError "" $ "loop in include-Pattern, " ++ +                               formatStringList " -> " (reverse $ href:includeHRefs)+            )+            ( ifA ( if validateInclude						-- if the parameter is set+		    then validateDocWithRelax SG.relaxSchemaArrow [] href	-- the referenced schema is validated with respect to+                    else none							-- the Relax NG grammar element+                  )+                ( mkRelaxError "" ( "The content of the schema " ++ href ++ +                                    ", referenced in include does not match " +++                                    "the syntax for grammar" )+                )+                ( processInclude href $< ( readForRelax readOptions href+                                           >>>+                                           simplificationStep1				-- perform the transformations from previous steps+                                           >>> +                                           simplificationStep2 readOptions validateExternalRef validateInclude extHRefs (href:includeHRefs)+                                           >>>+                                           getChildren					-- remove the root node+                                         )+                )+            )+        )+  +  processInclude :: String -> XmlTree -> IOSArrow XmlTree XmlTree+  processInclude href newDoc+    = -- The include element is transformed into a div element.+      setElemName (QN "" "div" relaxNamespace)+      >>>+      -- The attributes of the div element are the attributes of +      -- the include element other than the href attribute.+      removeAttr "href"+      >>> +      checkInclude href newDoc+  +  +  insertNewDoc :: XmlTree -> Bool -> [String] -> IOSArrow XmlTree XmlTree+  insertNewDoc newDoc hasStart defNames+    = insertChildrenAt 0 $+        constA newDoc+        >>>+        -- If the include element has a start component, then all start components+        -- are removed from the grammar element.        +        (removeStartComponent `whenP` (const hasStart))+        >>>+        -- For every define component of the include element, all define components+        -- with the same name are removed from the grammar element.+        ((removeDefineComponent defNames) `whenP` (const $ defNames /= []))+        >>>+        -- The grammar element is then renamed to div.+        setElemName (QN "" "div" relaxNamespace)++  +  checkInclude :: String -> XmlTree -> IOSArrow XmlTree XmlTree+  checkInclude href newDoc+    = ifA ( -- If the include element has a start component, then the grammar element+            -- must have a start component.+            hasStartComponent &&& (constA newDoc >>> hasStartComponent)+            >>> +            isA (\(a, b) -> if a then b else True)+          )+        ( ifA ( -- If the include element has a define component, then the grammar element+                -- must have a define component with the same name.+                getDefineComponents &&& (constA newDoc >>> getDefineComponents)+                >>> +                isA (\(a, b) -> (diff a b) == [])+              )+            (insertNewDoc newDoc $<< hasStartComponent &&& getDefineComponents)+            (mkRelaxError "" $ "Define-pattern missing in schema " ++ href ++ +                               ", referenced in include-pattern")+        )+        ( mkRelaxError "" $ "Grammar-element without a start-pattern in schema " +++                            href ++ ", referenced in include-pattern"+        )+    where+    diff a b = (noDoubles a) \\ (noDoubles b)++  removeStartComponent :: IOSArrow XmlTree XmlTree+  removeStartComponent+    = processChildren $+        choiceA [+          (isElem >>> hasName "start") :-> none,+          (isElem >>> hasName "div")   :-> removeStartComponent,+          this                         :-> this+        ]++  removeDefineComponent :: [String] -> IOSArrow XmlTree XmlTree+  removeDefineComponent defNames+    = processChildren $+        choiceA [+          ( isElem >>> hasName "define"+            >>>+            getAttrValue "name"+            >>> +            isA (\n -> elem n defNames))          :-> none,+          (isElem >>> getName >>> isA (== "div")) :-> (removeDefineComponent defNames),+          (constA "foo" >>> isA (== "foo"))       :-> this+        ]+  +  hasStartComponent :: IOSArrow XmlTree Bool+  hasStartComponent = listA hasStartComponent' >>> arr (any id)+    where+    hasStartComponent' :: IOSArrow XmlTree Bool+    hasStartComponent'+      = getChildren+        >>>+        choiceA [+          (isElem >>> hasName "start") :-> (constA True),+          (isElem >>> hasName "div")   :-> hasStartComponent',+          this                         :-> (constA False)+        ]++  getDefineComponents :: IOSArrow XmlTree [String]+  getDefineComponents = listA getDefineComponents'+                        >>> +                        arr (\xs -> [x | x <- xs, x /= ""])+    where+    getDefineComponents' :: IOSArrow XmlTree String+    getDefineComponents'+      = getChildren+        >>>+        choiceA [+          (isElem >>> hasName "define") :-> (getAttrValue "name"),+          (isElem >>> hasName "div")    :-> getDefineComponents',+          this                          :-> (constA "")+        ]+  ++-- ------------------------------------------------------------+++{-+- 4.8. name attribute of element and attribute elements+    - The name attribute on an element or attribute element+      is transformed into a name child element.+    - If an attribute element has a name attribute but no ns attribute,+      then an ns="" attribute is added to the name child element.+- 4.9. ns attribute+    - For any name, nsName or value element that does not have+      an ns attribute, an ns attribute is added.+    - any ns attribute that is on an element other than name,+      nsName or value is removed.+- 4.10. QNames+    - For any name element containing a prefix, the prefix is removed+      and an ns attribute is added replacing any existing ns attribute.+    - The value of the added ns attribute is the value to which the+      namespace map of the context of the name element maps the prefix.+    - The context must have a mapping for the prefix.+-}+simplificationStep3 :: IOSArrow XmlTree XmlTree+simplificationStep3 =+  ( processTopDown ( +      ( -- 4.8 The name attribute on an element or attribute+        -- element is transformed into a name child element+        ( insertChildrenAt 0 (A.mkElement (QN "" "name" relaxNamespace)+                                          none (txt $< getAttrValue "name"))+        )+        >>>+        ( -- 4.8 If an attribute element has a name attribute but no ns attribute,+          --  then an ns="" attribute is added to the name child element+           (processChildren (addAttr "ns" "" `when` (isElem >>> hasName "name")))+           `when` +           (isElem >>> hasName "attribute" >>> hasAttr "name" >>> neg (hasAttr "ns"))+        )+        >>>+        removeAttr "name"      +      )+      `when`+      (isElem >>> (hasName "element" `orElse` hasName "attribute") >>> hasAttr "name")       +    )+    >>>+    -- 4.9 For any name, nsName or value element that does not have +    -- an ns attribute, an ns attribute is added.+    processnsAttribute ""+    >>>+    processTopDown (        +      ( -- 4.9 any ns attribute that is on an element other than name, +        -- nsName or value is removed.+        (removeAttr "ns")+        `when`+        (isElem >>> neg (hasName "name" `orElse` hasName "nsName" `orElse` hasName "value"))+      )+      >>>+      ( -- 4.10 For any name element containing a prefix, the prefix is removed and an ns attribute +        -- is added replacing any existing ns attribute.+        (replaceNameAttr $< (getChildren >>> isText >>> getText))+        `when`+        (isElem >>> hasName "name")+      )+    )+  ) `when` collectErrors+  where+  replaceNameAttr :: (ArrowXml a) => String -> a XmlTree XmlTree+  replaceNameAttr name +    = (addAttr "ns" pre >>> processChildren (changeText $ const local))+      `whenP`+      (const $ elem '}' name)+    where +    (pre', local') = span (/= '}') name+    pre            = tail pre'+    local          = tail local'+          +  processnsAttribute :: String -> IOSArrow XmlTree XmlTree        +  processnsAttribute name +    = processChildren $+        choiceA [+          -- set the new ns attribute value+          (isElem >>> hasAttr "ns") +               :-> (processnsAttribute $< getAttrValue "ns"),+          -- For any name, nsName or value element that does not have+          -- an ns attribute, an ns attribute is added.               +          ( checkElemName ["name", "nsName", "value"] >>> neg (hasAttr "ns"))+               :-> (addAttr "ns" name >>> processnsAttribute name),+          this :-> (processnsAttribute name)+        ]+++-- ------------------------------------------------------------    +++{-+- 4.11 Each div element is replaced by its children+- 4.12 Number of child elements+    - A define, oneOrMore, zeroOrMore, optional, list or mixed element +      is transformed so that it has exactly one child element+    - An element element is transformed so that it has exactly two child elements+    - A except element is transformed so that it has exactly one child element+    - If an attribute element has only one child element (a name class), then a text element is added.+    - A choice, group or interleave element is transformed so that it has exactly two child elements.+- 4.13 A mixed element is transformed into an interleaving with a text element+- 4.14 An optional element is transformed into a choice with empty+- 4.15 A zeroOrMore element is transformed into a choice between oneOrMore and empty+- 4.16. Constraints: no transformation is performed, but various constraints are checked.+    - An except element that is a child of an anyName element must not have any anyName descendant elements.+    - An except element that is a child of an nsName element must not have any nsName or anyName+      descendant elements.+    - A name element that occurs as the first child of an attribute element or as the descendant of the +      first child of an attribute element and that has an ns attribute with value equal to the empty +      string must not have content equal to xmlns.+    - A name or nsName element that occurs as the first child of an attribute element or as the +      descendant of the first child of an attribute element must not have an ns attribute with +      value http://www.w3.org/2000/xmlns.+    - A data or value element must be correct in its use of datatypes.+-}+simplificationStep4 :: IOSArrow XmlTree XmlTree+simplificationStep4 =+  ( processTopDown ( +      ( -- Each div element is replaced by its children.+        (getChildren >>> simplificationStep4)+        `when`+        (isElem >>> hasName "div")+      )+      >>>+      ( -- A define, oneOrMore, zeroOrMore, optional, list or mixed element+        -- is transformed so that it has exactly one child element+        ( replaceChildren $ A.mkElement (QN "" "group" relaxNamespace)+                              (setChangesAttr $< (getName >>> arr ("group-Pattern: " ++)))  +                              getChildren+        )+        `when`+        (  checkElemName ["define", "oneOrMore", "zeroOrMore", "optional", "list", "mixed"]+           >>> listA getChildren >>> isA (\cl -> length cl > 1)+        )+      )+      >>>+      ( -- An element element is transformed so that it has exactly two child elements       +        ( replaceChildren $ (getChildren >>> checkElemName ["name", "anyName", "nsName"])+                            <+> +                            ( A.mkElement (QN "" "group" relaxNamespace) none +                                ( getChildren+                                  >>>+                                  neg (checkElemName ["name", "anyName", "nsName"])+                                )+                            )+        )+        `when`+        ( isElem >>> hasName "element"+          >>>+          listA getChildren+          >>>+          isA (\cl -> length cl > 2)+        )+      )+      >>>+      ( -- A except element is transformed so that it has exactly one child element.+        (replaceChildren $ A.mkElement (QN "" "choice" relaxNamespace) none getChildren)+        `when`+        (isElem >>> hasName "except" >>> listA getChildren >>> isA (\cl -> length cl > 1))+      )+      >>>+      ( -- If an attribute element has only one child element +        -- (a name class), then a text element is added.+        insertChildrenAt 1 (A.mkElement (QN "" "text" relaxNamespace) none none)+        `when`+        ( isElem >>> hasName "attribute"+          >>>+          listA getChildren+          >>>+          isA (\cl -> length cl == 1)+        )+      )+      >>>+      ( -- A choice, group or interleave element is transformed so+        -- that it has exactly two child elements.+        ((wrapPattern2Two $< getName) >>> simplificationStep4)+        `when` +        (  checkElemName ["choice", "group", "interleave"]+           >>>+           listA getChildren+           >>>+           isA (\cl -> length cl > 2 || length cl == 1)+        )+      )+      >>>+      ( -- A mixed element is transformed into an interleaving with a text element     +        ( A.mkElement (QN "" "interleave" relaxNamespace) +            (setChangesAttr "mixed is transformed into an interleave")+            ( getChildren+              <+>+              A.mkElement (QN "" "text" relaxNamespace) +                (setChangesAttr $ "new text-Pattern: mixed is transformed into " +++                                  " an interleave with text"+                )+                none+            )+        )+        `when`+        (isElem >>> hasName "mixed")+      )+      >>>  +      ( -- An optional element is transformed into a choice with empty     +        ( A.mkElement (QN "" "choice" relaxNamespace) +            (setChangesAttr "optional is transformed into a choice")  +            ( getChildren+              <+>+              A.mkElement (QN "" "empty" relaxNamespace) +                  (setChangesAttr $ "new empty-Pattern: optional is transformed " +++                                    " into a choice with empty"+                  )+                  none+            )+        )+        `when`+        (isElem >>> hasName "optional")+      )+      >>>+      ( -- A zeroOrMore element is transformed into a choice between oneOrMore and empty+        ( A.mkElement (QN "" "choice" relaxNamespace) +            (setChangesAttr "zeroOrMore is transformed into a choice")+            ( (A.mkElement (QN "" "oneOrMore" relaxNamespace) +                 (setChangesAttr $ "zeroOrMore is transformed into a " +++                                   "choice between oneOrMore and empty"+                 )+                 getChildren+              )+              <+>+              (A.mkElement (QN "" "empty" relaxNamespace) +                 (setChangesAttr $ "new empty-Pattern: zeroOrMore is transformed " +++                                   "into a choice between oneOrMore and empty"+                 )+                 none+              )+            )+        )+        `when`+        (isElem >>> hasName "zeroOrMore")+      )+    )+  ) `when` collectErrors+++-- ------------------------------------------------------------+++restrictionsStep1 :: IOSArrow XmlTree XmlTree+restrictionsStep1 =+  ( processTopDown (+      ( (mkRelaxError "" $ "An except element that is a child of an anyName " +++                           "element must not have any anyName descendant elements")+        `when` +        ( isElem >>> hasName "anyName"+          >>> getChildren+          >>>+          isElem >>> hasName "except"+          >>>+          deep (isElem >>> hasName "anyName")+        )+      )+      >>>+      ( (mkRelaxError "" $ "An except element that is a child of an nsName element " +++                           "must not have any nsName or anyName descendant elements."+        )+        `when` +        ( isElem >>> hasName "nsName"+          >>>+          getChildren+          >>> +          isElem >>> hasName "except"+          >>> +          deep (isElem >>> (hasName "anyName" `orElse` hasName "nsName"))+        )+      )+      >>>+      ( (mkRelaxError "" $ "A name element that occurs as the first child or descendant of " +++                           "an attribute and has an ns attribute with an empty value must " +++                           "not have content equal to xmlns"+        )+        `when` +        ( isElem >>> hasName "attribute"+          >>>+          listA getChildren+          >>>+          arr head+          >>>+          ( multi (isElem >>> hasName "name" >>> hasAttr "ns") )+          >>>+          ( ( getAttrValue "ns" >>> isA (== ""))+            `guards`+            (getChildren >>> getText >>> isA (== "xmlns"))+          )+        )+      ) +      >>>+      ( (mkRelaxError "" $ "A name or nsName element that occurs as the first child or " +++                           "descendant of an attribute must not have an ns attribute " +++                           "with value http://www.w3.org/2000/xmlns"+        )+        `when` +        ( isElem >>> hasName "attribute"+          >>>+          listA getChildren+          >>>+          arr head+          >>>+          ( multi (checkElemName ["name", "nsName"] >>> hasAttr "ns") )+          >>>+          getAttrValue "ns"+          >>>+          isA (compareURI xmlnsNamespace)+        )+      ) +      >>> -- A data or value element must be correct in its use of datatypes.+      ( (checkDatatype $<< getAttrValue "datatypeLibrary" &&& getAttrValue "type")+        `when`+        (isElem >>> (hasName "data" `orElse` hasName "value"))+      )+    )+  ) `when` collectErrors+  where +  -- the datatypeLibrary attribute must identify a valid datatype library+  checkDatatype :: Uri -> DatatypeName -> IOSArrow XmlTree XmlTree+  checkDatatype libName typeName +    = ifP (const $ elem libName $ map fst datatypeLibraries)    +        (checkType libName typeName allowedDataTypes)+        (mkRelaxError "" $ "DatatypeLibrary " ++ libName ++ " not found")+    where+    DTC _ _ allowedDataTypes = fromJust $ lookup libName datatypeLibraries+            +  -- the type attribute must identify a datatype within the datatype library identified+  -- by the value of the datatypeLibrary attribute. +  checkType :: Uri -> DatatypeName -> AllowedDatatypes -> IOSArrow XmlTree XmlTree+  checkType libName typeName allowedTypes+    = ifP (const $ elem typeName $ map fst allowedTypes)+        (checkParams typeName libName getParams $< +             (listA (getChildren >>> hasName "param" >>> getAttrValue "name"))+        )+        ( mkRelaxError "" $ "Datatype " ++ typeName ++ +                            " not declared for DatatypeLibrary " ++ libName+        )+    where+    getParams = fromJust $ lookup typeName allowedTypes+            +  -- For a data element, the parameter list must be one that is allowed by the datatype               +  checkParams :: DatatypeName -> Uri -> AllowedParams -> [ParamName] -> IOSArrow XmlTree XmlTree+  checkParams typeName libName allowedParams paramNames+    = (mkRelaxError "" $ "Param(s): " ++ formatStringList ", " diff ++ +                         " not allowed for Datatype " ++ typeName ++ +                         " in Library " ++ (if libName == "" then relaxNamespace else libName)+      )+      `when`+      (isElem >>> hasName "data" >>> isA (const $ diff /= [])) +    where+    diff = filter (\param -> not $ elem param allowedParams) paramNames++          +-- ------------------------------------------------------------+++{-+- 4.17. combine attribute+    - For each grammar element, all define elements with the same name are combined together.+    - Similarly, for each grammar element all start elements are combined together.+- 4.18. grammar element+    - A grammar must have a start child element.+    - Transform the top-level pattern p into <grammar><start>p</start></grammar>.+    - Rename define elements so that no two define elements anywhere in the schema +      have the same name. To rename a define element, change the value of its name+      attribute and change the value of the name attribute of all ref and parentRef+      elements that refer to that define element.+    - Move all define elements to be children of the top-level grammar element+    - Replace each nested grammar element by the child of its start element+    - Rename each parentRef element to ref.+-}+simplificationStep5 :: IOSArrow XmlTree XmlTree+simplificationStep5 =+  ( processTopDown ( +      ( ( ( (deep (isElem >>> hasName "relaxError"))               +            <+>+            (mkRelaxError "" "A grammar must have a start child element")+          )+          `when`+          (neg (getChildren >>> hasName "start"))+        )+        >>>+        -- For each grammar element, all define elements with the same +        -- name are combined together.+        (combinePatternList "define" $< (getPatternNamesInGrammar "define" >>> arr nub))+        >>>+        -- Similarly, for each grammar element all start elements +        -- are combined together.+        (combinePatternList "start" $< (getPatternNamesInGrammar "start" >>> arr nub))+      )  +      `when`+      (isElem >>> hasName "grammar")+    )  +    >>>+    ( -- transform the top-level pattern p into <grammar><start>p</start></grammar>.+      ( replaceChildren (A.mkElement (QN "" "grammar" relaxNamespace) none +                           (A.mkElement (QN "" "start" relaxNamespace) none getChildren)+                        )+      )+      `when`+      (neg (getChildren >>> hasName "grammar"))      +    )+    >>>+    renameDefines $<< ( getPatternNamesInGrammar "define"+                        >>>+                        (createUniqueNames $< (getAndSetCounter "define_id" >>> arr read))+                        &&&+                        constA []+                      )+    >>>+    -- Move all define elements to be children of the top-level grammar element+    ( processChildren ( -- root node+        processChildren ( -- the first grammar pattern remains unchanged+          ( deleteAllDefines+            <+>+            (getAllDefines >>> processChildren deleteAllDefines)          +          )+          >>>+          processTopDown (+            ( -- Replace each nested grammar element by the child of its start element+              (getChildren >>> hasName "start" >>> getChildren)+              `when`+              (isElem >>> hasName "grammar")+            )+            >>> +            ( -- Rename each parentRef element to ref.+              (setElemName (QN "" "ref" relaxNamespace))+              `when`+              (isElem >>> hasName "parentRef")+            )+          )+        )  +      )+    )+  ) `when` collectErrors+  where+  getPatternNamesInGrammar :: (ArrowXml a) => String -> a XmlTree [String]+  getPatternNamesInGrammar pattern+    = processChildren (+        processTopDown (+          none `when` (isElem >>> hasName "grammar")+        )+      )+      >>>+      listA ( (multi (isElem >>> hasName pattern))+              >>> +              getAttrValue "name"+            )+++  createUniqueNames :: Int -> IOSArrow [String] RefList+  createUniqueNames num+    = arr (\l -> unique l num)+      >>>+      perform (setParamInt "define_id" $< arr (max num . getNextValue))+    where+    unique :: [String] -> Int -> RefList+    unique []     _    = []+    unique (x:xs) num' = (x, (show num')):(unique xs (num'+1))+    getNextValue :: RefList -> Int+    getNextValue [] = 0+    getNextValue rl = maximum (map (read . snd) rl) + 1    ++           +  renameDefines :: RefList -> RefList -> IOSArrow XmlTree XmlTree+  renameDefines ref parentRef+    = processChildren (+        choiceA [+          (isElem >>> hasName "define")+            :-> ( -- the original name is needed for error messages+                  addAttr defineOrigName $< (getAttrValue "name")+                  >>>+                  -- rename the define-pattern+                  -- the new name is looked up in the ref table+                  addAttr "name" $< ( getAttrValue "name"+                                      >>>+                                      arr (\n -> fromJust $ lookup n ref)+                                    )+                  >>>+                  renameDefines ref parentRef+                ),+          (isElem >>> hasName "grammar") +            :-> (renameDefines $<< ( -- compute all define names in the grammar+                                     getPatternNamesInGrammar "define"+                                     >>>+                                     -- create a new (unique) name for all define names+                                     (createUniqueNames $< (getParamInt 0 "define_id"))+                                   ) +                                   &&&+                                   -- set the old ref list to be the new parentRef list+                                   constA ref+                ),+          (isElem >>> hasName "ref") +            :-> (ifA ( getAttrValue "name"+                       >>>+                       isA (\name -> (elem name (map fst ref)))+                     )+                   ( -- the original name is needed for error messages+                     addAttr defineOrigName $< (getAttrValue "name")+                     >>>+                     -- rename the ref-pattern+                     -- the new name is looked up in the ref table+                     addAttr "name" $< ( getAttrValue "name"+                                         >>>+                                         arr (\n -> fromJust $ lookup n ref)+                                       )+                   )+                   ( -- the referenced pattern does not exist in the schema+                     mkRelaxError "" $< ( getAttrValue "name"+                                         >>>+                                         arr (\n -> "Define-Pattern with name " ++ n ++ +                                                    " referenced in ref-Pattern not " +++                                                    "found in schema"+                                             )+                                       )+                   )+                ),+          (isElem >>> hasName "parentRef") -- same as ref, but the parentRef list is used+            :-> (ifA ( getAttrValue "name"+                       >>>+                       isA (\name -> (elem name (map fst parentRef)))+                     )+                   ( addAttr defineOrigName $< (getAttrValue "name")+                     >>>+                     addAttr "name" $< ( getAttrValue "name"+                                         >>>+                                         arr (\n -> fromJust $ lookup n parentRef)+                                       )+                   )+                   (mkRelaxError "" $< ( getAttrValue "name" >>> +                                         arr (\n -> "Define-Pattern with name " ++ n ++ +                                                    " referenced in parentRef-Pattern " +++                                                    "not found in schema"+                                             )+                                       )+                   )+                ),+          this :-> (renameDefines ref parentRef)+        ]+      )+++  getAllDefines :: IOSArrow XmlTree XmlTree+  getAllDefines = multi $ isElem >>> hasName "define"++  deleteAllDefines :: IOSArrow XmlTree XmlTree      +  deleteAllDefines = processTopDown $ none `when` (isElem >>> hasName "define")+++  combinePatternList :: String -> [String] -> IOSArrow XmlTree XmlTree+  combinePatternList _ [] = this+  combinePatternList pattern (x:xs)+    = (replaceChildren $ combinePattern pattern x)+      >>>+      combinePatternList pattern xs+        +  -- combine a define- or start-pattern (first parameter) with a+  -- specific name (second parameter)+  combinePattern :: String -> String -> IOSArrow XmlTree XmlTree +  combinePattern pattern name+     = createPatternElems pattern name+       <+>+       (getChildren >>> deletePatternElems pattern name)           ++  createPatternElems :: String -> String -> IOSArrow XmlTree XmlTree +  createPatternElems pattern name +    = ( ( (listA (getElems pattern name >>> getAttrValue "combine"))+          >>>+          checkPatternCombine pattern name+        ) +        -- After determining this unique value, the combine attributes are removed.+        &&&+        (listA (getElems pattern name >>> removeAttr "combine")))                      +        >>> -- ((errorCode::Int,errorMessage::String), result::XmlTrees)+        choiceA [+          isA (\((code,_) , _)   -> code == 0)+                 :-> (mkRelaxError "" $< arr (snd . fst)),+          isA (\((code,str) , _) -> code == 1 && str == "")+                 :-> (arrL snd),+          isA (\((code,str) , _) -> code == 1 && str /= "")+                 :-> (createPatternElem pattern name $<< +                       ( arr (snd . fst) &&& (arr snd) )+                     ),                 +          this   :-> (mkRelaxError "" $ "Can't create Pattern: " ++ pattern ++ +                                        " with name " ++ name ++ " in createPatternElems"+                     )+        ]+++  createPatternElem :: (ArrowXml a) => String -> String -> String -> XmlTrees -> a n XmlTree  +  createPatternElem pattern name combine trees+    = A.mkElement (QN "" pattern relaxNamespace) (mkAttr (QN "" "name" "") (txt name)) +       ( (A.mkElement (QN "" combine relaxNamespace) none +             (arrL (const trees) >>> getChildren)+         )+         >>>+         wrapPattern2Two combine+       )+                                         +  checkPatternCombine :: (ArrowXml a) => String -> String -> a [String] (Int, String)+  checkPatternCombine pattern name +    = choiceA [+         -- just one pattern with that name -> ok, no combine is needed+        (isA (\cl -> length cl == 1)) :-> constA (1, ""),+        (isA (\cl -> (length $ elemIndices "" cl) > 1)) +             :-> constA (0, "More than one " ++ pattern ++ "-Pattern: " ++ name ++ +                            " without an combine-attribute in the same grammar"),+        (isA (\cl -> (length $ nub $ deleteBy (==) "" cl) > 1)) +             :-> arr (\cl -> (0, "Different combine-Attributes: " ++ +                                 (formatStringList ", " $ noDoubles cl) +++                                 " for the " ++ pattern ++ "-Pattern " +++                                 name ++ " in the same grammar")+                     ),+        -- ok -> combine value is returned+        this :-> arr (\cl -> (1, fromJust $ find (/= "") cl))+      ]++  getElems :: (ArrowXml a) => String -> String -> a XmlTree XmlTree+  getElems pattern name+    = getChildren+      >>> +      choiceA [+        ( isElem >>> hasName pattern+          >>> +          getAttrValue "name" >>> isA (== name))     :-> (this <+> getElems pattern name),+        (isElem >>> getName >>> isA (== "grammar") ) :-> none,+        (constA "foo" >>> isA (== "foo"))            :-> (getElems pattern name)        +      ]++  deletePatternElems :: (ArrowXml a) => String -> String -> a XmlTree XmlTree+  deletePatternElems pattern name+    = choiceA [+        ( isElem >>> hasName pattern+          >>> +          getAttrValue "name" >>> isA (== name))+                                          :-> none,+        (isElem >>> getName >>> isA (== "grammar"))+                                          :-> this,+        (constA "foo" >>> isA (== "foo")) :-> ( processChildren $+                                                  deletePatternElems pattern name+                                              )+      ]+++-- ------------------------------------------------------------+++{-+- 4.19. define and ref elements+    - Remove any define element that is not reachable.+    - Now, for each element element that is not the child of a define element,+      add a define element to the grammar element, +      and replace the element element by a ref element referring+      to the added define element.+    - For each ref element that is expandable and is a descendant+      of a start element or an element element, expand it by replacing+      the ref element by the child of the define element to which it refers+    - This must not result in a loop.+    - Remove any define element whose child is not an element element.+-}+simplificationStep6 :: IOSArrow XmlTree XmlTree+simplificationStep6 =+  ( -- Remove any define element that is not reachable.+    (removeUnreachableDefines $<<< getAllDeepDefines +                                   &&& +                                   constA []+                                   &&&+                                   getRefsFromStartPattern+    )+    >>>+    -- for each element element that is not the child of a define element,+    -- add a define element to the grammar element, +    ( processElements False+      >>>+      processChildren (insertChildrenAt 1 (getParam "elementTable"))+    )+    >>>+    -- For each ref element that is expandable... +    -- Remove any define element whose child is not an element element      +    (replaceExpandableRefs [] $< getExpandableDefines >>> deleteExpandableDefines)+  ) `when` collectErrors+  where+  replaceExpandableRefs :: RefList -> Env -> IOSArrow XmlTree XmlTree+  replaceExpandableRefs foundNames defTable+    = choiceA [+        (isElem >>> hasName "ref")+             :-> (ifA ( getAttrValue "name"+                        >>>+                        isA (\name -> elem name (map fst foundNames))+                      )+                    -- we have found a loop if the name is in the list+                    (mkRelaxError "" $< ( getAttrValue defineOrigName+                                          >>>+                                          arr (\n -> "Recursion in ref-Pattern: " ++ +                                                     formatStringList " -> " +                                                     (reverse $ (n:) $ map snd foundNames)+                                              )+                                        )+                    )+                    (replaceRef $<< getAttrValue "name" &&& getAttrValue defineOrigName)+                 ),+        this :-> (processChildren $ replaceExpandableRefs foundNames defTable)+      ]+    where                                               +    replaceRef :: NewName -> OldName -> IOSArrow XmlTree XmlTree+    replaceRef name oldname+      = ( constA (fromJust $ lookup name defTable)+          >>>+          getChildren+          >>>+          replaceExpandableRefs ((name,oldname):foundNames) defTable+        )+        `whenP`+        (const $ elem name $ map fst defTable)+++  processElements :: Bool -> IOSArrow XmlTree XmlTree+  processElements parentIsDefine+    = processChildren(+        choiceA [+          (isElem >>> hasName "element")+              :-> ( ifP (const parentIsDefine)+                      (processElements False)+                      ( processElements' $<< getAndSetCounter "define_id" +                                             &&&+                                             getDefineName+                      )+                  ),+          (isElem >>> hasName "define")  :-> (processElements True),+          this                           :-> (processElements False)+        ])+    where+    getDefineName :: IOSArrow XmlTree String+    getDefineName = listA getChildren +                    >>>+                    arr head+                    >>>+                    fromLA createNameClass+                    >>>+                    arr show+    +    processElements' :: NewName -> OldName -> IOSArrow XmlTree XmlTree+    processElements' name oldname+      = storeElement name oldname+        >>> +        A.mkElement (QN "" "ref" relaxNamespace) (createAttr name oldname) none++    storeElement :: NewName -> OldName -> IOSArrow XmlTree XmlTree+    storeElement name oldname+      = perform $ +          ( A.mkElement (QN "" "define" relaxNamespace)+             (createAttr name oldname) (processElements False)+          )+          &&&+          (listA $ getParam "elementTable")+          >>>+          arr2 (:)+          >>>+          setParamList "elementTable"++    createAttr :: NewName -> OldName -> IOSArrow XmlTree XmlTree+    createAttr name oldname+      = mkAttr (QN "" "name" "") (txt name) +        <+>+        mkAttr (QN "" defineOrigName "") (txt $ "created for element " ++ oldname)+       +  getExpandableDefines :: (ArrowXml a) => a XmlTree Env +  getExpandableDefines +    = listA $ (multi ( ( isElem >>> hasName "define"+                         >>>+                         getChildren+                         >>>+                         neg (hasName "element")+                       )+                       `guards`+                       this+                     )+              )+              >>> +              (getAttrValue "name" &&& this)+  +  deleteExpandableDefines :: (ArrowXml a) => a XmlTree XmlTree+  deleteExpandableDefines +    = processTopDown $ none+                       `when` +                       ( isElem >>> hasName "define"+                         >>> +                         getChildren+                         >>>+                         neg (hasName "element")+                       )+++-- ------------------------------------------------------------+++{-+- 4.20. notAllowed element+    - An attribute, list, group, interleave, or oneOrMore element that has+      a notAllowed child element is transformed into a notAllowed element.+    - A choice element that has two notAllowed child elements +      is transformed into a notAllowed element+    - A choice element that has one notAllowed child element+      is transformed into its other child element.+    - An except element that has a notAllowed child element is removed.+    - The preceding transformations are applied repeatedly+      until none of them is applicable any more.+    - Any define element that is no longer reachable is removed.+- 4.21. empty element+    - A group, interleave or choice element that has two empty child+      elements is transformed into an empty element.+    - A group or interleave element that has one empty child element+      is transformed into its other child element.+    - A choice element whose second child element is an empty element+      is transformed by interchanging its two child elements.+    - A oneOrMore element that has an empty child element+      is transformed into an empty element.+    - The preceding transformations are applied repeatedly+      until none of them is applicable any more.+-}+simplificationStep7 :: IOSArrow XmlTree XmlTree+simplificationStep7 =+  ( perform (setParamInt "changeTree" 0) -- 0 = no changes, 1 = changes performed+    >>>+    processTopDownWithAttrl ( +      ( -- An attribute, list, group, interleave, or oneOrMore element that has a +        -- notAllowed child element is transformed into a notAllowed element.       +        ( ( A.mkElement (QN "" "notAllowed" relaxNamespace) none none+            >>>+            perform (setParamInt "changeTree" 1)+          )+          `whenNot` -- keep all errors+          (deep (isElem >>> hasName "relaxError"))+        )+        `when`+        ( checkElemName ["attribute", "list", "group", "interleave", "oneOrMore"] +          >>>+          getChildren+          >>>+          hasName "notAllowed"+        )+      )+      >>>                                   +      ( -- A choice element that has two notAllowed child elements is +        -- transformed into a notAllowed element+        ( A.mkElement (QN "" "notAllowed" relaxNamespace) none none+          >>>+          perform (setParamInt "changeTree" 1)+        )+        `when`+        ( isElem >>> hasName "choice"+          >>>+          listA (getChildren >>> hasName "notAllowed")+          >>> +          isA (\s -> length s == 2)+        )+      )+      >>>+      ( -- A choice element that has one notAllowed child element is +        -- transformed into its other child element.        +        ( getChildren >>> neg (hasName "notAllowed")+          >>>+          perform (setParamInt "changeTree" 1)+        )+        `when`+        (isElem >>> hasName "choice" >>> getChildren >>> hasName "notAllowed")+      )+      >>>       +      ( -- An except element that has a notAllowed child element is removed.+        ( (none >>> perform (setParamInt "changeTree" 1)) +          `whenNot` -- keep all errors+          (deep (isElem >>> hasName "relaxError"))+        )+        `when`+        (isElem >>> hasName "except" >>> getChildren >>> hasName "notAllowed")+      )+      >>> -- transforming the empty pattern (4.21)+      ( -- A group, interleave or choice element that has two empty child elements+        -- is transformed into an empty element.+        ( A.mkElement (QN "" "empty" relaxNamespace) none none +          >>>+          perform (setParamInt "changeTree" 1)+        )+        `when`+        ( checkElemName ["group", "interleave", "choice"]+          >>>+          listA (getChildren >>> hasName "empty")+          >>>+          isA (\s -> length s == 2)+        )+      )+      >>>+      ( -- A group or interleave element that has one empty child element +        -- is transformed into its other child element.+        (getChildren >>> neg (hasName "empty") >>> perform (setParamInt "changeTree" 1))+        `when`+        (checkElemName ["group", "interleave"] >>> getChildren >>> hasName "empty")+      )+      >>>+      ( -- A choice element whose second child element is an empty element is transformed +        -- by interchanging its two child elements.+        changeChoiceChildren+        `when`+        (isElem >>> hasName "choice" >>> getChildren >>> hasName "empty")+      )+      >>>+      ( -- A oneOrMore element that has an empty child element+        -- is transformed into an empty element.+        ( A.mkElement (QN "" "empty" relaxNamespace) none none+          >>>+          perform (setParamInt "changeTree" 1)+        )+        `when`+        (isElem >>> hasName "oneOrMore" >>> getChildren >>> hasName "empty")+      )+    )+    >>>+    -- The preceding transformations are applied repeatedly+    -- until none of them is applicable any more.+    simplificationStep7 `when` (getParamInt 0 "changeTree" >>> isA (== 1))+  ) `when` collectErrors+  where+  changeChoiceChildren :: IOSArrow XmlTree XmlTree+  changeChoiceChildren+    = ( replaceChildren ( A.mkElement (QN "" "empty" relaxNamespace) none none+                          <+> +                          (getChildren >>> neg (hasName "empty"))+                        ) +        >>>+        perform (setParamInt "changeTree" 1)+      )+      `when`+      ( listA (getChildren >>> getName)+        >>>+        isA (\childNames -> head childNames /= "empty")+      )+++-- ------------------------------------------------------------+++simplificationStep8 :: IOSArrow XmlTree XmlTree+simplificationStep8 = -- Remove any define element that is not reachable.+  (removeUnreachableDefines $<<< getAllDeepDefines+                                 &&&+                                 constA []+                                 &&&+                                 getRefsFromStartPattern+  )+  `when` collectErrors+               ++-- ------------------------------------------------------------+++restrictionsStep2 :: IOSArrow XmlTree XmlTree+restrictionsStep2 =+  processTopDown (+    choiceA [+-- 7.1.1. attribute pattern, the following paths are prohibited:+--        attribute//(ref | attribute)+      (isElem >>> hasName "attribute") :-> +        ( ( (deep (isElem >>> hasName "relaxError"))               +            <+>+            ( mkRelaxError $<< (getChangesAttr+                                &&&+                                ( listA ( getChildren+                                          >>> +                                          deep (checkElemName ["attribute", "ref"])+                                          >>>+                                          (getName &&& getChangesAttr >>> arr2 (++))+                                        )+                                  >>>+                                  arr (\n -> formatStringList "-, " n ++ +                                             "-Pattern not allowed as descendent(s)" +++                                             " of a attribute-Pattern"+                                      )+                                )+                               )+            ) +          )+          `when` +          (getChildren >>> deep (checkElemName ["attribute", "ref"]))+        ),++-- 7.1.2. oneOrMore pattern, the following paths are prohibited:+--        oneOrMore//(group | interleave)//attribute+      (isElem >>> hasName "oneOrMore") :->+        ( ( (deep (isElem >>> hasName "relaxError"))               +            <+>+            ( mkRelaxError $<< (getChangesAttr+                                &&&+                                ( listA ( getChildren+                                          >>> +                                          deep (checkElemName ["group", "interleave"])+                                          >>>+                                          (getName &&& getChangesAttr >>> arr2 (++))+                                        )+                                  &&&+                                  getChangesAttr+                                  >>>+                                  arr2 (\n c -> formatStringList "-, " n ++ +                                                "-Pattern not allowed as descendent(s) " +++                                                "of a oneOrMore-Pattern" ++ c ++ +                                                " followed by an attribute descendent"+                                       )+                                )+                               )+            ) +          )+          `when` +          ( getChildren >>> deep (checkElemName ["group", "interleave"])+            >>> +            getChildren >>> deep (isElem >>> hasName "attribute")+          )+        ),++-- 7.1.3. list pattern, the following paths are prohibited:+--        list//( list | ref | attribute | text | interleave)+      (isElem >>> hasName "list") :-> +        ( ( (deep (isElem >>> hasName "relaxError"))               +            <+>+            ( mkRelaxError $<< (getChangesAttr+                                &&&+                                ( listA ( getChildren+                                          >>> +                                          deep (checkElemName ["list", "attribute", "ref"+                                                              , "text", "interleave"])+                                          >>>+                                          (getName &&& getChangesAttr >>> arr2 (++))+                                        )+                                  >>> +                                  arr (\n -> formatStringList "-, " n ++ +                                             "-Pattern not allowed as descendent(s) of a list-Pattern")+                                )+                               )+            ) +          )+          `when` +          ( getChildren+            >>>+            deep (checkElemName ["list", "attribute", "ref", "text", "interleave"])+          )+        ), ++-- 7.1.4. except in data pattern, the following paths are prohibited:+--        data/except//(attribute | ref | text | list | group | interleave | oneOrMore | empty)+      (isElem >>> hasName "data") :-> +        ( ( (deep (isElem >>> hasName "relaxError"))               +            <+>+            ( mkRelaxError $<< (getChangesAttr+                                &&&+                                ( listA (getChildren+                                         >>> +                                         deep (checkElemName ["attribute", "ref", "text", "list", +                                                              "group", "interleave", "oneOrMore", "empty"])+                                         >>>+                                         (getName &&& getChangesAttr >>> arr2 (++))+                                        )+                                  >>>+                                  arr (\n -> formatStringList "-, " n ++ +                                             "-Pattern not allowed as descendent(s) of a data/except-Pattern")+                                )+                               )+            ) +          )+          `when` +          ( getChildren >>> isElem >>> hasName "except" >>> +            deep ( checkElemName ["attribute", "ref", "text", "list", "group"+                                 , "interleave", "oneOrMore", "empty"])+          )+        ),++-- 7.1.5. start element, the following paths are prohibited:+--        start//(attribute | data | value | text | list | group | interleave | oneOrMore | empty)+      (isElem >>> hasName "start") :-> +        ( ( (deep (isElem >>> hasName "relaxError"))               +            <+>+            ( mkRelaxError $<< (getChangesAttr+                                &&&+                                ( listA (getChildren+                                         >>>+                                         deep (checkElemName [ "attribute", "data", "value", "text", "list", +                                                               "group", "interleave", "oneOrMore", "empty"])+                                         >>>+                                         (getName &&& getChangesAttr >>> arr2 (++))+                                        )+                                  >>> +                                  arr (\n -> formatStringList "-, " n ++ +                                             "-Pattern not allowed as descendent(s) of a start-Pattern")+                                )+                               )+            ) +          )+          `when` +          ( getChildren+            >>>+            deep (checkElemName [ "attribute", "data", "value", "text", "list", +                                  "group", "interleave", "oneOrMore", "empty"])+          )  +        ),+            +        this :-> this+      ]+  ) `when` collectErrors++     +-- ------------------------------------------------------------+++restrictionsStep3 :: IOSArrow XmlTree XmlTree+restrictionsStep3 =+  processTopDown (+      ( (deep (isElem >>> hasName "relaxError"))               +        <+>+        ( mkRelaxError "" $< +           ( -- getAttrValue "name"+             (getChildren >>> hasName "name" >>> getChildren >>> getText)+             >>> +             arr (\n -> "Content of element " ++ n ++ " contains a pattern that can match " +++                        "a child and a pattern that matches a single string")+           )+        )+      )+      `when`+      ( isElem >>> hasName "element"+        >>>+        listA getChildren+        >>> +        arr last+        >>>+        getContentType >>> isA (== CTNone)+      )+  ) `when` collectErrors++    +    +getContentType :: IOSArrow XmlTree ContentType+getContentType =+  choiceA [+    (isElem >>> hasName "value")      :-> (constA CTSimple),+    (isElem >>> hasName "data")       :-> processData,+    (isElem >>> hasName "list")       :-> (constA CTSimple),+    (isElem >>> hasName "text")       :-> (constA CTComplex),+    (isElem >>> hasName "ref")        :-> (constA CTComplex),+    (isElem >>> hasName "empty")      :-> (constA CTEmpty),+    (isElem >>> hasName "attribute")  :-> processAttribute,+    (isElem >>> hasName "group")      :-> processGroup,+    (isElem >>> hasName "interleave") :-> processInterleave,+    (isElem >>> hasName "oneOrMore")  :-> processOneOrMore,+    (isElem >>> hasName "choice")     :-> processChoice+  ]+  where+  processData :: IOSArrow XmlTree ContentType+  processData+    = ifA (neg (getChildren >>> hasName "except"))+        (constA CTSimple)+        ( getChildren+          >>>+          hasName "except"+          >>>+          getChildren+          >>>+          getContentType+          >>>+          ifP (/= CTNone) (constA CTSimple) (constA CTNone)+        )+  processAttribute :: IOSArrow XmlTree ContentType+  processAttribute+    = ifA ( listA getChildren >>> arr last+            >>>+            getContentType >>> isA (/= CTNone)+          )+        (constA CTEmpty)+        (constA CTNone)+  +  processGroup :: IOSArrow XmlTree ContentType+  processGroup+    = listA getChildren+      >>>+      ((arr head >>> getContentType) &&& (arr last >>> getContentType))+      >>>+      arr2 (\a b -> if isGroupable a b then max a b else CTNone)+  +  processInterleave :: IOSArrow XmlTree ContentType+  processInterleave+     = listA getChildren+       >>> +       ((arr head >>> getContentType) &&& (arr last >>> getContentType))+       >>>+       arr2 (\a b -> if isGroupable a b then max a b else CTNone)+  +  processOneOrMore :: IOSArrow XmlTree ContentType+  processOneOrMore+     = ifA ( getChildren+             >>>+             getContentType >>> isA (/= CTNone)+             >>>+             isA (\t -> isGroupable t t)+           )+        (getChildren >>> getContentType)+        (constA CTNone)+  +  processChoice :: IOSArrow XmlTree ContentType+  processChoice+    = listA getChildren+      >>> +      ((arr head >>> getContentType) &&& (arr last >>> getContentType))+      >>> +      arr2 max++  isGroupable :: ContentType -> ContentType -> Bool+  isGroupable CTEmpty   _         = True+  isGroupable _         CTEmpty   = True+  isGroupable CTComplex CTComplex = True+  isGroupable _         _         = False+    +    +    +    +checkPattern :: IOSArrow (XmlTree, ([NameClass], [NameClass])) XmlTree+checkPattern = (\ (_, (a, b)) -> isIn a b) `guardsP` (arr fst)+  where+  isIn :: [NameClass] -> [NameClass] -> Bool+  isIn _ []      = False+  isIn [] _      = False+  isIn (x:xs) ys = (any (overlap x) ys) || isIn xs ys+++occur :: String -> IOSArrow XmlTree XmlTree -> IOSArrow XmlTree XmlTree+occur name fct+  = choiceA [ +      (isElem >>> hasName name) :-> fct,+      (checkElemName ["choice", "interleave", "group", "oneOrMore"])+                                :-> (getChildren >>> occur name fct)+    ]++            +-- ------------------------------------------------------------            +++-- Duplicate attributes are not allowed. -> fertig+-- Attributes using infinite name classes must be repeated; an attribute element that +-- has an anyName or nsName descendant element must have a oneOrMore ancestor element. -> fertig+restrictionsStep4 :: IOSArrow XmlTree XmlTree          +restrictionsStep4 =+  ( -- berechnet alle define-Namen (fuer ref-Pattern) und Nameclasses der element-Pattern+    restrictionsStep4' $< listA ( deep (isElem >>> hasName "define")+                                  >>>+                                  ( getAttrValue "name" +                                    &&& +                                    ( getChildren+                                      >>>+                                      listA getChildren+                                      >>>+                                      arr head+                                      >>> +                                      fromLA createNameClass+                                    )+                                  )+                                )+  ) `when` collectErrors++restrictionsStep4' :: [(String, NameClass)] -> IOSArrow XmlTree XmlTree          +restrictionsStep4' nc =+  processTopDown (+    ( +      ( (deep (isElem >>> hasName "relaxError"))               +        <+>+        ( mkRelaxError "" $< +          ( getAttrValue "name"+            >>>+            arr (\n -> "Both attribute-pattern occuring in an " ++ +                       n ++ " belong to the same name-class")+          )+        )+      )    +      `when` +      ( isElem >>> (hasName "group" `orElse` hasName "interleave")+        >>>+        listA getChildren+        >>> +        ( (arrL id)+          &&& +          ( arr head+            >>> +            listA ( occur "attribute" (listA getChildren >>> arr head)+                    >>> +                    fromLA createNameClass+                  )+          ) +          &&&+          ( arr last+            >>> +            listA ( occur "attribute" (listA getChildren >>> arr head)+                    >>> +                    fromLA createNameClass+                  )+          )+        ) +        >>> checkPattern+      )           +    )     +    >>>+    (  +      ( (deep (isElem >>> hasName "relaxError"))               +        <+>+        (mkRelaxError "" $ "An attribute that has an anyName or nsName descendant element " +++                           "must have a oneOrMore ancestor element")+      )+      `when`+      (isElem >>> hasName "element" >>> checkInfiniteAttribute)+    )+    >>>+    ( ( (deep (isElem >>> hasName "relaxError"))               +        <+>+        ( mkRelaxError "" $ "Both element-pattern occuring in an interleave " +++                            "belong to the same name-class"+        )+      )+      `when` +      ( isElem >>> hasName "interleave" >>> listA getChildren+        >>> +        ( (arrL id)+          &&&+          (arr head >>> listA (occur "ref" this >>> getAttrValue "name")) +          &&&+          (arr last >>> listA (occur "ref" this >>> getAttrValue "name"))+        )+        >>>+        checkNames+      )+    )+    >>>     +    ( ( (deep (isElem >>> hasName "relaxError"))               +        <+> +        (mkRelaxError "" "A text pattern must not occur in both children of an interleave")+      )+      `when` +      (isElem >>> hasName "interleave" >>> checkText)+    )+  )+  where+  checkInfiniteAttribute :: IOSArrow XmlTree XmlTree+  checkInfiniteAttribute+    = getChildren+      >>>+      choiceA [ +        (isElem >>> hasName "oneOrMore") :-> none,+        ( isElem >>> hasName "attribute"+          >>>+          deep (isElem >>> (hasName "anyName" `orElse` hasName "nsName"))+        )                                :-> this,+        this                             :-> checkInfiniteAttribute+      ]++  checkNames :: IOSArrow (XmlTree, ([String], [String])) XmlTree+  checkNames = (arr fst)+               &&&+               (arr (\(_, (a, _)) -> getNameClasses nc a)) +               &&&+               (arr (\(_, (_, b)) -> getNameClasses nc b))+               >>>+               checkPattern+    where+    getNameClasses :: [(String, NameClass)] -> [String] -> [NameClass]+    getNameClasses nc' l = map (\x -> fromJust $ lookup x nc') l+    +  checkText :: IOSArrow XmlTree XmlTree+  checkText = listA getChildren+              >>> +              ( (arr head >>> occur "text" this)+                `guards` +                (arr last >>> occur "text" this)+              )++       +-- ------------------------------------------------------------+++overlap :: NameClass -> NameClass -> Bool+overlap nc1 nc2+  = any (bothContain nc1 nc2) (representatives nc1 ++ representatives nc2)++bothContain :: NameClass -> NameClass -> QName -> Bool+bothContain nc1 nc2 qn = contains nc1 qn && contains nc2 qn++illegalLocalName :: LocalName+illegalLocalName = ""++illegalUri :: Uri+illegalUri = "\x1"++representatives :: NameClass -> [QName]+representatives AnyName = [QN "" illegalLocalName illegalUri]+representatives (AnyNameExcept nc) =+  (QN "" illegalLocalName illegalUri) : (representatives nc)+representatives (NsName ns) = [QN "" illegalLocalName ns]+representatives (NsNameExcept ns nc) =+  (QN "" illegalLocalName ns) : (representatives nc)+representatives (Name ns ln) = [QN "" ln ns]+representatives (NameClassChoice nc1 nc2) =+  (representatives nc1) ++ (representatives nc2)       +representatives _ = []+++-- -------------------------------------------------------------------------------------------------------            ++resetStates :: IOSArrow XmlTree XmlTree+resetStates = perform (constA $ setParamInt "define_id" 0)+              >>>+              perform (constA [] >>> setParamList "elementTable")+              >>>+              perform (constA $ setParamInt a_numberOfErrors 0)+++getAllDeepDefines :: IOSArrow XmlTree Env+getAllDeepDefines = listA $ deep (isElem >>> hasName "define")+                            >>> +                            (getAttrValue "name" &&& this)+++-- | Return all reachable defines from the start pattern+getRefsFromStartPattern :: IOSArrow XmlTree [String]+getRefsFromStartPattern+  = listA $ getChildren+            >>>+            isElem >>> hasName "grammar"+            >>>+            getChildren+            >>>+            isElem >>> hasName "start"+            >>> +            deep (isElem >>> hasName "ref")+            >>>+            getAttrValue "name"+++removeUnreachableDefines :: Env -> [String] -> [String] -> IOSArrow XmlTree XmlTree+removeUnreachableDefines allDefs processedDefs reachableDefs+  = ifP (const $ unprocessedDefs /= [])+      (removeUnreachableDefines allDefs (nextTreeName : processedDefs) $< newReachableDefs)+      ( processChildren $ -- root node+          processChildren $ -- first grammar+            none +            `when`+            ( isElem >>> hasName "define"+              >>>+              getAttrValue "name"+              >>> +              isA (\n -> not $ elem n reachableDefs)+            )+      )+  where+  unprocessedDefs :: [String]+  unprocessedDefs = reachableDefs \\ processedDefs+  newReachableDefs :: IOSArrow n [String]+  newReachableDefs = constA getTree+                     >>> +                     listA ( deep (isElem >>> hasName "ref")+                             >>>+                             getAttrValue "name"+                           )+                     >>>+                     arr (noDoubles . (reachableDefs ++))+  getTree :: XmlTree+  getTree = fromJust $ lookup nextTreeName allDefs+  nextTreeName :: String+  nextTreeName = head unprocessedDefs+++-- -------------------------------------------------------------------------------------------------------    +    ++checkElemName :: [String] -> IOSArrow XmlTree XmlTree+checkElemName l = (isElem >>> getLocalPart >>> isA (\s -> elem s l))+                  `guards`+                  this++++wrapPattern2Two :: (ArrowXml a) => String -> a XmlTree XmlTree+wrapPattern2Two name +  = choiceA [+      (listA getChildren >>> isA (\cl -> length cl > 2))+          :-> ( replaceChildren ( (A.mkElement (QN "" name relaxNamespace) none +                                      (listA getChildren >>> arrL (take 2))+                                  ) +                                  <+> +                                  (listA getChildren >>> arrL (drop 2))+                                )+                >>>+                wrapPattern2Two name+              ),+      (listA getChildren >>> isA (\cl -> length cl == 1)) :-> getChildren,+      (listA getChildren >>> this) :-> this+    ]++    ++mkRelaxError :: String -> String -> IOSArrow n XmlTree+mkRelaxError changesStr errStr+  = perform (getAndSetCounter a_numberOfErrors)+    >>>+    A.mkElement (QN "" "relaxError" relaxNamespace) none none+    >>>+    addAttr "desc" errStr+    >>>+    ( addAttr "changes" changesStr+      `whenP`+      (const $ changesStr /= "")+    )++collectErrors :: IOSArrow XmlTree XmlTree+collectErrors+  = none+    `when`+    ( stopAfterFirstError+      >>>+      getParamInt 0 a_numberOfErrors >>> isA (>0)+    )+  where+  stopAfterFirstError = getParamString a_do_not_collect_errors+                        >>>+                        isA (== "1")+ ++-- | Returns the list of simplification errors or 'none'+getErrors :: IOSArrow XmlTree XmlTree+getErrors = (getParamInt 0 a_numberOfErrors >>> isA (>0))+            `guards`+            (root [] [multi (isElem >>> hasName "relaxError")])++setChangesAttr :: String -> IOSArrow XmlTree XmlTree+setChangesAttr str+  = ifA (hasAttr a_relaxSimplificationChanges)+      ( processAttrl $+          changeAttrValue (++ (", " ++ str))+          `when`+          (hasName a_relaxSimplificationChanges)+      )+      (mkAttr (QN "" a_relaxSimplificationChanges "") (txt str))+++getChangesAttr :: IOSArrow XmlTree String+getChangesAttr+  = getAttrValue a_relaxSimplificationChanges +    &&& +    getParamString a_output_changes+    >>>+    ifP (\(changes, param) -> changes /= "" && param == "1")+      (arr2 $ \l _ -> " (" ++ l ++ ")")+      (constA "")+      ++getAndSetCounter :: String -> IOSArrow b String+getAndSetCounter name   +  = genNewId $< getParamInt 0 name+  where+  genNewId :: Int -> IOSArrow b String+  genNewId i = setParamInt name (i+1) >>> constA (show i)++     +-- -------------------------------------------------------------------------------------------------------            ++-- | Creates the simple form of a Relax NG schema+-- (see also: 'relaxOptions')++createSimpleForm :: Attributes -> Bool -> Bool -> Bool -> IOSArrow XmlTree XmlTree+createSimpleForm remainingOptions checkRestrictions validateExternalRef validateInclude+    = if checkRestrictions+      then createSimpleWithRest+      else createSimpleWithoutRest+    where++    createSimpleWithRest :: IOSArrow XmlTree XmlTree+    createSimpleWithRest+	= seqA $ concat [ simplificationPart1+			, restrictionsPart1+			, simplificationPart2+			, restrictionsPart2+			, finalCleanUp+			]++    createSimpleWithoutRest :: IOSArrow XmlTree XmlTree+    createSimpleWithoutRest+	= seqA $ concat [ simplificationPart1+			, simplificationPart2+			, finalCleanUp+			]+    simplificationPart1 :: [IOSArrow XmlTree XmlTree]+    simplificationPart1+	= [ propagateNamespaces+	  , simplificationStep1+	  , simplificationStep2 remainingOptions validateExternalRef validateInclude [] []+	  , simplificationStep3+	  , simplificationStep4+	  ]++    simplificationPart2 :: [IOSArrow XmlTree XmlTree]+    simplificationPart2+	= [ simplificationStep5+	  , simplificationStep6+	  , simplificationStep7+	  , simplificationStep8+	  ]++    restrictionsPart1 :: [IOSArrow XmlTree XmlTree]+    restrictionsPart1+	= [ restrictionsStep1 ]++    restrictionsPart2 :: [IOSArrow XmlTree XmlTree]+    restrictionsPart2+	= [ restrictionsStep2+	  , restrictionsStep3+	  , restrictionsStep4                    +	  ]++    finalCleanUp :: [IOSArrow XmlTree XmlTree]                    +    finalCleanUp+	= [ cleanUp+	  , resetStates+	  ]++    cleanUp :: IOSArrow XmlTree XmlTree+    cleanUp = processTopDown $ +              removeAttr a_relaxSimplificationChanges+	      >>>+              removeAttr defineOrigName
+ src/Text/XML/HXT/RelaxNG/Utils.hs view
@@ -0,0 +1,103 @@+-- |+-- Some helper functions++module Text.XML.HXT.RelaxNG.Utils+    ( isRelaxAnyURI+    , compareURI+    , normalizeURI+    , parseNumber+    , formatStringList+    , qn2String+    )+where++import Text.XML.HXT.Arrow.DOMInterface++import Text.ParserCombinators.Parsec+import Text.XML.HXT.Parser.XmlParser+    ( skipS0 )++import Network.URI+  ( isURI+  , isRelativeReference+  , parseURI+  , URI(..)+  )+import Maybe+import Char +++-- ------------------------------------------------------------+++-- | Tests whether a URI matches the Relax NG anyURI symbol++isRelaxAnyURI :: String -> Bool+isRelaxAnyURI s +    = s == "" ||+      ( isURI s && not (isRelativeReference s) &&+	( let (URI _ _ path _ frag) = fromMaybe (URI "" Nothing "" "" "") $ parseURI s+          in (frag == "" && path /= "")+	)+      )+++-- | Tests whether two URIs are equal after 'normalizeURI' is performed++compareURI :: String -> String -> Bool+compareURI uri1 uri2+    = normalizeURI uri1 == normalizeURI uri2+++-- |  Converts all letters to the corresponding lower-case letter +-- and removes a trailing \"\/\" ++normalizeURI :: String -> String+normalizeURI ""+    = ""+normalizeURI uri+    = map toLower ( if last uri == '/'+		    then init uri+		    else uri+		  )+                  +-- | Tests whether a string matches a number [-](0-9)*+parseNumber :: String -> Bool+parseNumber s+    = case (parse parseNumber' "" s) of+      Left _  -> False+      Right _ -> True+    where+    parseNumber' :: Parser String+    parseNumber'+	= do+	  skipS0+	  m <- option "" (string "-")+	  n <- many1 digit+	  skipS0+	  eof+	  return $ m ++ n+      ++{- | ++Formats a list of strings into a single string. The first parameter is inserted+between two elements.++example:++> formatStringList ", " ["foo", "bar", "baz"] -> "foo, bar, baz"++-}++formatStringList :: String -> [String] -> String+formatStringList _ []+    = ""+formatStringList spacer l+    = reverse $ drop (length spacer) $ reverse $ +      foldr (\e -> ((if e /= "" then e ++ spacer else "") ++)) "" l+++-- | Formats a qualified name, e.g. \"{namespace}localName\"+qn2String :: QName -> String+qn2String (QN _ lp ns) = "{" ++ ns ++ "}" ++ lp
+ src/Text/XML/HXT/RelaxNG/Validation.hs view
@@ -0,0 +1,583 @@+-- |+-- Validation of a XML document with respect to a valid Relax NG schema in simple form.+-- Copied and modified from \"An algorithm for RELAX NG validation\" by James Clark+-- (<http://www.thaiopensource.com/relaxng/derivative.html>).++module Text.XML.HXT.RelaxNG.Validation+    ( validateWithRelaxAndHandleErrors+    , validateDocWithRelax+    , validateRelax+    , validateXMLDoc+    , readForRelax+    , normalizeForRelaxValidation+    , contains+    )+where++import Control.Arrow.ListArrows++import Text.XML.HXT.Arrow.DOMInterface+import Text.XML.HXT.Arrow.XmlArrow+import Text.XML.HXT.Arrow.XmlIOStateArrow++import Text.XML.HXT.Arrow.Edit+    ( canonicalizeAllNodes+    , collapseAllXText+    )++import Text.XML.HXT.Arrow.ProcessDocument+    ( propagateAndValidateNamespaces+    , getDocumentContents+    , parseXmlDocument+    )++import Text.XML.HXT.RelaxNG.DataTypes+import Text.XML.HXT.RelaxNG.CreatePattern+import Text.XML.HXT.RelaxNG.PatternToString+import Text.XML.HXT.RelaxNG.DataTypeLibraries+import Text.XML.HXT.RelaxNG.Utils+    ( qn2String+    , formatStringList+    , compareURI+    )++import qualified Text.XML.HXT.Arrow.XmlNode as XN+    ( getText+    )++import Data.Tree.NTree.TypeDefs	( NTree (..) )++import qualified Text.XML.HXT.DOM.XmlTreeFunctions as TF ( xshow )++import Data.Char+import Data.Maybe++-- ------------------------------------------------------------++validateWithRelaxAndHandleErrors	:: IOSArrow XmlTree XmlTree -> IOSArrow XmlTree XmlTree+validateWithRelaxAndHandleErrors theSchema+    = validateWithRelax theSchema+      >>>+      handleErrors++validateWithRelax	:: IOSArrow XmlTree XmlTree -> IOSArrow XmlTree XmlTree+validateWithRelax theSchema+    = traceMsg 2 "validate with Relax NG schema"+      >>>+      ( ( normalizeForRelaxValidation		-- prepare the document for validation+	  >>>+	  getChildren+	  >>>+	  isElem				-- and select the root element+	)+	&&&+	theSchema+      )+      >>>+      arr2A validateRelax			-- compute vaidation errors as a document++handleErrors	:: IOSArrow XmlTree XmlTree+handleErrors+    = traceDoc "error found when validating with Relax NG schema"+      >>>+      ( getChildren				-- prepare error format+	>>>+	getText+	>>>+	arr ("Relax NG validation: " ++)+	>>>+	mkError c_err+      )+      >>>+      filterErrorMsg				-- issue errors and set system status+++{- |+   normalize a document for validation with Relax NG: remove all namespace declaraion attributes,+   remove all processing instructions and merge all sequences of text nodes into a single text node+-}++normalizeForRelaxValidation :: ArrowXml a => a XmlTree XmlTree+normalizeForRelaxValidation+  = processTopDownWithAttrl+    (+     ( none `when`			-- remove all namespace attributes+       ( isAttr+         >>> +         getNamespaceUri+         >>>+         isA (compareURI xmlnsNamespace)+       )+     )+     >>>+     (none `when` isPi)			-- processing instructions+    )+    >>>+    collapseAllXText			-- all text node sequences are merged into a single text node++-- ------------------------------------------------------------++{- | Validates a xml document with respect to a Relax NG schema++   * 1.parameter  :  the arrow for computing the Relax NG schema++   - 2.parameter  :  list of options for reading and validating+   +   - 3.parameter  :  XML document URI++   - arrow-input  :  ignored+   +   - arrow-output :  list of errors or 'none'+-}  ++validateDocWithRelax :: IOSArrow XmlTree XmlTree -> Attributes -> String -> IOSArrow XmlTree XmlTree+validateDocWithRelax theSchema al doc+  = ( if null doc+      then root [] []+      else readForRelax al doc+    )+    >>>+    validateWithRelax theSchema+    >>>+    perform handleErrors+++{- | Validates a xml document with respect to a Relax NG schema++   * 1.parameter  :  XML document++   - arrow-input  :  Relax NG schema+   +   - arrow-output :  list of errors or 'none'+-}++validateRelax :: XmlTree -> IOSArrow XmlTree XmlTree+validateRelax xmlDoc+  = fromLA+    ( createPatternFromXmlTree+      >>>+      arr (\p -> childDeriv ("",[]) p xmlDoc)+      >>>+      ( (not . nullable)+        `guardsP`+        root [] [ (take 1024 . show) ^>> mkText ]	-- pattern may be recursive, so the string representation+	                                                -- is truncated to 1024 chars to assure termination+      )+    )++-- ------------------------------------------------------------++readForRelax	:: Attributes -> String -> IOSArrow b XmlTree+readForRelax options schema+    = getDocumentContents options schema+      >>>+      parseXmlDocument False+      >>>+      canonicalizeAllNodes+      >>>+      propagateAndValidateNamespaces++-- ------------------------------------------------------------++{- old stuff -}++validateXMLDoc :: Attributes -> String -> IOSArrow XmlTree XmlTree+validateXMLDoc al xmlDoc+  = validateRelax+    $<+    ( readForRelax al xmlDoc+      >>>+      normalizeForRelaxValidation+      >>>+      getChildren+    )+++-- ------------------------------------------------------------+++-- | tests whether a 'NameClass' contains a particular 'QName'+contains :: NameClass -> QName -> Bool+contains AnyName _			= True+contains (AnyNameExcept nc) n		= not (contains nc n)+contains (NsName ns1) (QN _ _ ns2)	= ns1 == ns2+contains (NsNameExcept ns1 nc) qn@(QN _ _ ns2)+					= ns1 == ns2 && not (contains nc qn)+contains (Name ns1 ln1) (QN _ ln2 ns2)	= (ns1 == ns2) && (ln1 == ln2)+contains (NameClassChoice nc1 nc2) n 	= (contains nc1 n) || (contains nc2 n)+contains (NCError _) _ 			= False+++-- | tests whether a pattern matches the empty sequence+nullable:: Pattern -> Bool+nullable (Group p1 p2)		= nullable p1 && nullable p2+nullable (Interleave p1 p2)	= nullable p1 && nullable p2+nullable (Choice p1 p2)		= nullable p1 || nullable p2+nullable (OneOrMore p)		= nullable p+nullable (Element _ _)		= False+nullable (Attribute _ _)	= False+nullable (List _)		= False+nullable (Value _ _ _)		= False+nullable (Data _ _)		= False+nullable (DataExcept _ _ _)	= False+nullable (NotAllowed _)		= False+nullable Empty			= True+nullable Text			= True+nullable (After _ _)		= False+++-- | computes the derivative of a pattern with respect to a XML-Child and a 'Context'+childDeriv :: Context -> Pattern -> XmlTree -> Pattern++childDeriv cx p (NTree (XText s) _)+    = textDeriv cx p s++childDeriv _ p (NTree (XTag qn atts) children)+    = let+      cx = ("",[])+      p1 = startTagOpenDeriv p qn+      p2 = attsDeriv cx p1 atts+      p3 = startTagCloseDeriv p2+      p4 = childrenDeriv cx p3 children+      in+      endTagDeriv p4++childDeriv _ _ _+    = NotAllowed "Call to childDeriv with wrong arguments"+++-- | computes the derivative of a pattern with respect to a text node+textDeriv :: Context -> Pattern -> String -> Pattern++textDeriv cx (Choice p1 p2) s+    = choice (textDeriv cx p1 s) (textDeriv cx p2 s)++textDeriv cx (Interleave p1 p2) s+    = choice+      (interleave (textDeriv cx p1 s) p2)+      (interleave p1 (textDeriv cx p2 s))++textDeriv cx (Group p1 p2) s+    = let+      p = group (textDeriv cx p1 s) p2+      in+      if nullable p1+      then choice p (textDeriv cx p2 s)+      else p++textDeriv cx (After p1 p2) s+    = after (textDeriv cx p1 s) p2++textDeriv cx (OneOrMore p) s+    = group (textDeriv cx p s) (choice (OneOrMore p) Empty)++textDeriv _ Text _+    = Text++textDeriv cx1 (Value (uri, s) value cx2) s1+    = case datatypeEqual uri s value cx2 s1 cx1+      of+      Nothing     -> Empty +      Just errStr -> NotAllowed errStr++textDeriv cx (Data (uri, s) params) s1+    = case datatypeAllows uri s params s1 cx+      of+      Nothing     -> Empty +      Just errStr -> NotAllowed errStr++textDeriv cx (DataExcept (uri, s) params p) s1+    = case (datatypeAllows uri s params s1 cx)+      of+      Nothing     -> if not $ nullable $ textDeriv cx p s1 +                     then Empty +		     else NotAllowed ( "Any value except '" +++				       show p ++ +				       "' expected, but value '" +++				       s1 +++				       "' found"+				     )+      Just errStr -> NotAllowed errStr++textDeriv cx (List p) s+    = if nullable (listDeriv cx p (words s)) +      then Empty+      else NotAllowed ( "List with value(s) " +++			show p ++ +			" expected, but value(s) " ++ +			formatStringList ", " (words s) +++			" found"+		      )++textDeriv _ n@(NotAllowed _) _+    = n++textDeriv _ p s+    = NotAllowed ( "Pattern " ++ getPatternName p +++		   " expected, but text " ++ s ++ " found"+		 )+++-- | To compute the derivative of a pattern with respect to a list of strings, +-- simply compute the derivative with respect to each member of the list in turn.++listDeriv :: Context -> Pattern -> [String] -> Pattern++listDeriv _ p []+    = p++listDeriv cx p (x:xs)+    = listDeriv cx (textDeriv cx p x) xs+    ++-- | computes the derivative of a pattern with respect to a start tag open++startTagOpenDeriv :: Pattern -> QName -> Pattern++startTagOpenDeriv (Choice p1 p2) qn+    = choice (startTagOpenDeriv p1 qn) (startTagOpenDeriv p2 qn)++startTagOpenDeriv (Element nc p) qn@(QN _ local uri)+    = if contains nc qn +      then after p Empty+	   else NotAllowed ( "Element with name " ++ nameClassToString nc ++ +			     " expected, but {" ++ uri ++ "}" ++ local ++ " found"+			   )++startTagOpenDeriv (Interleave p1 p2) qn+    = choice+      (applyAfter (flip interleave p2) (startTagOpenDeriv p1 qn))+      (applyAfter (interleave p1) (startTagOpenDeriv p2 qn))++startTagOpenDeriv (OneOrMore p) qn+    = applyAfter+      (flip group (choice (OneOrMore p) Empty))+      (startTagOpenDeriv p qn)++startTagOpenDeriv (Group p1 p2) qn+    = let+      x = applyAfter (flip group p2) (startTagOpenDeriv p1 qn)+      in+      if nullable p1 +      then choice x (startTagOpenDeriv p2 qn)+      else x++startTagOpenDeriv (After p1 p2) qn+    = applyAfter (flip after p2) (startTagOpenDeriv p1 qn)++startTagOpenDeriv n@(NotAllowed _) _+    = n++startTagOpenDeriv p (QN _ local uri)+    = NotAllowed ( show p ++ " expected, but Element {" +++		   uri ++ "}" ++ local ++ " found"+		 )++-- | To compute the derivative of a pattern with respect to a sequence of attributes, +-- simply compute the derivative with respect to each attribute in turn.++attsDeriv :: Context -> Pattern -> XmlTrees -> Pattern++attsDeriv _ p []+    = p+attsDeriv cx p (attribute@(NTree (XAttr _) _):xs)+    = attsDeriv cx (attDeriv cx p attribute) xs++attsDeriv _ _ _+    = NotAllowed "Call to attsDeriv with wrong arguments"++attDeriv :: Context -> Pattern -> XmlTree -> Pattern++attDeriv cx (After p1 p2) att+    = after (attDeriv cx p1 att) p2++attDeriv cx (Choice p1 p2) att+    = choice (attDeriv cx p1 att) (attDeriv cx p2 att)++attDeriv cx (Group p1 p2) att+    = choice+      (group (attDeriv cx p1 att) p2)+      (group p1 (attDeriv cx p2 att))++attDeriv cx (Interleave p1 p2) att+    = choice+      (interleave (attDeriv cx p1 att) p2)+      (interleave p1 (attDeriv cx p2 att))++attDeriv cx (OneOrMore p) att+    = group+      (attDeriv cx p att)+      (choice (OneOrMore p) Empty)++attDeriv cx (Attribute nc p) (NTree (XAttr qn) attrValue)+    = attDeriv' (TF.xshow attrValue)+    where+    attDeriv' val+	= if contains nc qn && valueMatch cx p val+	  then Empty+	  else ( if (not $ contains nc qn)+		 then ( NotAllowed $ "Attribut with name " ++ +			nameClassToString nc ++ " expected, but " ++ +			qn2String qn ++ " found")+		 else ( NotAllowed $ "Attributvalue " ++ val ++ +			" expected, but " ++ show p ++ " found")+               )++attDeriv _ n@(NotAllowed _) _+    = n++attDeriv _ p att+    = NotAllowed ( "Attribute-Pattern for Attribute " ++  show att ++ +		   " expected, but Pattern " ++ show p ++ " found"+		 )++-- | tests, whether an attribute value matches a pattern+valueMatch :: Context -> Pattern -> String -> Bool+valueMatch cx p s = +    ( nullable p+      &&+      whitespace s+    )+    ||+    nullable (textDeriv cx p s)+  +  +-- | computes the derivative of a pattern with respect to a start tag close++startTagCloseDeriv :: Pattern -> Pattern++startTagCloseDeriv (After p1 p2)+    = after (startTagCloseDeriv p1) p2++startTagCloseDeriv (Choice p1 p2)+    = choice+      (startTagCloseDeriv p1)+      (startTagCloseDeriv p2)++startTagCloseDeriv (Group p1 p2)+    = group+      (startTagCloseDeriv p1)+      (startTagCloseDeriv p2)++startTagCloseDeriv (Interleave p1 p2)+    = interleave+      (startTagCloseDeriv p1)+      (startTagCloseDeriv p2)++startTagCloseDeriv (OneOrMore p)+    = oneOrMore (startTagCloseDeriv p)++startTagCloseDeriv (Attribute nc _)+    = NotAllowed ( "Attribut with name, " ++ show nc ++ +                   " expected, but no more attributes found"+		 )++startTagCloseDeriv p+    = p+++-- | Computing the derivative of a pattern with respect to a list of children involves +-- computing the derivative with respect to each pattern in turn, except+-- that whitespace requires special treatment.++childrenDeriv :: Context -> Pattern -> XmlTrees -> Pattern+childrenDeriv cx p []+    = childrenDeriv cx p [(NTree (XText "") [])]++childrenDeriv cx p [(NTree (XText s) children)]+    = let+      p1 = childDeriv cx p (NTree (XText s) children)+      in+      if whitespace s+      then choice p p1+      else p1++childrenDeriv cx p children+    = stripChildrenDeriv cx p children    ++stripChildrenDeriv :: Context -> Pattern -> XmlTrees -> Pattern+stripChildrenDeriv _ p []+    = p++stripChildrenDeriv cx p (h:t)+    = stripChildrenDeriv cx+      ( if strip h+	then p+	else (childDeriv cx p h)+      ) t+++-- | computes the derivative of a pattern with respect to a end tag++endTagDeriv :: Pattern -> Pattern+endTagDeriv (Choice p1 p2)+    = choice (endTagDeriv p1) (endTagDeriv p2)++endTagDeriv (After p1 p2)+    = if nullable p1 +      then p2 +      else NotAllowed $ show p1 ++ " expected"++endTagDeriv n@(NotAllowed _)+    = n++endTagDeriv _+    = NotAllowed "Call to endTagDeriv with wrong arguments"+++-- ------------------------------------------------------------+-- some helper function++choice :: Pattern -> Pattern -> Pattern+choice p              (NotAllowed _) = p+choice (NotAllowed _) p              = p+choice p1             p2             = Choice p1 p2++group :: Pattern -> Pattern -> Pattern+group _                n@(NotAllowed _) = n+group n@(NotAllowed _) _                = n+group p                Empty            = p+group Empty            p                = p+group p1               p2               = Group p1 p2++oneOrMore :: Pattern -> Pattern+oneOrMore n@(NotAllowed _) = n+oneOrMore p                = OneOrMore p++interleave :: Pattern -> Pattern -> Pattern+interleave _                n@(NotAllowed _) = n+interleave n@(NotAllowed _) _                = n+interleave p                Empty            = p+interleave Empty            p                = p+interleave p1               p2               = Interleave p1 p2++after :: Pattern -> Pattern -> Pattern+after _                n@(NotAllowed _) = n+after n@(NotAllowed _) _                = n+after p1               p2               = After p1 p2++-- --------------------+-- | applies a function (first parameter) to the second part of a after pattern++applyAfter :: (Pattern -> Pattern) -> Pattern -> Pattern++applyAfter f (After p1 p2)	= after p1 (f p2)+applyAfter f (Choice p1 p2)	= choice (applyAfter f p1) (applyAfter f p2)+applyAfter _ n@(NotAllowed _)	= n+applyAfter _ _			= NotAllowed "Call to applyAfter with wrong arguments"++-- --------------------++strip	:: XmlTree -> Bool+strip+    = maybe False whitespace . XN.getText+{-+strip (NTree (XText s) _) = whitespace s+strip _ = False+-}++whitespace :: String -> Bool+whitespace+    = all isSpace++-- ------------------------------------------------------------
+ src/Text/XML/HXT/RelaxNG/Validator.hs view
@@ -0,0 +1,308 @@+-- |+-- This module exports the core functions from the basic validation und simplification libraries.+-- It also exports some helper functions for easier access to the validation functionality.++module Text.XML.HXT.RelaxNG.Validator+  ( validateDocumentWithRelaxSchema+  , validateDocumentWithRelax++  , validate+  , validateSchema+  , validateWithSpezification+  , validateSchemaWithSpezification+  , validateWithoutSpezification+  , module Text.XML.HXT.RelaxNG.Validation+  , module Text.XML.HXT.RelaxNG.Simplification+  )+where++import Control.Arrow.ListArrows++import Text.XML.HXT.Arrow.DOMInterface+import Text.XML.HXT.Arrow.XmlArrow+import Text.XML.HXT.Arrow.XmlIOStateArrow++import Text.XML.HXT.RelaxNG.Validation+import Text.XML.HXT.RelaxNG.Simplification+import Text.XML.HXT.RelaxNG.Schema        as S++-- ------------------------------------------------------------++{- |+   validate a document with a Relax NG schema++   * 1.parameter  : the option list for validation++   - 2.parameter  : the URI of the Relax NG Schema++   - arrow-input  : the document to be validated, namespaces must have been processed++   - arrow-output : the input document, or in case of validation errors, an empty document with status information in the root++options evaluated by validateDocumentWithRelaxSchema:++    * 'a_check_restrictions'   : check Relax NG schema restrictions when simplifying the schema (default: on)+    +    - 'a_validate_externalRef' : validate a Relax NG schema referenced by a externalRef-Pattern (default: on)+    +    - 'a_validate_include'     : validate a Relax NG schema referenced by a include-Pattern (default: on)+    +all other options are propagated to the read functions for schema input++example:++> validateDocumentWithRelaxSchema [(a_check_restrictions, "0")] "testSchema.rng"+++-}++validateDocumentWithRelaxSchema	:: Attributes -> String -> IOStateArrow s XmlTree XmlTree+validateDocumentWithRelaxSchema userOptions relaxSchema+    = withOtherUserState ()+      $+      ( ( validate' $< validSchema )	-- try to validate, only possible if schema is o.k.+	`orElse`+	this+      )+      `when`+      documentStatusOk			-- only do something when document status is ok+    where+    validate' schema+	= setDocumentStatusFromSystemState "read and build Relax NG schema"+	  >>>+	  validateDocumentWithRelax schema++    validSchema+	= traceMsg 2 ( "read Relax NG schema document: " ++ show relaxSchema )+	  >>>+	  readForRelax remainingOptions relaxSchema+	  >>>+	  perform ( let checkSchema = True in		-- test option in al+		    if checkSchema+		    then validateWithRelaxAndHandleErrors S.relaxSchemaArrow+		    else none+		  )+          >>>+	  traceMsg 2 "create simplified schema"+	  >>>+	  createSimpleForm remainingOptions+	    ( hasOption a_check_restrictions   )+	    ( hasOption a_validate_externalRef )+	    ( hasOption a_validate_include     )+	  >>>+	  traceDoc "simplified schema"+          >>>+	  perform ( getErrors+		    >>>+		    handleSimplificationErrors+		  )+    hasOption n+	= optionIsSet n options++    options = addEntries userOptions defaultOptions++    defaultOptions+	= [ ( a_check_restrictions,	v_1 )+	  , ( a_validate_externalRef,	v_1 )+	  , ( a_validate_include,	v_1 )+	  ]++    remainingOptions+	 = filter (not . flip hasEntry defaultOptions . fst) options++++handleSimplificationErrors	:: IOSArrow XmlTree XmlTree+handleSimplificationErrors+    = traceDoc "simplification errors"+      >>>+      getChildren >>> getAttrValue "desc"+      >>>+      arr ("Relax NG validation: " ++)+      >>>+      mkError c_err+      >>>+      filterErrorMsg+++{- | validate an XML document with respect to a Relax NG schema++   * 1.parameter  : the valid and simplified schema as XML tree++   - arrow-input  : the document to be validated++   - arrow-output : the validated and unchanged document or the empty document with status information set in the root node+-}++validateDocumentWithRelax	:: XmlTree -> IOSArrow XmlTree XmlTree+validateDocumentWithRelax schema+    = ( traceMsg 1 "validate document with Relax NG schema"+	>>>+	perform ( validateWithRelaxAndHandleErrors (constA schema) )+	>>>+	setDocumentStatusFromSystemState "validate document with Relax NG schema"+      )+      `when` documentStatusOk				-- only do something when document status is ok+++{- |+   normalize a document for Relax NG validation,+   call the 'Text.XML.HXT.RelaxNG.Validation.validateRelax' function for doing the hard work,+   and issue errors++   * 1.parameter  : the arrow for computing the schema++   - arrow-input  : the document to be validated++   - arrow-output : nothing+-}++-- ------------------------------------------------------------++{- | Document validation++Validates a xml document with respect to a Relax NG schema.++First, the schema is validated with respect to the Relax NG Spezification. If no error is found, the xml document is validated with respect to the schema.++   * 1.parameter :  list of options; namespace progagation is always done++   - 2.parameter :  XML document+   +   - 3.parameter :  Relax NG schema file++available options:++    * 'a_do_not_check_restrictions' : do not check Relax NG schema restrictions (includes do-not-validate-externalRef, do-not-validate-include)+    +    - 'a_do_not_validate_externalRef' : do not validate a Relax NG schema referenced by a externalRef-Pattern+    +    - 'a_validate_externalRef' : validate a Relax NG schema referenced by a externalRef-Pattern (default)+    +    - 'a_do_not_validate_include' : do not validate a Relax NG schema referenced by a include-Pattern+    +    - 'a_validate_include' : validate a Relax NG schema referenced by a include-Pattern (default)+    +    - 'a_output_changes' : output Pattern transformations in case of an error+    +    - 'a_do_not_collect_errors' : stop Relax NG simplification after the first error has occurred+    +    - all 'Text.XML.HXT.Arrow.ReadDocument.readDocument' options++example:++> validate [(a_do_not_check_restrictions, "1")] "test.xml" "testSchema.rng"++-}+validate :: Attributes -> String -> String -> IOSArrow n XmlTree+validate al xmlDocument relaxSchema+  = S.relaxSchemaArrow+    >>> +    validateWithSpezification al xmlDocument relaxSchema+++++{- | Relax NG schema validation++Validates a Relax NG schema with respect to the Relax NG Spezification.++   * 1.parameter :  list of available options (see also: 'validate')++   - 2.parameter :  Relax NG schema file+ +-}+validateSchema :: Attributes -> String -> IOSArrow n XmlTree+validateSchema al relaxSchema+  = validate al "" relaxSchema++++{- | Document validation++Validates a xml document with respect to a Relax NG schema. Similar to 'validate', but the Relax NG Specification is not created. Can be used, to check a list of documents more efficiently.++   * 1.parameter :  list of available options (see also: 'validate')++   - 2.parameter :  XML document+   +   - 3.parameter :  Relax NG schema file+   +   - arrow-input  :  Relax NG Specification in simple form++example:++> Text.XML.HXT.RelaxNG.Schema.relaxSchemaArrow+> >>>+> ( validateWithSpezification [] "foo.xml" "foo.rng"+>   &&&+>   validateWithSpezification [] "bar.xml" "bar.rng"+> )+++-}+validateWithSpezification :: Attributes -> String -> String -> IOSArrow XmlTree XmlTree+validateWithSpezification al xmlDocument relaxSchema+  = -- validation of the schema with respect to the specification+    -- returns a list of errors or none if the schema is correct++    ( validateRelax $< ( readForRelax al relaxSchema+			 >>>+			 getChildren+		       )+    )+    `orElse`++    -- validation of the xml document with respect to the schema+    -- returns a list of errors or none if the xml document is correct    ++    validateWithoutSpezification al xmlDocument relaxSchema++{- | Relax NG schema validation++    see 'validateSchema' and 'validateWithSpezification'++   * 1.parameter :  list of available options (see also: 'validate')++   - 2.parameter :  Relax NG schema file   +   +   - arrow-input  :  Relax NG Specification in simple form+-}++validateSchemaWithSpezification :: Attributes -> String -> IOSArrow XmlTree XmlTree+validateSchemaWithSpezification al relaxSchema+  = validateWithSpezification al "" relaxSchema++++{- | Document validation++Validates a xml document with respect to a Relax NG schema, but the schema is @not@ validated with respect to a specification first. Should be used only for valid Relax NG schemes.++   * 1.parameter :  list of available options (see also: 'validate')++   - 2.parameter :  XML document+   +   - 3.parameter :  Relax NG schema file+   +-}+++validateWithoutSpezification :: Attributes -> String -> String -> IOSArrow n XmlTree+validateWithoutSpezification al xmlDocument relaxSchema+  = readForRelax al relaxSchema+    >>> +    createSimpleForm al True True True+    >>>+    ( ( getErrors >>> perform handleSimplificationErrors )		-- issue errors in schema simplification+      `orElse`+      ( if null xmlDocument						-- no errors: validate document+	then none+	else validateRelax $< ( readForRelax al xmlDocument+				>>>+				normalizeForRelaxValidation+				>>>+				getChildren+			      )+      )+    )
+ src/Text/XML/HXT/Validator/AttributeValueValidation.hs view
@@ -0,0 +1,358 @@+-- |+-- This module provides functions for validating attributes.++-- The main functions are:+--+--  - Check if the attribute value meets the lexical constraints of its type+--+--  - Normalization of an attribute value+--++-- Special namings in source code:+--+--  - nd - XDTD node+--+--  - n  - XTag node+--+-- Version : $Id: AttributeValueValidation.hs,v 1.1 2004/09/02 19:12:02 hxml Exp $+--+module Text.XML.HXT.Validator.AttributeValueValidation+    ( checkAttributeValue+    , normalizeAttributeValue+    )+where++import Text.XML.HXT.Parser.XmlParser+    ( parseNMToken+    , parseName+    )++import Text.XML.HXT.DOM.XmlTree+import Text.XML.HXT.DOM.Util++-- |+-- Checks if the attribute value meets the lexical constraints of its type.+--+--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node+--+--    - 2.parameter attrDecl :  the declaration of the attribute from the DTD+--+--    - returns : a function which takes an element (XTag or XDTD ATTLIST),+--                    checks if the attribute value meets the lexical constraints+--                    of its type and returns a list of errors++checkAttributeValue :: XmlTrees -> XmlTree -> XmlFilter+checkAttributeValue dtdPart attrDecl@(NTree (XDTD ATTLIST al) _) n@(NTree (XTag _ _al') _)+    = checkValue attrType dtdPart normalizedVal attrDecl n+      where+      attrType      = lookup1 a_type al+      attrValue     = valueOf (getAttrName al) n+      normalizedVal = normalizeAttributeValue (Just attrDecl) attrValue++checkAttributeValue dtdPart attrDecl@(NTree (XDTD ATTLIST al) _) n@(NTree (XDTD ATTLIST al') _)+    = checkValue attrType dtdPart normalizedVal attrDecl n+      where+      attrType      = lookup1 a_type al+      attrValue     = lookup1 a_default al'+      normalizedVal = normalizeAttributeValue (Just attrDecl) attrValue++checkAttributeValue _ nd n+    = error ("checkAttributeValue: illegeal parameter:\n" ++ show nd ++ show n)+++-- |+-- Dispatches the attibute check by the attribute type.+--+--    * 1.parameter typ :  the attribute type+--+--    - 2.parameter dtdPart :  the children of the @DOCTYPE@ node+--+--    - 3.parameter attrValue :  the normalized attribute value to be checked+--+--    - 4.parameter attrDecl :  the declaration of the attribute from the DTD+--+--    - returns : a functions which takes an element (XTag or XDTD ATTLIST),+--                        checks if the attribute value meets the lexical constraints+--                        of its type and returns a list of errors++checkValue :: String -> XmlTrees -> String -> XmlTree -> XmlFilter+checkValue typ dtdPart attrValue attrDecl+	| typ == k_cdata	= none+	| typ == k_enumeration	= checkValueEnumeration attrDecl attrValue+	| typ == k_enitity	= checkValueEntity dtdPart attrDecl attrValue+	| typ == k_entities	= checkValueEntities dtdPart attrDecl attrValue+	| typ == k_id		= checkValueId attrDecl attrValue+	| typ == k_idref	= checkValueIdref attrDecl attrValue+	| typ == k_idrefs	= checkValueIdrefs attrDecl attrValue+	| typ == k_nmtoken	= checkValueNmtoken attrDecl attrValue+	| typ == k_nmtokens	= checkValueNmtokens attrDecl attrValue+	| typ == k_notation	= checkValueEnumeration attrDecl attrValue+	| otherwise		= error ("Attribute type " ++ show typ ++ " unknown.")++-- |+-- Checks the value of Enumeration attribute types. (3.3.1 \/ p.27 in Spec)+--+--    * 1.parameter attrDecl :  the declaration of the attribute from the DTD+--+--    - 2.parameter attrValue :  the normalized attribute value to be checked++checkValueEnumeration :: XmlTree -> String -> XmlFilter+checkValueEnumeration (NTree (XDTD ATTLIST al) cs) attrValue+    = if attrValue `elem` enumVals+      then none+      else err ("Attribute " ++ show (getAttrName al) ++ " for element " ++ show (getElemName al) +++                " must have a value from list "++ show enumVals ++ ".")+      where+      enumVals :: [String]+      enumVals = map (getEnumVal) cs++      getEnumVal :: XmlTree -> String+      getEnumVal (NTree (XDTD NAME al') _) = lookup1 a_name al'+      getEnumVal _                         = ""++checkValueEnumeration n _+    = error ("checkValueEnumeration: illegeal parameter:\n" ++ show n)+++-- |+-- Checks the value of ENTITY attribute types. (3.3.1 \/ p.26 in Spec)+--+--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node, to get the+--                    unparsed entity declarations+--+--    - 2.parameter attrDecl :  the declaration of the attribute from the DTD+--+--    - 3.parameter attrValue :  the normalized attribute value to be checked++checkValueEntity :: XmlTrees -> XmlTree -> String -> XmlFilter+checkValueEntity dtdPart (NTree (XDTD ATTLIST al) _) attrValue+    = if attrValue `elem` upEntities+      then none+      else err ("Entity " ++ show attrValue ++ " of attribute " ++ show (getAttrName al) +++                " for element " ++ show (getElemName al) ++ " is not unparsed. " +++                "The following unparsed entities exist: " ++ show upEntities ++ ".")+      where+      upEntities :: [String]+      upEntities = map (getEnumVal) (isUnparsedEntity $$ dtdPart)++      getEnumVal :: XmlTree -> String+      getEnumVal (NTree (XDTD ENTITY al') _) = lookup1 a_name al'+      getEnumVal _                           = ""+++checkValueEntity _ n _+    = error ("checkValueEntity: illegeal parameter:\n" ++ show n)+++-- |+-- Checks the value of ENTITIES attribute types. (3.3.1 \/ p.26 in Spec)+--+--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node, to get the+--                    unparsed entity declarations+--+--    - 2.parameter attrDecl :  the declaration of the attribute from the DTD+--+--    - 3.parameter attrValue :  the normalized attribute value to be checked++checkValueEntities ::XmlTrees -> XmlTree -> String -> XmlFilter+checkValueEntities dtdPart attrDecl@(NTree (XDTD ATTLIST al) _) attrValue+    = if null valueList+      then err ("Attribute " ++ show (getAttrName al) ++ " of element " +++                 show (getElemName al) ++ " must be one or more names.")+      else cat (map (checkValueEntity dtdPart attrDecl) valueList)+      where+      valueList = words attrValue++checkValueEntities _ n _+    = error ("checkValueEntities: illegeal parameter:\n" ++ show n)+++-- |+-- Checks the value of NMTOKEN attribute types. (3.3.1 \/ p.26 in Spec)+--+--    * 1.parameter attrDecl :  the declaration of the attribute from the DTD+--+--    - 2.parameter attrValue :  the normalized attribute value to be checked++checkValueNmtoken :: XmlTree -> String -> XmlFilter+checkValueNmtoken (NTree (XDTD ATTLIST al) _) attrValue+    = checkNmtoken parseRes+      where+      parseRes :: XmlTrees+      parseRes = parseNMToken "" (mkXTextTree attrValue)++      checkNmtoken :: XmlTrees -> XmlFilter+      checkNmtoken ((NTree (XError _ s) _):_)+          = err ("Attribute value " ++ show attrValue ++ " of attribute " ++ show (getAttrName al) +++	         " for element " ++ show (getElemName al) ++ " must be a name token, "++ (lines s) !! 1 ++".")++      checkNmtoken _ = none+++checkValueNmtoken n _+    = error ("checkValueNmtoken: illegeal parameter:\n" ++ show n)+++-- |+-- Checks the value of NMTOKENS attribute types. (3.3.1 \/ p.26 in Spec)+--+--    * 1.parameter attrDecl :  the declaration of the attribute from the DTD+--+--    - 2.parameter attrValue :  the normalized attribute value to be checked++checkValueNmtokens :: XmlTree -> String -> XmlFilter+checkValueNmtokens attrDecl@(NTree (XDTD ATTLIST al) _) attrValue+    = if null valueList+      then err ("Attribute "++ show (getAttrName al) ++" of element " +++                 show (getElemName al) ++ " must be one or more name tokens.")+      else cat (map (checkValueNmtoken attrDecl) valueList)+      where+      valueList = words attrValue++checkValueNmtokens n _+    = error ("checkValueNmtokens: illegeal parameter:\n" ++ show n)+++-- |+-- Checks the value of ID attribute types. (3.3.1 \/ p.25 in Spec)+--+--    * 1.parameter attrDecl :  the declaration of the attribute from the DTD+--+--    - 2.parameter attrValue :  the normalized attribute value to be checked++checkValueId :: XmlTree -> String -> XmlFilter+checkValueId attrDecl attrValue+    = checkForName "Attribute value" attrDecl attrValue+++-- |+-- Checks the value of IDREF attribute types. (3.3.1 \/ p.26 in Spec)+--+--    * 1.parameter attrDecl :  the declaration of the attribute from the DTD+--+--    - 2.parameter attrValue :  the normalized attribute value to be checked++checkValueIdref :: XmlTree -> String -> XmlFilter+checkValueIdref attrDecl attrValue+    = checkForName "Attribute value" attrDecl attrValue+++-- |+-- Checks the value of IDREFS attribute types. (3.3.1 \/ p.26 in Spec)+--+--    * 1.parameter attrDecl :  the declaration of the attribute from the DTD+--+--    - 2.parameter attrValue :  the normalized attribute value to be checked++checkValueIdrefs :: XmlTree -> String -> XmlFilter+checkValueIdrefs attrDecl attrValue+    = cat (map (checkValueIdref attrDecl) (words attrValue))++++-- -----------------------------------------------------------------------------+-- General helper functions for checking attribute values+--++-- |+-- Checks if the value of an attribute is a name.+--+--    * 1.parameter msg :  error message, should be "Entity" or "Attribute value"+--+--    - 2.parameter attrDecl :  the declaration of the attribute from the DTD+--+--    - 3.parameter attrValue :  the normalized attribute value to be checked++checkForName ::  String -> XmlTree -> String -> XmlFilter+checkForName msg (NTree (XDTD ATTLIST al) _) attrValue+    = checkName parseRes+      where+      parseRes :: XmlTrees+      parseRes = parseName "" (mkXTextTree attrValue)++      checkName :: XmlTrees -> XmlFilter+      checkName ((NTree (XError _ s) _):_)+          = err (msg ++ " "++ show attrValue ++" of attribute " ++ show (getAttrName al) +++	    " for element "++ show (getElemName al) ++" must be a name, " ++ (lines s) !! 1 ++ ".")++      checkName _ = none+++checkForName _ n _+    = error ("checkForName: illegeal parameter:\n" ++ show n)+++-- |+-- Gets the element name from an attribute list of an XDTD ATTLIST node.+--+--    * 1.parameter tag :  the attibute list of an XDTD ATTLIST+--+--    - returns : the element name++getElemName :: Attributes -> String+getElemName = lookup1 a_name+++-- |+-- Gets the attribute name from an attribute list of an XDTD ATTLIST node.+--+--    * 1.parameter tag :  the attibute list of an XDTD ATTLIST+--+--    - returns : the attribute name++getAttrName :: Attributes -> String+getAttrName = lookup1 a_value++++-- -----------------------------------------------------------------------------+++-- |+-- Normalizes an attribute value with respect to its type. (3.3.3 \/ p.29 in Spec)+--+--    * 1.parameter attrDecl :  the declaration of the attribute from the DTD. Expected+--                   is a list. If the list is empty, no declaration exists.+--+--    - 2.parameter value :  the attribute value to be normalized+--+--    - returns : the normalized value+--+normalizeAttributeValue :: Maybe XmlTree -> String -> String+normalizeAttributeValue (Just (NTree (XDTD ATTLIST al) _)) value+    = normalizeAttribute attrType+      where+      attrType = lookup1 a_type al++      normalizeAttribute :: String -> String+      normalizeAttribute typ+          | typ == k_cdata	= cdataNormalization value+          | otherwise		= otherNormalization value+++-- Attribute not declared in DTD, normalization as CDATA+normalizeAttributeValue _ value+    = cdataNormalization value+++-- ------------------------------------------------------------+-- Helper functions for normalization+++-- |+-- Normalization of CDATA attribute values.+-- is already done when parsing+-- during entity substituion for attribute values+cdataNormalization :: String -> String+cdataNormalization = id+++-- | Normalization of attribute values other than CDATA.+otherNormalization :: String -> String+otherNormalization = reduceWSSequences . stringTrim . cdataNormalization++-- | Reduce whitespace sequences to a single whitespace.+reduceWSSequences :: String -> String+reduceWSSequences str = unwords (words str)++
+ src/Text/XML/HXT/Validator/DTDValidation.hs view
@@ -0,0 +1,627 @@+-- |+-- This module provides functions for validating the DTD of XML documents+-- represented as XmlTree.++-- Unlike other popular XML validation tools the validation process returns+-- a list of errors instead of aborting after the first error was found.+++-- Unlike validation of the document, the DTD branch is traversed four times:+--+--  - Validation of Notations+--+--  - Validation of Unparsed Entities+--+--  - Validation of Element declarations+--+--  - Validation of Attribute declarations++-- Special namings in source code:+--+--  - nd - XDTD node+--+-- Author : .\\artin Schmidt+-- Version : $Id: DTDValidation.hs,v 1.1 2004/09/02 19:12:02 hxml Exp $++module Text.XML.HXT.Validator.DTDValidation+    ( removeDoublicateDefs+    , validateDTD+    )+where++import Text.XML.HXT.DOM.XmlTree++import Text.XML.HXT.Validator.AttributeValueValidation++++-- |+-- Validate a DTD.+--+--    - returns : a functions which takes the DTD subset of the XmlTree, checks+--                  if the DTD is valid and returns a list of errors++validateDTD :: XmlFilter+validateDTD dtdPart+    = {-# SCC "validateNotations" #-} validateNotations dtdPart'+      +++      {-# SCC "validateEntities" #-} validateEntities dtdPart' notationNames+      +++      {-# SCC "validateElements" #-} validateElements dtdPart' elemNames+      +++      {-# SCC "validateAttributes" #-} validateAttributes dtdPart' elemNames notationNames++      where+      dtdPart' = getChildren dtdPart++      notationNames :: [String]+      notationNames+          = getXTextValues (isNotation .> getDTDValue a_name $$ dtdPart')++      elemNames :: [String]+      elemNames+          = getXTextValues (isElement  .> getDTDValue a_name $$ dtdPart')+++++-- ------------------------------------------------------------++-- |+-- Returns a list of XText values.+--+--    * 1.parameter xtextList :  a list of XText nodes+--+--    - returns : the values of the XText nodes++getXTextValues :: XmlTrees -> [String]+getXTextValues+  = concatMap showT+  where+    showT (NTree (XText t) _) = [t]+    showT _                   = []+++-- ------------------------------------------------------------+++-- |+-- Validation of Notations, checks if all notation names are unique.+-- Validity constraint: Unique Notation Name (4.7 \/ p.44 in Spec)+--+--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node+--+--    - returns : a list of errors++validateNotations :: XmlTrees -> XmlTrees+validateNotations dtdPart+    = checkForUniqueNotation notations []+      where+      notations = isNotation $$ dtdPart++      checkForUniqueNotation :: XmlTrees -> [String] -> XmlTrees+      checkForUniqueNotation (x@(NTree (XDTD NOTATION al) _):xs) used+          = if name `elem` used+	    then err ("Notation "++ show name ++ " was already specified.") x+		 +++		 checkForUniqueNotation xs used++	    else checkForUniqueNotation xs (name : used)+	    where+	    name = lookup1 a_name al++      checkForUniqueNotation [] _ = []++      checkForUniqueNotation nd _+          = error ("checkForUniqueNotation: illegeal parameter:\n" ++ show nd)+++-- |+-- Validation of Entities.+--+-- 1. Issues a warning if entities are declared multiple times.+--+--    Optional warning: (4.2 \/ p.35 in Spec) +--+--+-- 2. Validates that a notation is declared for an unparsed entity.+--+--    Validity constraint: Notation Declared (4.2.2 \/ p.36 in Spec)+--+--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node+--+--    - 2.parameter notationNames :  list of all notation names declared in the DTD+--+--    - returns : a list of errors++validateEntities :: XmlTrees -> [String] -> XmlTrees+validateEntities dtdPart notationNames+    = checkForUniqueEntity entities []+      +++      checkNotationDecls notationNames upEntities++      where+      entities   = isEntity $$ dtdPart+      upEntities = isUnparsedEntity $$ dtdPart++      -- Check if entities are declared multiple times+      checkForUniqueEntity :: XmlTrees -> [String] -> XmlTrees+      checkForUniqueEntity (x@(NTree (XDTD ENTITY al) _):xs) used+          = if name `elem` used+	    then warn ("Entity "++ show name ++ " was already specified. " +++	               "First declaration will be used.") x+		 +++		 checkForUniqueEntity xs used++	    else checkForUniqueEntity xs (name : used)+	    where+	    name = lookup1 a_name al++      checkForUniqueEntity [] _ = []++      checkForUniqueEntity nd _+          = error ("checkForUniqueEntity: illegeal parameter:\n" ++ show nd)+++      -- Find unparsed entities for which no notation is specified+      checkNotationDecls :: [String] -> XmlTrees -> XmlTrees+      checkNotationDecls notationNames' upEntities'+	  = concatMap (checkNotationDecl) upEntities'+          where+          checkNotationDecl :: XmlTree -> XmlTrees+          checkNotationDecl n@(NTree (XDTD ENTITY al) _)+              = if (notationName al) `elem` notationNames'+	        then []+                else err ("The notation " ++ show (notationName al) ++ " must be declared " +++	                  "when referenced in the unparsed entity declaration for " +++		          show (upEntityName al) ++ ".") n+                where+		notationName = lookup1 k_ndata+                upEntityName = lookup1 a_name++          checkNotationDecl nd+              = error ("checkNotationDecl: illegeal parameter:\n" ++ show nd)++++-- |+-- Validation of Element declarations.+--+-- 1. Validates that an element is not declared multiple times.+--+--    Validity constraint: Unique Element Type Declaration (3.2 \/ p.21 in Spec) +--+--+-- 2. Validates that an element name only appears once in a mixed-content declaration.+--+--    Validity constraint: No Duplicate Types (3.2 \/ p.21 in Spec) +--+--+-- 3. Issues a warning if an element mentioned in a content model is not declared in the+--    DTD.+--+--    Optional warning: (3.2 \/ p.21 in Spec)+--+--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node+--+--    - 2.parameter elemNames :  list of all element names declared in the DTD+--+--    - returns : a list of errors+++validateElements :: XmlTrees -> [String] -> XmlTrees+validateElements dtdPart elemNames+    = checkForUniqueElement elements []+      +++      checkMixedContents mixedContentElems+      +++      checkContentModels elemNames elements++      where+      elements          = isElement $$ dtdPart+      mixedContentElems = isMixedContentElement $$ dtdPart+++      -- Validates that an element is not declared multiple times+      checkForUniqueElement :: XmlTrees -> [String] -> XmlTrees+      checkForUniqueElement (x@(NTree (XDTD ELEMENT al) _):xs) used+          = if name `elem` used+	    then err ("Element type " ++ show name +++		      " must not be declared more than once.") x+		 +++		 checkForUniqueElement xs used++	    else checkForUniqueElement xs (name : used)+	    where+	    name = lookup1 a_name al++      checkForUniqueElement [] _ = []++      checkForUniqueElement nd _+          = error ("checkForUniqueElement: illegeal parameter:\n" ++ show nd)+++      -- Validates that an element name only appears once in a mixed-content declaration+      checkMixedContents elems+          = concatMap (checkMixedContent) elems+	  where+          checkMixedContent (NTree (XDTD ELEMENT al) cs)+	      = checkMC (getChildren (head cs)) []+	      where+	      elemName = lookup1 a_name al++	      checkMC :: XmlTrees -> [String] -> XmlTrees+	      checkMC (x@(NTree (XDTD NAME al') _):xs) used+                  = if name `elem` used+	            then err ("The element type " ++ show name +++			      " was already specified in the mixed-content model of the element declaration " +++		              show elemName ++ ".") x+		         +++		         checkMC xs used++	            else checkMC xs (name : used)+	            where+	            name = lookup1 a_name al'++              checkMC [] _ = []++              checkMC nd _+	          = error ("checkMC: illegeal parameter:\n" ++ show nd)++	  checkMixedContent nd+	      = error ("checkMixedContent: illegeal parameter:\n" ++ show nd)+++      -- Issues a warning if an element mentioned in a content model is not+      -- declared in the DTD.+      checkContentModels names elems+          = concatMap checkContentModel elems+	  where+          checkContentModel :: XmlFilter+          checkContentModel (NTree (XDTD ELEMENT al) cs)+              = validateContent (lookup1 a_type al)+	      where+	      elemName = lookup1 a_name al++	      validateContent :: String -> XmlTrees+	      validateContent cm+	          | cm == v_children = checkContent (head cs)+	          | cm == v_mixed    = checkContent (head cs)+	          | otherwise        = []  -- no child elements to check++	      checkContent :: XmlFilter+	      checkContent n@(NTree (XDTD NAME al') _)+	          = if childElemName `elem` names+	            then []+	            else warn ("The element type "++ show childElemName +++		               ", used in content model of element "++ show elemName +++			       ", is not declared.") n+	            where+		    childElemName = lookup1 a_name al'++	      checkContent (NTree (XDTD CONTENT _) cs')+	          = concatMap (checkContent) cs'++	      checkContent nd+	          = error ("checkContent: illegeal parameter:\n" ++ show nd)++          checkContentModel nd+              = error ("checkContentModel: illegeal parameter:\n" ++ show nd)+++-- |+-- Validation of Attribute declarations.+--+-- (1) Issues a warning if an attribute is declared for an element type not itself+--    decared.+--+--    Optinal warning: (3.3 \/ p. 24 in Spec)+--+--+-- 2. Issues a warning if more than one definition is provided for the same+--    attribute of a given element type. Fist declaration is binding, later+--    definitions are ignored.+--+--    Optional warning: (3.3 \/ p.24 in Spec)+--+--+-- 3. Issues a warning if the same Nmtoken occures more than once in enumerated+--    attribute types of a single element type.+--+--    Optional warning: (3.3.1 \/ p.27 in Spec) +--+--+-- 4. Validates that an element type has not more than one ID attribute defined.+--+--    Validity constraint: One ID per Element Type (3.3.1 \/ p.26 in Spec) +--+--+-- 5. Validates that an element type has not more than one NOTATION attribute defined.+--+--    Validity constraint: One Notation per Element Type (3.3.1 \/ p.27 in Spec) +--+--+-- 6. Validates that an ID attributes has the type #IMPLIED or #REQUIRED.+--+--    Validity constraint: ID Attribute Default (3.3.1 \/ p.26 in Spec) +--+--+-- 7. Validates that all referenced notations are declared.+--+--    Validity constraint: Notation Attributes (3.3.1 \/ p.27 in Spec) +--+--+-- 8. Validates that notations are not declared for EMPTY elements.+--+--    Validity constraint: No Notation on Empty Element (3.3.1 \/p.27 in Spec) +--+--+-- 9. Validates that the default value matches the lexical constraints of it's type.+--+--    Validity constraint: Attribute default legal (3.3.2 \/ p.28 in Spec)+--+--+--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node+--+--    - 2.parameter elemNames :  list of all element names declared in the DTD+--+--    - 3.parameter notationNames :  list of all notation names declared in the DTD+--+--    - returns : a list of errors++validateAttributes :: XmlTrees -> [String] -> [String] -> XmlTrees+validateAttributes dtdPart elemNames notationNames+    = -- 1. Find attributes for which no elements are declared+      ((checkDeclaredElements elemNames) $$ attributes)+      +++      -- 2. Find attributes which are declared more than once+      (checkForUniqueAttributeDeclaration attributes [])+      +++      -- 3. Find enumerated attribute types which nmtokens are declared more than once+      (checkEnumeratedTypes+      `o`+      (isEnumAttrType `orElse` isNotationAttrType) $$ attributes)+      +++      -- 4. Validate that there exists only one ID attribute for an element+      (checkForUniqueId idAttributes [])+      +++      -- 5. Validate that there exists only one NOTATION attribute for an element+      (checkForUniqueNotation notationAttributes [])+      +++      -- 6. Validate that ID attributes have the type #IMPLIED or #REQUIRED+      (checkIdKindConstraint $$ idAttributes)+      +++      -- 7. Validate that all referenced notations are declared+      ((checkNotationDeclaration notationNames) $$ notationAttributes)+      +++      -- 8. Validate that notations are not declared for EMPTY elements+      ((checkNoNotationForEmptyElement+      	  (+    	      getXTextValues (getDTDValue a_name $$ (isEmptyElement $$ dtdPart))+       	  )+        ) $$ notationAttributes)+      +++      -- 9. Validate that the default value matches the lexical constraints of it's type+      ((checkDefaultValueTypes dtdPart) $$ (isDefaultAttrKind $$ attributes))++      where+      --------------------------------------------------------------------------+      -- helper functions+      attributes         = isAttlist $$ dtdPart+      idAttributes       = isIdAttrType $$ attributes+      notationAttributes = isNotationAttrType $$ attributes+++      elemName = lookup1 a_name+      attName  = lookup1 a_value++      --------------------------------------------------------------------------+      -- 1. Find attributes for which no elements are declared+      checkDeclaredElements :: [String] -> XmlFilter+      checkDeclaredElements elemNames' n@(NTree (XDTD ATTLIST al) _)+          = if (elemName al) `elem` elemNames'+	    then []+	    else warn ("The element type \""++ elemName al ++ "\" used in declaration "+++	               "of attribute \""++ attName al ++"\" is not declared.") n++      checkDeclaredElements _ nd+          = error ("checkDeclaredElements: illegeal parameter:\n" ++ show nd)++      --------------------------------------------------------------------------+      -- 2. Find attributes which are declared more than once+      checkForUniqueAttributeDeclaration :: XmlTrees -> [String] -> XmlTrees+      checkForUniqueAttributeDeclaration (x@(NTree (XDTD ATTLIST al) _):xs) used+          = if name `elem` used+	    then warn ("Attribute \""++ aname ++"\" for element type \""+++		        ename ++"\" is already declared. First "+++		        "declaration will be used.") x+		 +++		 checkForUniqueAttributeDeclaration xs used++	    else checkForUniqueAttributeDeclaration xs (name : used)+	    where+	    ename = elemName al+	    aname = attName al+	    name  = ename ++ "|" ++ aname++      checkForUniqueAttributeDeclaration [] _ = []++      checkForUniqueAttributeDeclaration nd _+          = error ("checkForUniqueAttributeDeclaration: illegeal parameter:\n" ++ show nd)+++      --------------------------------------------------------------------------+      -- 3. Find enumerated attribute types which nmtokens are declared more than once+      checkEnumeratedTypes :: XmlFilter+      checkEnumeratedTypes (NTree (XDTD ATTLIST al) cs)+          = checkForUniqueType cs []+	  where+	  checkForUniqueType :: XmlTrees -> [String] -> XmlTrees+          checkForUniqueType (x@(NTree (XDTD NAME al') _):xs) used+              = if nmtoken `elem` used+	        then warn ("Nmtoken \""++ nmtoken ++"\" should not "+++		        "occur more than once in attribute \""++ attName al +++			"\" for element \""++ elemName al ++ "\".") x+		     +++		     checkForUniqueType xs used++	        else checkForUniqueType xs (nmtoken : used)+	        where+	        nmtoken = lookup1 a_name al'++          checkForUniqueType [] _ = []++          checkForUniqueType nd _+              = error ("checkForUniqueType: illegeal parameter:\n" ++ show nd)++      checkEnumeratedTypes nd+          = error ("checkEnumeratedTypes: illegeal parameter:\n" ++ show nd)+++      --------------------------------------------------------------------------+      -- 4. Validate that there exists only one ID attribute for an element+      checkForUniqueId :: XmlTrees -> [String] -> XmlTrees+      checkForUniqueId (x@(NTree (XDTD ATTLIST al) _):xs) used+          = if ename `elem` used+	    then err ("Element \""++ ename ++ "\" already has attribute of type "+++		       "ID, another attribute \""++ attName al ++ "\" of type ID is "+++		       "not permitted.") x+		 +++		 checkForUniqueId xs used++	    else checkForUniqueId xs (ename : used)+	    where+	    ename = elemName al++      checkForUniqueId [] _ = []++      checkForUniqueId nd _+          = error ("checkForUniqueId: illegeal parameter:\n" ++ show nd)++      --------------------------------------------------------------------------+      -- 5. Validate that there exists only one NOTATION attribute for an element+      checkForUniqueNotation :: XmlTrees -> [String] -> XmlTrees+      checkForUniqueNotation (x@(NTree (XDTD ATTLIST al) _):xs) used+          = if ename `elem` used+	    then err ("Element \""++ elemName al ++ "\" already has attribute of type "+++		       "NOTATION, another attribute \""++ attName al ++ "\" of type NOTATION "+++		       "is not permitted.") x+		 +++		 checkForUniqueNotation xs used++	    else checkForUniqueNotation xs (ename : used)+	    where+	    ename = elemName al++      checkForUniqueNotation [] _ = []++      checkForUniqueNotation nd _+          = error ("checkForUniqueNotation: illegeal parameter:\n" ++ show nd)++      --------------------------------------------------------------------------+      -- 6. Validate that ID attributes have the type #IMPLIED or #REQUIRED+      checkIdKindConstraint :: XmlFilter+      checkIdKindConstraint nd@(NTree (XDTD ATTLIST al) _)+          = if (attKind == k_implied) || (attKind == k_required)+	    then []+	    else err ("ID attribute \""++ attName al ++"\" must have a declared default "+++	              "of \"#IMPLIED\" or \"REQUIRED\"") nd+	    where+	    attKind = lookup1 a_kind al++      checkIdKindConstraint nd+          = error ("checkIdKindConstraint: illegeal parameter:\n" ++ show nd)+++      --------------------------------------------------------------------------+      -- 7. Validate that all referenced notations are declared+      checkNotationDeclaration :: [String] -> XmlFilter+      checkNotationDeclaration notations (NTree (XDTD ATTLIST al) cs)+          = checkNotations $$ cs+	  where+	  checkNotations :: XmlFilter+	  checkNotations nd@(NTree (XDTD NAME al') _)+	      = if notation `elem` notations+	        then []+	        else err ("The notation \""++ notation ++"\" must be declared when "+++		          "referenced in the notation type list for attribute \""++ attName al +++			  "\" of element \""++ elemName al ++"\".") nd+                where+	        notation = lookup1 a_name al'++          checkNotations nd+              = error ("checkNotations: illegeal parameter:\n" ++ show nd)++      checkNotationDeclaration _ nd+          = error ("checkNotationDeclaration: illegeal parameter:\n" ++ show nd)++      --------------------------------------------------------------------------+      -- 8. Validate that notations are not declared for EMPTY elements+      checkNoNotationForEmptyElement :: [String] -> XmlFilter+      checkNoNotationForEmptyElement emptyElems nd@(NTree (XDTD ATTLIST al) _)+          = if (elemName al) `elem` emptyElems+	    then err ("Attribute \""++ attName al ++"\" of type NOTATION must not be "+++	              "declared on the element \""++ elemName al ++"\" declared EMPTY.")+		      nd+	    else []++      checkNoNotationForEmptyElement _ nd+          = error ("checkNoNotationForEmptyElement: illegeal parameter:\n" ++ show nd)++      --------------------------------------------------------------------------+      -- 9. Validate that default values meet the lexical constraints of the attribute types+      checkDefaultValueTypes :: XmlTrees -> XmlFilter+      checkDefaultValueTypes dtdPart' n@(NTree (XDTD ATTLIST _) _)+          = checkAttributeValue dtdPart' n n++      checkDefaultValueTypes _ nd+          = error ("checkDefaultValueTypes: illegeal parameter:\n" ++ show nd)++++-- ------------------------------------------------------------++-- |+-- Removes doublicate declarations from the DTD, which first declaration is+-- binding. This is the case for ATTLIST and ENTITY declarations.+--+--    - returns : A function that replaces the children of DOCTYPE nodes by a list+--               where all multiple declarations are removed.++removeDoublicateDefs :: XmlFilter+removeDoublicateDefs n@(NTree (XDTD DOCTYPE _) cs)+    = replaceChildren (removeDoubleDefs [] cs) n+      where+      removeDoubleDefs :: [String] -> XmlTrees -> XmlTrees+      removeDoubleDefs used (x@(NTree (XDTD ATTLIST al) _):xs)+          = if elemAttr `elem` used+            then removeDoubleDefs used xs+            else x+	         :+	         removeDoubleDefs (elemAttr : used) xs+            where+	    elemAttr = elemName ++ "|" ++ attrName+            attrName = lookup1 a_value al+            elemName = lookup1 a_name al+++      removeDoubleDefs used (x@(NTree (XDTD ENTITY al) _):xs)+          = if name `elem` used+            then removeDoubleDefs used xs+            else x+	         :+	         removeDoubleDefs (name : used) xs+            where+            name = lookup1 a_name al+++      removeDoubleDefs used (x:xs)+          = x : removeDoubleDefs used xs++      removeDoubleDefs _ []+          = []+++removeDoublicateDefs n+    = [n]+
+ src/Text/XML/HXT/Validator/DocTransformation.hs view
@@ -0,0 +1,235 @@+-- |+-- This module provides functions for transforming XML documents represented as+-- XmlTree with respect to its DTD.++-- Transforming an XML document with respect to its DTD means:+--+--  - add all attributes with default values+--+--  - normalize all attribute values+--+--  - sort all attributes in lexical order+--+++-- Note: Transformation should be started after validation.+++-- Before the document is validated, a lookup-table is build on the basis of+-- the DTD which maps element names to their transformation functions.+-- After this initialization phase the whole document is traversed in preorder+-- and every element is transformed by the XmlFilter from the lookup-table.++-- Special namings in source code:+--+--  - nd - XDTD node+--+--  - n  - XTag node+--+-- Author : .\\artin Schmidt+-- Version : $Id: DocTransformation.hs,v 1.1 2004/09/02 19:12:03 hxml Exp $++module Text.XML.HXT.Validator.DocTransformation+    ( transform+    )+where++import Text.XML.HXT.DOM.XmlTree++import Text.XML.HXT.Validator.AttributeValueValidation++import Data.Maybe+import Data.List++++-- |+-- Lookup-table which maps element names to their transformation functions. The+-- transformation functions are XmlFilters.++type TransEnvTable	= [TransEnv]+type TransEnv 		= (ElemName, TransFct)+type ElemName		= String+type TransFct		= XmlFilter+++-- ------------------------------------------------------------+++-- |+-- filter for transforming the document.+--+--    * 1.parameter dtdPart :  the DTD subset (Node @DOCTYPE@) of the XmlTree+--+--    - 2.parameter doc :  the document subset of the XmlTree+--+--    - returns : a list of errors++transform :: XmlTree -> XmlTree -> XmlTrees+transform dtdPart dom+    = traverseTree transTable dom+    where+    transTable = {-# SCC "buildAllTransFcts" #-} buildAllTransformationFunctions dtdPart++++-- |+-- Traverse the XmlTree in preorder.+--+--    * 1.parameter transEnv :  lookup-table which maps element names to their transformation functions+--+--    - returns : the whole transformed document++traverseTree :: TransEnvTable -> XmlFilter+traverseTree transEnv n@(NTree (XTag name _) cs)+    = replaceChildren (concatMap (traverseTree transEnv) cs) (head (transFct n))+      where+      transFct = case (lookup (tName name) transEnv) of+          Nothing -> this   -- element not in DTD, can't be transformed+	  Just f  -> f++traverseTree _ n = [n]+++-- |+-- Build all transformation functions.+--+--    * 1.parameter dtdPart :  the DTD subset, root node should be of type @DOCTYPE@+--+--    - returns : lookup-table which maps element names to their transformation functions++buildAllTransformationFunctions :: XmlTree -> TransEnvTable+buildAllTransformationFunctions dtdPart+    = buildTransRoot+      :+      -- construct the list of filters+      map (buildTransformationFunctions dtdNodes) (isElement $$ dtdNodes)+      where+      dtdNodes = getChildren dtdPart+++-- |+-- Build a transformation function for the document root. By root @\/@+-- is meant, which is the topmost dummy created by the parser. This function is only a+-- dummy, too.+--+--    * returns : entry for the lookup-table++buildTransRoot :: TransEnv+buildTransRoot = (t_root, this)++++-- |+-- Build transformation functions for an element.+--+--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node+--+--    * 1.parameter nd :  element declaration for which the transformation functions are+--                    created+--+--    - returns : entry for the lookup-table++buildTransformationFunctions :: XmlTrees -> XmlTree -> TransEnv++buildTransformationFunctions dtdPart n@(NTree (XDTD ELEMENT al) _)+    = (name, transFct)+    where+    name = lookup1 a_name al+    transFct = lexicographicAttributeOrder+               `o`+	       normalizeAttributeValues n dtdPart+	       `o`+	       setDefaultAttributeValues n dtdPart++buildTransformationFunctions _ n+    = error ("buildTransformationFunctions: illegeal parameter:\n" ++ show n)++++-- ------------------------------------------------------------+++-- |+-- Sort the attributes of an element in lexicographic order.+--+--    * returns : a function which takes an element (XTag), sorts its+--                  attributes in lexicographic order and returns the changed element++lexicographicAttributeOrder :: XmlFilter+lexicographicAttributeOrder+    = processAttrl sortAttrl+      where+      sortAttrl al+	  = map (al !!) ixs+	    where+	    ns  = map nameOf al+	    ixs = map snd . sort . zip ns $ [(0::Int)..]++-- |+-- Normalize attribute values.+--+--    * returns : a function which takes an element (XTag), normalizes its+--                  attribute values and returns the changed element++normalizeAttributeValues :: XmlTree -> XmlTrees -> XmlFilter+normalizeAttributeValues elemDescr@(NTree (XDTD ELEMENT _) _) dtdPart+    = processAttr normalizeAttr+      where+      elemName     = valueOfDTD a_name elemDescr+      declaredAtts = isAttlistOfElement elemName $$ dtdPart++      normalizeAttr :: XmlFilter+      normalizeAttr att+	  = normalizeAttrValue (if null attDescr+				then Nothing+				else Just (head attDescr)) att+	    where+	    attDescr = filter (\ x -> (valueOfDTD a_value x) == nameOf att) declaredAtts++      normalizeAttrValue :: Maybe XmlTree -> XmlFilter+      normalizeAttrValue descr+	  = modifyChildren ((modifyText (normalizeAttributeValue descr) $$) . xmlTreesToText)++normalizeAttributeValues n _+    = error ("normalizeAttributeValues: illegeal parameter:\n" ++ show n)++++-- |+-- Set default attribute values if they are not set.+--+--    * returns : a function which takes an element (XTag), adds missing attribute+--                  defaults and returns the changed element++setDefaultAttributeValues :: XmlTree -> XmlTrees -> XmlFilter+setDefaultAttributeValues elemDescr@(NTree (XDTD ELEMENT _) _) dtdPart+    = seqF (map setDefault defaultAtts)+      where+						-- select the element name from the dtd+      elemName = valueOfDTD a_name elemDescr++      defaultAtts = ( isFixedAttrKind		-- select attributes with default values+		      `orElse`+		      isDefaultAttrKind+		    )+                    $$+		    (isAttlistOfElement elemName $$ dtdPart)++      setDefault	:: XmlTree -> XmlFilter+      setDefault attrDescr			-- add the default attributes+	  = ( addAttr attName defaultValue	-- to tag nodes with missing attributes+	      `whenNot`+	      hasAttr attName+	    )+	    `when`+	    isXTag+	    where+	    attName      = valueOfDTD a_value   attrDescr+	    defaultValue = valueOfDTD a_default attrDescr+++setDefaultAttributeValues n _+    = error ("setDefaultAttributeValues: illegeal parameter:\n" ++ show n)++
+ src/Text/XML/HXT/Validator/DocValidation.hs view
@@ -0,0 +1,538 @@+-- |+-- This module provides functions for validating XML Documents represented as+-- XmlTree.++-- Unlike other popular XML validation tools the validation process returns+-- a list of errors instead of aborting after the first error was found.+++-- Before the document is validated, a lookup-table is build on the basis of+-- the DTD which maps element names to their validation functions.+-- After this initialization phase the whole document is traversed in preorder+-- and every element is validated by the XmlFilter from the lookup-table.++-- Special namings in source code:+--+--  - nd - XDTD node+--+--  - n  - XTag node+--+-- Author : .\\artin Schmidt+-- Version : $Id: DocValidation.hs,v 1.1 2004/09/02 19:12:03 hxml Exp $++module Text.XML.HXT.Validator.DocValidation+    ( validateDoc+    )+where++import Text.XML.HXT.DOM.XmlTree++import Text.XML.HXT.Validator.AttributeValueValidation+import Text.XML.HXT.Validator.XmlRE++import Data.Maybe++-- |+-- Lookup-table which maps element names to their validation functions. The+-- validation functions are XmlFilters.++type ValiEnvTable	= [ValiEnv]+type ValiEnv 		= (ElemName, ValFct)+type ElemName		= String+type ValFct		= XmlFilter++++-- ------------------------------------------------------------+++-- |+-- Validate a document.+--+--    * 1.parameter dtdPart :  the DTD subset (Node @DOCTYPE@) of the XmlTree+--+--    - 2.parameter doc :  the document subset of the XmlTree+--+--    - returns : a list of errors++validateDoc :: XmlTree -> XmlTree -> XmlTrees+validateDoc dtdPart doc+    = traverseTree valTable doc+    where+    valTable = {-# SCC "buildAllValFcts" #-} buildAllValidationFunctions dtdPart+++-- |+-- Traverse the XmlTree in preorder.+--+--    * 1.parameter valiEnv :  lookup-table which maps element names to their validation functions+--+--    - returns : list of errors++traverseTree :: ValiEnvTable -> XmlFilter+traverseTree valiEnv n@(NTree (XTag name _) cs)+    = (valFct n) ++ concatMap (traverseTree valiEnv) cs+      where+      valFct :: XmlFilter+      valFct+          = case (lookup (tName name) valiEnv) of+	    Nothing -> err ("Element " ++ show (tName name) ++ " not declared in DTD.")+	    Just f  -> f++traverseTree _ _ = []++++-- ------------------------------------------------------------+++-- |+-- Build all validation functions.+--+--    * 1.parameter dtdPart :  DTD subset, root node should be of type @DOCTYPE@+--+--    - returns : lookup-table which maps element names to their validation functions++buildAllValidationFunctions :: XmlTree -> ValiEnvTable+buildAllValidationFunctions dtdPart+    = buildValidateRoot dtdPart+      :+      -- construct a list of validation filters for all element declarations+      map (buildValidateFunctions dtdNodes) (isElement $$ dtdNodes)+      where+      dtdNodes = getChildren dtdPart+++-- |+-- Build a validation function for the document root. By root node @\/@+-- is meant, which is the topmost dummy created by the parser.+--+--    * 1.parameter dtdPart :  DTD subset, root node should be of type @DOCTYPE@+--+--    - returns : entry for the lookup-table++buildValidateRoot :: XmlTree -> ValiEnv+buildValidateRoot (NTree (XDTD DOCTYPE al) _)+    = (t_root, valFct)+      where+      name = lookup1 a_name al++      valFct :: XmlFilter+      valFct nd@(NTree (XTag _ _) cs)+          = if msg == ""+            then []+            else err ("Root Element must be " ++ show name ++ ". " ++ msg) nd+	    where+	    re = re_sym (name)+	    msg = checkRE (matches re cs)++      valFct n = error ("buildValidateRoot: illegeal parameter:\n" ++ show n)++buildValidateRoot nd+    = error ("buildValidateRoot: illegeal parameter:\n" ++ show nd)+++-- |+-- Build validation functions for an element.+--+--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node+--+--    - 2.parameter nd :  element declaration for which the validation functions are+--                   created+--+--    - returns : entry for the lookup-table++buildValidateFunctions :: XmlTrees -> XmlTree -> ValiEnv++buildValidateFunctions dtdPart nd@(NTree (XDTD ELEMENT al) _)+    = (elemName, valFct)+      where+      elemName = lookup1 a_name al++      valFct :: XmlFilter+      valFct = buildContentValidation nd+               ++++	       buildAttributeValidation dtdPart nd++buildValidateFunctions _ nd+    = error ("buildValidateFunctions: illegeal parameter:\n" ++ show nd)+++-- ------------------------------------------------------------+++-- |+-- Build validation functions for the content model of an element.+-- Validity constraint: Element Valid (3 \/ p.18 in Spec)+--+--    * 1.parameter nd :  element declaration for which the content validation functions+--                  are built+--+--    - returns : a function which takes an element (XTag), checks if its+--                  children match its content model and returns a list of errors++buildContentValidation :: XmlTree -> XmlFilter+buildContentValidation nd@(NTree (XDTD ELEMENT al) _)+    = contentValidation attrType nd+      where+      attrType = lookup1 a_type al+++      -- Delegates construction of the validation function on the basis of the+      -- content model type+      contentValidation :: String -> XmlTree -> XmlFilter+      contentValidation typ (NTree (XDTD ELEMENT _) cs)+          | typ == k_pcdata   = contentValidationPcdata+          | typ == k_empty    = contentValidationEmpty+          | typ == k_any      = contentValidationAny+          | typ == v_children = contentValidationChildren cs+          | typ == v_mixed    = contentValidationMixed cs+          | otherwise         = error ("contentValidation: unknown type: " ++ show typ)++      contentValidation _ nd'+          = error ("contentValidation: illegeal parameter:\n" ++ show nd')+++      -- Checks #PCDATA content models+      contentValidationPcdata :: XmlFilter+      contentValidationPcdata n@(NTree (XTag name _) cs)+          = if msg == ""+            then []+            else err ("The content of element "++ show (tName name) +++	              " must match (#PCDATA). "++ msg) n+	    where+	    re = re_rep (re_sym k_pcdata)+	    msg = checkRE (matches re cs)++      contentValidationPcdata n+          = error ("contentValidationPcdata: illegeal parameter:\n" ++ show n)+++      -- Checks EMPTY content models+      contentValidationEmpty :: XmlFilter+      contentValidationEmpty n@(NTree (XTag name _) cs)+          = if msg == ""+            then []+            else err ("The content of element " ++ show (tName name) +++	              " must match EMPTY. " ++ msg) n+	    where+	    re = re_unit+	    msg = checkRE (matches re cs)++      contentValidationEmpty n+          = error ("contentValidationEmpty: illegeal parameter:\n" ++ show n)+++      -- Checks ANY content models+      contentValidationAny :: XmlFilter+      contentValidationAny n@(NTree (XTag name _) cs)+          = if msg == ""+            then []+            else err ("The content of element " ++ show (tName name) +++	              " must match ANY. " ++ msg) n+	    where+	    re = re_rep (re_dot)+	    msg = checkRE (matches re cs)++      contentValidationAny n+          = error ("contentValidationAny: illegeal parameter:\n" ++ show n)+++      -- Checks "children" content models+      contentValidationChildren :: XmlTrees -> XmlFilter+      contentValidationChildren cm n@(NTree (XTag name _) cs)+          = if msg == ""+            then []+            else err ("The content of element " ++ show (tName name) +++	              " must match " ++ printRE re ++ ". " ++ msg) n+	    where+	    re = createRE (head cm)+	    msg = checkRE (matches re cs)++      contentValidationChildren _ n+          = error ("contentValidationChildren: illegeal parameter:\n" ++ show n)+++      -- Checks "mixed content" content models+      contentValidationMixed :: XmlTrees -> XmlFilter+      contentValidationMixed cm n@(NTree (XTag name _) cs)+          = if msg == ""+            then []+            else err ("The content of element "++ show (tName name) +++	              " must match " ++ printRE re ++ ". " ++ msg) n+	    where+	    re = re_rep (re_alt (re_sym k_pcdata) (createRE (head cm)))+	    msg = checkRE (matches re cs)++      contentValidationMixed _ n+          = error ("contentValidationMixed: illegeal parameter:\n" ++ show n)+++buildContentValidation nd+    = error ("buildContentValidation: illegeal parameter:\n" ++ show nd)++++-- |+-- Build a regular expression from the content model. The regular expression+-- is provided by the module XmlRE.+--+--    * 1.parameter nd :  node of the content model. Expected: @CONTENT@ or+--              @NAME@+--+--    - returns : regular expression of the content model++createRE ::  XmlTree -> RE String+createRE (NTree (XDTD CONTENT al) cs)+    = processModifier modifier+      where+      modifier = lookup1 a_modifier al+      kind     = lookup1 a_kind al++      processModifier :: String -> RE String+      processModifier m+          | m == v_plus	  = re_plus (processKind kind)+	  | m == v_star	  = re_rep  (processKind kind)+	  | m == v_option = re_opt  (processKind kind)+	  | m == v_null	  = processKind kind+	  | otherwise     = error ("Unknown modifier: " ++ show m)++      processKind :: String -> RE String+      processKind k+          | k == v_seq	  = makeSequence cs+	  | k == v_choice = makeChoice cs+	  | otherwise	  = error ("Unknown kind: " ++ show k)++      makeSequence :: XmlTrees -> RE String+      makeSequence []     = re_unit+      makeSequence (x:xs) = re_seq (createRE x) (makeSequence xs)++      makeChoice :: XmlTrees -> RE String+      makeChoice []       = re_zero ""+      makeChoice (x:xs)   = re_alt (createRE x) (makeChoice xs)++createRE (NTree (XDTD NAME al) _)+    = re_sym (lookup1 a_name al)++createRE nd+    = error ("createRE: illegeal parameter:\n" ++ show nd)++++-- ------------------------------------------------------------++++-- |+-- Build validation functions for the attributes of an element.+--+--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node+--+--    - 2.parameter nd :  element declaration for which the attribute validation functions+--                  are created+--+--    - returns : a function which takes an element (XTag), checks if its+--                  attributes are valid and returns a list of errors++buildAttributeValidation :: XmlTrees -> XmlTree -> XmlFilter+buildAttributeValidation dtdPart nd =+    noDoublicateAttributes+    ++++    checkNotDeclardAttributes attrDecls nd+    ++++    checkRequiredAttributes attrDecls nd+    ++++    checkFixedAttributes attrDecls nd+    ++++    checkValuesOfAttributes attrDecls dtdPart nd+    where+    attrDecls = isAttlist $$ dtdPart+++-- |+-- Validate that all attributes of an element are unique.+-- Well-formdness constraint: Unique AttSpec (3.1 \/ p.19 in Spec)+--+--    - returns : a function which takes an element (XTag), checks if its+--                  attributes are unique and returns a list of errors++noDoublicateAttributes :: XmlFilter+noDoublicateAttributes n@(NTree (XTag _ _) _)+    = doubles . reverse $ names+      where+      tagname = nameOf n+      names   = map nameOf . getAttrl $ n++      doubles :: [String] -> XmlTrees+      doubles []+	  = []+      doubles (n1:ns)+	  = ( if n1 `elem` ns+	      then err ("Attribute " ++ show n1 ++ " was already specified for element " ++ show tagname ++ ".") n+	      else []+	    ) ++ doubles ns++noDoublicateAttributes n+    = error ("noDoublicateAttributes: illegeal parameter:\n" ++ show n)+++-- |+-- Validate that all \#REQUIRED attributes are provided.+-- Validity constraint: Required Attributes (3.3.2 \/ p.28 in Spec)+--+--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node+--+--    - 2.parameter nd :  element declaration which attributes have to be checked+--+--    - returns : a function which takes an element (XTag), checks if all+--                  required attributes are provided and returns a list of errors++checkRequiredAttributes :: XmlTrees -> XmlTree -> XmlFilter+checkRequiredAttributes attrDecls (NTree (XDTD ELEMENT al) _)+    = checkRequired requiredAtts+      where+      elemName     = lookup1 a_name al+      requiredAtts = isRequiredAttrKind $$ (isAttlistOfElement elemName $$ attrDecls)+++      checkRequired :: XmlTrees -> XmlFilter+      checkRequired ((NTree (XDTD ATTLIST al') _):xs) n@(NTree (XTag name _) _)+          = if satisfies (hasAttr attName) n+	    then checkRequired xs n+	    else err ("Attribute " ++ show attName ++ " must be declared for element type " +++	             show (tName name) ++ ".") n+	         +++		 checkRequired xs n+	    where+	    attName = lookup1 a_value al'++      checkRequired [] _ = []++      checkRequired nd n+          = error ("checkRequired: illegeal parameter:\n" ++ show nd ++ show n)+++checkRequiredAttributes _ nd+    = error ("checkRequiredAttributes: illegeal parameter:\n" ++ show nd)++++-- |+-- Validate that \#FIXED attributes match the default value.+-- Validity constraint: Fixed Attribute Default (3.3.2 \/ p.28 in Spec)+--+--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node+--+--    - 2.parameter nd :  element declaration which attributes have to be checked+--+--    - returns : a function which takes an element (XTag), checks if all+--                  fixed attributes match the default value and returns a list of errors++checkFixedAttributes :: XmlTrees -> XmlTree -> XmlFilter+checkFixedAttributes attrDecls (NTree (XDTD ELEMENT al) _)+    = checkFixed fixedAtts+      where+      elemName  = lookup1 a_name al+      fixedAtts = isFixedAttrKind $$ (isAttlistOfElement elemName $$ attrDecls)+++      checkFixed :: XmlTrees -> XmlFilter+      checkFixed (x@(NTree (XDTD ATTLIST al') _):xs) n@(NTree (XTag name _) _)+          = if satisfies (hasAttr attName) n+	    then if attValue == fixedValue+	         then checkFixed xs n+	         else err ("Attribute " ++ show attName ++ " of element " ++ show (tName name) +++		           " with value " ++ show attValue ++ " must have a value of " +++			   show fixedValue ++ ".") n+	              +++		      checkFixed xs n+	    else checkFixed xs n+	    where+	    attName    = lookup1 a_value al'+	    fixedValue = normalizeAttributeValue (Just x) (lookup1 a_default al')+	    attValue   = normalizeAttributeValue (Just x) (valueOf attName n)++      checkFixed [] _ = []++      checkFixed nd n+          = error ("checkFixed: illegeal parameter:\n" ++ show nd ++ show n)+++checkFixedAttributes _ nd+    = error ("checkFixedAttributes: illegeal parameter:\n" ++ show nd)+++-- |+-- Validate that an element has no attributes which are not declared.+-- Validity constraint: Attribute Value Type (3.1 \/ p.19 in Spec)+--+--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node+--+--    - 2.parameter nd :  element declaration which attributes have to be checked+--+--    - returns : a function which takes an element (XTag), checks if all+--                  attributes are declared and returns a list of errors++checkNotDeclardAttributes :: XmlTrees -> XmlTree -> XmlFilter+checkNotDeclardAttributes attrDecls elemDescr+    = checkNotDeclared+      where+      elemName = valueOfDTD a_name elemDescr+      decls    = isAttlistOfElement elemName $$ attrDecls++      checkNotDeclared :: XmlFilter+      checkNotDeclared n+	  = ( isXTag+	      `guards`+	      cat (map (searchForDeclaredAtt elemName decls) (getAttrl n))+	    ) n++      searchForDeclaredAtt :: String -> XmlTrees -> XmlTree -> XmlFilter+      searchForDeclaredAtt name ((NTree (XDTD ATTLIST al') _):xs) att+          = if (lookup1 a_value al') == nameOf att+            then none+	    else searchForDeclaredAtt name xs att++      searchForDeclaredAtt name [] (NTree (XAttr attrName) _)+          = err ("Attribute " ++ show (aName attrName) ++ " of element " ++ show name ++ " is not declared in DTD.")++      searchForDeclaredAtt _ nd a+          = error ("searchForDeclaredAtt: illegeal paramter:\n" ++ show nd ++ show a)++-- |+-- Validate that the attribute value meets the lexical constraints of its type.+-- Validity constaint: Attribute Value Type (3.1 \/ p.19 in Spec)+--+--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node+--+--    - 2.parameter nd :  element declaration which attributes have to be checked+--+--    - returns : a function which takes an element (XTag), checks if all+--                  attributes meet the lexical constraints and returns a list of errors++checkValuesOfAttributes :: XmlTrees -> XmlTrees -> XmlTree -> XmlFilter+checkValuesOfAttributes attrDecls dtdPart elemDescr+    = checkValues+      where+      elemName = valueOfDTD a_name elemDescr+      decls    = isAttlistOfElement elemName $$ attrDecls++      checkValues :: XmlFilter+      checkValues n+          = ( isXTag+	      `guards`+	      cat (map (checkValue decls) (getAttrl n))+	    ) n++      checkValue :: XmlTrees -> XmlTree -> XmlFilter+      checkValue (attrDecl@(NTree (XDTD ATTLIST al') _):xs) att+          = if (lookup1 a_value al') == nameOf att+            then checkAttributeValue dtdPart attrDecl+	    else checkValue xs att++      checkValue [] _+          = none  -- undeclared attribute, reported by separate function++      checkValue n _+          = error ("checkValue: illegeal parameter:\n" ++ show n)+
+ src/Text/XML/HXT/Validator/IdValidation.hs view
@@ -0,0 +1,269 @@+-- |+-- This module provides functions for checking special ID/IDREF/IDREFS constraints.++-- Checking special ID/IDREF/IDREFS constraints means:+--+--  - checking that all ID values are unique.+--+--  - checking that all IDREF/IDREFS values match the value of some ID attribute+--+++-- ID-Validation should be started before or after validating the document.+++-- First all nodes with ID attributes are collected from the document, then+-- it is validated that values of ID attributes do not occure more than once.+-- During a second iteration over the document it is validated that there exists+-- an ID attribute value for IDREF/IDREFS attribute values.++-- Special namings in source code:+--+--  - nd - XDTD node+--+--  - n  - XTag node+--+-- Author : .\\artin Schmidt+-- Version : $Id: IdValidation.hs,v 1.1 2004/09/02 19:12:03 hxml Exp $++module Text.XML.HXT.Validator.IdValidation+    ( validateIds+    )+where+++import Text.XML.HXT.DOM.XmlTree+import Text.XML.HXT.Validator.AttributeValueValidation++++-- |+-- Lookup-table which maps element names to their validation functions. The+-- validation functions are XmlFilters.++type IdEnvTable		= [IdEnv]+type IdEnv 		= (ElemName, IdFct)+type ElemName		= String+type IdFct		= XmlFilter++++-- |+-- Perform the validation of the ID/IDREF/IDREFS constraints.+--+--    * 1.parameter dtdPart :  the DTD subset (Node @DOCTYPE@) of the XmlTree+--+--    - 2.parameter doc :  the document subset of the XmlTree+--+--    - returns : a list of errors++validateIds :: XmlTree -> XmlTree -> XmlTrees+validateIds dtdPart doc+    = {-# SCC "checkForUniqueIds" #-} checkForUniqueIds idNodeList dtdNodes+      +++      {-# SCC "checkIdReferences" #-} checkIdReferences idRefEnv doc+      where+      idEnv      = buildIdCollectorFcts dtdNodes+      idRefEnv   = buildIdrefValidationFcts dtdNodes idNodeList+      idNodeList = traverseTree idEnv doc+      dtdNodes   = getChildren dtdPart+++-- |+-- Traverse the XmlTree in preorder.+--+--    * 1.parameter idEnv :  lookup-table which maps element names to their validation functions+--+--    - returns : list of errors++traverseTree :: IdEnvTable -> XmlFilter+traverseTree idEnv n@(NTree (XTag name _) cs)+    = (idFct n) ++ concatMap (traverseTree idEnv) cs+      where+      idFct :: XmlFilter+      idFct+          = case (lookup (tName name) idEnv) of+	    Nothing -> none+	    Just f  -> f++traverseTree _ _ = []++++-- |+-- Returns the value of an element's ID attribute. The attribute name has to be+-- retrieved first from the DTD.+--+--    * 1.parameter dtdPart :  list of ID attribute definitions from the DTD+--+--    - 2.parameter n :  element which ID attribute value should be returned+--+--    - returns : normalized value of the ID attribute++getIdValue :: XmlTrees -> XmlTree -> String+getIdValue (x@(NTree (XDTD ATTLIST al) _):xs) n@(NTree (XTag name _al') _)+    = if (tName name) == elemName+      then attrValue+      else getIdValue xs n+      where+      elemName  = lookup1 a_name al+      attrName  = lookup1 a_value al+      attrValue = normalizeAttributeValue (Just x) (valueOf attrName n)++getIdValue _ _ = ""++++-- ------------------------------------------------------------+++-- |+-- Build collector functions which return XTag nodes with ID attributes from+-- a document.+--+--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node+--+--    - returns : lookup-table which maps element names to their collector function++buildIdCollectorFcts :: XmlTrees -> IdEnvTable+buildIdCollectorFcts dtdPart+    = map (buildIdCollectorFct) (isIdAttrType $$ dtdPart)+      where+      buildIdCollectorFct :: XmlTree -> IdEnv+      buildIdCollectorFct (NTree (XDTD ATTLIST al) _)+          = (elemName, hasAttr attrName)+            where+            elemName = lookup1 a_name al+            attrName = lookup1 a_value al++      buildIdCollectorFct nd+          = error ("buildIdCollectorFct: illegeal parameter:\n" ++ show nd)+++-- |+-- Build validation functions for checking if IDREF\/IDREFS values match a value+-- of some ID attributes.+--+--    * 1.parameter dtdPart :  the children of the @DOCTYPE@ node+--+--    - 2.parameter idNodeList :  list of all XTag nodes with ID attributes+--+--    - returns : lookup-table which maps element names to their validation function++buildIdrefValidationFcts :: XmlTrees -> XmlTrees -> IdEnvTable+buildIdrefValidationFcts dtdPart idNodeList+    = map buildElemValidationFct elements+      where+      elements    = isElement $$ dtdPart+      idValueList = getIdValues (isIdAttrType $$ dtdPart)++      getIdValues :: XmlTrees -> [String]+      getIdValues idAttrTypes+          = map (getIdValue idAttrTypes) idNodeList+++      buildElemValidationFct :: XmlTree -> IdEnv+      buildElemValidationFct (NTree (XDTD ELEMENT al) _)+          = (elemName, buildIdrefValidationFct idRefAttrTypes)+	  where+	  elemName = lookup1 a_name al+	  idRefAttrTypes = isIdRefAttrType $$ (isAttlistOfElement elemName) $$ dtdPart++      buildElemValidationFct nd+          = error ("buildIdrefValidationFct: illegeal parameter:\n" ++ show nd)+++      buildIdrefValidationFct :: XmlTrees -> XmlFilter+      buildIdrefValidationFct (nd@(NTree (XDTD ATTLIST al) _):xs)+          = checkIdref +++ buildIdrefValidationFct xs+            where+            attrName = lookup1 a_value al+	    attrType = lookup1 a_type al++            checkIdref :: XmlFilter+            checkIdref n@(NTree (XTag name _) _)+                = if satisfies (hasAttr attrName) n+	          then if attrType == k_idref+		       then checkValueDeclared n attrValue+		       else let valueList = words attrValue+		            in if null valueList+		               then err ("Attribute " ++ show attrName +++					 " of Element " ++ show (tName name) +++					 " must have at least one name.") n+		               else concatMap (checkValueDeclared n) (words attrValue)+	          else []+		  where+		  attrValue = normalizeAttributeValue (Just nd) (valueOf attrName n)++	    checkIdref _ = []+++	    checkValueDeclared :: XmlTree -> String -> XmlTrees+	    checkValueDeclared n@(NTree (XTag _ _) _) attrValue+	        = if attrValue `elem` idValueList+		  then []+		  else err ("An Element with identifier " ++ show attrValue +++		            " must appear in the document.") n++            checkValueDeclared _ _ = []++      buildIdrefValidationFct []+          = none++      buildIdrefValidationFct nd+          = error ("buildIdCollectorFct: illegeal parameter:\n" ++ show nd)+++-- ------------------------------------------------------------+++-- |+-- Validate that all ID values are unique within a document.+-- Validity constraint: ID (3.3.1 \/p. 25 in Spec)+--+--    * 1.parameter idNodeList :  list of all XTag nodes with ID attributes+--+--    - 2.parameter dtdPart :  the children of the @DOCTYPE@ node+--+--    - returns : a list of errors++checkForUniqueIds :: XmlTrees -> XmlTrees -> XmlTrees+checkForUniqueIds idNodeList dtdPart+    = checkForUniqueId idNodeList []+      where+      idAttrTypes = isIdAttrType $$ dtdPart++      checkForUniqueId :: XmlTrees -> [String] -> XmlTrees+      checkForUniqueId (x@(NTree (XTag name _) _):xs) used+          = if attrValue `elem` used+	    then err ("Attribute value " ++ show attrValue ++ " of type ID for element " +++	              show (tName name) ++ " must be unique within the document.") x+		 +++		 checkForUniqueId xs used++	    else checkForUniqueId xs (attrValue : used)+	    where+	    attrValue = getIdValue (isAttlistOfElement (tName name) $$ idAttrTypes) x++      checkForUniqueId _ _ = []++++-- |+-- Validate that all IDREF\/IDREFS values match the value of some ID attribute.+-- Validity constraint: IDREF (3.3.1 \/ p.26 in Spec)+--+--    * 1.parameter idRefEnv :  lookup-table which maps element names to their validation function+--+--    - 2.parameter doc :  the document to validate+--+--    - returns : a list of errors++checkIdReferences :: IdEnvTable -> XmlTree -> XmlTrees+checkIdReferences idRefEnv doc+    = traverseTree idRefEnv doc+++++
+ src/Text/XML/HXT/Validator/RE.hs view
@@ -0,0 +1,317 @@+-- |+-- A module for regular expression matching based on derivatives of regular expressions.+--+-- The code was taken from Joe English (<http://www.flightlab.com/~joe/sgml/validate.html>).+-- Tested and extended by Martin Schmidt.+--+-- Further references for the algorithm:+--+-- Janusz A. Brzozowski.+--+-- 	Derivatives of Regular Expressions. Journal of the ACM, Volume 11, Issue 4, 1964. +--+-- Mark Hopkins.+--+--	Regular Expression Package. Posted to comp.compilers, 1994.+--      Available per FTP at <ftp://iecc.com/pub/file/regex.tar.gz>.+--+-- Version : $Id: RE.hs,v 1.1 2004/09/02 19:12:03 hxml Exp $++module Text.XML.HXT.Validator.RE+    ( RE(..)++    , re_unit+    , re_zero+    , re_sym+    , re_rep+    , re_plus+    , re_opt+    , re_seq+    , re_alt+    , re_dot++    , checkRE+    , matches+    , nullable+    , printRE+  )+where++-- |+-- Data type for regular expressions.++data RE a =+	RE_ZERO	String		--' L(0)   = {} (empty set)+	| RE_UNIT		--' L(1)   = { [] } (empty sequence)+	| RE_SYM a		--' L(x)   = { [x] }+	| RE_DOT                --' accept any single symbol+	| RE_REP (RE a)		--' L(e*)  = { [] } `union` L(e+)+	| RE_PLUS (RE a)	--' L(e+)  = { x ++ y | x <- L(e), y <- L(e*) }+	| RE_OPT (RE a)		--' L(e?)  = L(e) `union` { [] }+	| RE_SEQ (RE a) (RE a)	--' L(e,f) = { x ++ y | x <- L(e), y <- L(f) }+	| RE_ALT (RE a) (RE a)	--' L(e|f) = L(e) `union` L(f)+	deriving (Show, Eq)++++-- ------------------------------------------------------------+-- Constructor functions to simplify regular expressions when constructing them.++-- |+-- Constructs a regular expression for an empty set.+--+--    * 1.parameter errMsg :  error message+--+--    - returns : regular expression for an empty set++re_zero			:: String -> RE a+re_zero m		= RE_ZERO m+++-- |+-- Constructs a regular expression for an empty sequence.+--+--    - returns : regular expression for an empty sequence++re_unit			:: RE a+re_unit			= RE_UNIT+++-- |+-- Constructs a regular expression for accepting a symbol+--+--    * 1.parameter sym :  the symbol to be accepted+--+--    - returns : regular expression for accepting a symbol++re_sym			:: a -> RE a+re_sym x		= RE_SYM x+++-- |+-- Constructs a regular expression for accepting any singel symbol+--+--    - returns : regular expression for accepting any singel symbol++re_dot			:: RE a+re_dot			= RE_DOT+++-- |+-- Constructs an optional repetition (*) of a regular expression+--+--    * 1.parameter re_a :  regular expression to be repeted+--+--    - returns : new regular expression++re_rep			:: RE a -> RE a+re_rep RE_UNIT		= RE_UNIT+re_rep (RE_ZERO _)	= RE_UNIT+re_rep e		= RE_REP e+++-- |+-- Constructs a repetition (+) of a regular expression+--+--    * 1.parameter re_a :  regular expression to be repeted+--+--    - returns : new regular expression++re_plus			:: RE a -> RE a+re_plus RE_UNIT		= RE_UNIT+re_plus (RE_ZERO m) 	= RE_ZERO m+re_plus e		= RE_PLUS e+++-- |+-- Constructs an option (?) of a regular expression+--+--    * 1.parameter re_a :  regular expression to be optional+--+--    - returns : new regular expression++re_opt			:: RE a -> RE a+re_opt RE_UNIT		= RE_UNIT+re_opt (RE_ZERO _)	= RE_UNIT+re_opt e		= RE_OPT e+++-- |+-- Constructs a sequence (,) of two regular expressions+--+--    * 1.parameter re_a :  first regular expression in sequence+--+--    - 2.parameter re_b :  second regular expression in sequence+--+--    - returns : new regular expression++re_seq			:: RE a -> RE a -> RE a+re_seq (RE_ZERO m) _	= RE_ZERO m+re_seq RE_UNIT f	= f+re_seq _ (RE_ZERO m)	= RE_ZERO m+re_seq e RE_UNIT	= e+re_seq e f		= RE_SEQ e f+++-- |+-- Constructs an alternative (|) of two regular expressions+--+--    * 1.parameter re_a :  first regular expression of alternative+--+--    - 2.parameter re_b :  second regular expression of alternative+--+--    - returns : new regular expression++re_alt			:: RE a -> RE a -> RE a+re_alt (RE_ZERO _) f	= f+re_alt e (RE_ZERO _)	= e+re_alt e f		= RE_ALT e f++++-- ------------------------------------------------------------+++-- |+-- Checks if a regular expression matches the empty sequence.+--+-- nullable e == [] `in` L(e)+--+-- This check indicates if a regular expression fits to a sentence or not.+--+--    * 1.parameter re :  regular expression to be checked+--+--    - returns : true if regular expression matches the empty sequence,+--                otherwise false++nullable		::  (Show a) => RE a -> Bool+nullable (RE_ZERO _)	= False+nullable RE_UNIT	= True+nullable (RE_SYM _)	= False+nullable (RE_REP _)	= True+nullable (RE_PLUS e)	= nullable e+nullable (RE_OPT _)	= True+nullable (RE_SEQ e f)	= nullable e && nullable f+nullable (RE_ALT e f)	= nullable e || nullable f+nullable RE_DOT		= True+++-- |+-- Derives a regular expression with respect to one symbol.+--+-- L(delta e x) = x \ L(e)+--+--    * 1.parameter re :  regular expression to be derived+--+--    - 2.parameter sym :  the symbol on which the regular expression is applied+--+--    - returns : the derived regular expression++delta :: (Eq a, Show a) => RE a -> a -> RE a+delta re x = case re of+	RE_ZERO	m		-> re_zero m+	RE_UNIT			-> re_zero ("Symbol " ++ show x ++ " unexpected.")+	RE_SYM sym+		| x == sym	-> re_unit+		| otherwise	-> re_zero ("Symbol " ++ show sym ++ " expected, but symbol " ++ show x ++ " found.")+	RE_REP e		-> re_seq (delta e x) (re_rep e)+	RE_PLUS e		-> re_seq (delta e x) (re_rep e)+	RE_OPT e		-> delta e x+	RE_SEQ e f+		| nullable e	-> re_alt (re_seq (delta e x) f) (delta f x)+		| otherwise	-> re_seq (delta e x) f+	RE_ALT e f		-> re_alt (delta e x) (delta f x)+	RE_DOT			-> re_unit+++-- |+-- Derives a regular expression with respect to a sentence.+--+--    * 1.parameter re :  regular expression+--+--    - 2.parameter s :  sentence to which the regular expression is applied+--+--    - returns : the derived regular expression++matches :: (Eq a, Show a) => RE a -> [a] -> RE a+matches e = foldl delta e+++-- |+-- Checks if an input matched a regular expression. The function should be+-- called after matches.+--+-- Was the sentence used in @matches@ in the language of the regular expression?+-- -> matches e s == s `in` L(e)?+--+--    * 1.parameter re :  the derived regular expression+--+--    - returns : empty String if input matched the regular expression, otherwise+--               an error message is returned++checkRE :: (Show a) => RE a -> String+checkRE (RE_UNIT)	= ""+checkRE (RE_ZERO m)	= m+checkRE re+	| nullable re	= ""+	| otherwise	= "Input must match " ++ printRE re++++-- ------------------------------------------------------------++++-- |+-- Constructs a string representation of a regular expression.+--+--    * 1.parameter re :  a regular expression+--+--    - returns : the string representation of the regular expression++printRE :: (Show a) => RE a -> String+printRE re'+    = "( " ++ printRE1 re' ++ " )"+      where+      printRE1 :: (Show a) => RE a -> String+      printRE1 re = case re of+	  RE_ZERO m				-> "ERROR: " ++ m+	  RE_UNIT				-> ""+	  RE_SYM sym				-> show sym+	  RE_DOT				-> "."+	  RE_REP e+	      | isSingle e			-> printRE1 e ++ "*"+	      | otherwise			-> "(" ++ printRE1 e ++ ")*"+	  RE_PLUS e+	      | isSingle e			-> printRE1 e ++ "+"+	      | otherwise			-> "(" ++ printRE1 e ++ ")+"+	  RE_OPT e+	      | isSingle e			-> printRE1 e ++ "?"+	      | otherwise			-> "(" ++ printRE1 e ++ ")?"+	  RE_SEQ e f+	      | isAlt e  && not (isAlt f)	-> "(" ++ printRE1 e ++ ") , " ++ printRE1 f+	      | not (isAlt e) && isAlt f	-> printRE1 e ++ " , (" ++ printRE1 f ++ ")"+	      | isAlt e  && isAlt f		-> "(" ++ printRE1 e ++ ") , (" ++ printRE1 f ++ ")"+	      | otherwise			-> printRE1 e ++ " , " ++ printRE1 f+	  RE_ALT e f+	      | isSeq e  && not (isSeq f)	-> "(" ++ printRE1 e ++ ") | " ++ printRE1 f+	      | not (isSeq e) && isSeq f	-> printRE1 e ++ " | (" ++ printRE1 f ++ ")"+	      | isSeq e  && isSeq f		-> "(" ++ printRE1 e ++ ") | (" ++ printRE1 f ++ ")"+	      | otherwise			-> printRE1 e ++ " | " ++ printRE1 f+++      isSingle :: RE a -> Bool+      isSingle (RE_ZERO _)    = True+      isSingle RE_UNIT        = True+      isSingle (RE_SYM _)     = True+      isSingle _              = False+++      isSeq :: RE a -> Bool+      isSeq (RE_SEQ _ _)      = True+      isSeq _                 = False+++      isAlt :: RE a -> Bool+      isAlt (RE_ALT _ _)      = True+      isAlt _                 = False
+ src/Text/XML/HXT/Validator/Validation.hs view
@@ -0,0 +1,65 @@+-- |+-- This module provides a state filter as a main function for validating XML documents.+--+-- The real validation is done with pure filters from module 'Text.XML.HXT.Validator.ValidationFilter'+--+-- Author : .\\artin Schmidt+-- Version : $Id: Validation.hs,v 1.2 2004/11/23 15:50:23 hxml Exp $++module Text.XML.HXT.Validator.Validation+    ( getValidatedDoc+    , module Text.XML.HXT.Validator.ValidationFilter+    )++where++import Text.XML.HXT.DOM.XmlTree+import Text.XML.HXT.DOM.XmlState++import Text.XML.HXT.Validator.ValidationFilter++import Text.XML.HXT.Parser.XmlOutput+    ( traceTree+    , traceSource+    , traceMsg+    )++-- ------------------------------------------------------------++-- |+-- monadic filter for validating and transforming a wellformed document.+--+-- the "main" function for validation.+--+-- the input tree must consist of a root node with a complete document and DTD.+-- Result is the single element list containing same tree but tranformed with respect to the DTD,+-- or, in case of errors, the root with an empty list of children++getValidatedDoc		:: XmlStateFilter state+getValidatedDoc+    = traceMsg 1 "validating document"+      .>>+      ( ( runValidation+	  .>>+	  traceTree+	  .>>+	  traceSource+	)+	`whenM` (isRoot .> getChildren)+      )+      where+      runValidation t+	  = do+	    issueError $$< res+	    ( if null errs+	      then ( traceMsg 1 "transforming validated document"+		     .>>+		     liftMf transform+		   )+	      else liftMf (setStatus c_err "validating document")+	      ) t+	    where+	    res  = validate t+	    errs = isXError .> neg isWarning $$ res++-- ------------------------------------------------------------
+ src/Text/XML/HXT/Validator/ValidationFilter.hs view
@@ -0,0 +1,126 @@+-- |+-- This module provides functions for validating XML documents represented as+-- XmlTree.++-- Unlike other popular XML validation tools the validation functions return+-- a list of errors instead of aborting after the first error was found.+-- +-- Note: The validation process has been split into validation and transformation!+--       If @validate@ did not report any errors, @transform@+--       should be called, to change the document the way a validating parser+--       is expected to do.++--+-- Author : .\\artin Schmidt+-- Version : $Id: ValidationFilter.hs,v 1.1 2004/11/23 15:50:23 hxml Exp $++module Text.XML.HXT.Validator.ValidationFilter+    ( getDTDSubset+    , validate+    , validateDTD+    , validateDoc+    , removeDoublicateDefs+    , transform+    )++where++import Text.XML.HXT.DOM.XmlTree++import qualified Text.XML.HXT.Validator.DTDValidation as DTDValidation+import qualified Text.XML.HXT.Validator.DocValidation as DocValidation+import qualified Text.XML.HXT.Validator.IdValidation as IdValidation+import qualified Text.XML.HXT.Validator.DocTransformation as DocTransformation++-- |+-- Main validation filter. Check if the DTD and the document are valid.+--+--+--    - returns : a function which expects a complete document as XmlTree input+--                     and returns a list of all errors found.++validate 	:: XmlFilter+validate	= validateDTD +++ validateDoc++-- |+-- Check if the DTD is valid.+--+--+--    - returns : a function which expects an XmlTree from the parser as input+--                     and returns a list of all errors found in the DTD.++validateDTD	:: XmlFilter+validateDTD+    = choice [ getDTDSubset+	       :-> DTDValidation.validateDTD+	     , this+               :-> err "Can't validate DTD: There is no DOCTYPE declaration in the document."+	     ]+-- |+-- Check if the document corresponds to the given DTD.+--+--+--    - returns : a function which expects a complete document as XmlTree input+--                     and returns a list of all errors found in the content part.++validateDoc	:: XmlFilter+validateDoc t+    = ( if null dtds+	then err "Can't validate document: There is no DOCTYPE declaration in the document."+	else ( DocValidation.validateDoc dtdPart+               ++++	       IdValidation.validateIds dtdPart+	     )+      ) $ t+      where+      dtds = getDTDSubset .> processBottomUp removeDoublicateDefs $ t+      dtdPart  = head dtds++-- |+-- filter for transforming a document with respect to the given DTD.+--+-- Validating parsers+-- are expected to  normalize attribute values and add default values.+-- This function should be called after a successful validation.+--+--+--    - returns : a function which expects a complete XML document tree+--                and returns the transformed XmlTree++transform	:: XmlFilter+transform+    = choice [ isRoot+               :-> transformDoc+	     , this+	       :-> fatal "Can't transform document: No document root given"+	     ]+      where+      transformDoc t+	  | null dtds+	      = this t+	  | otherwise+	      = DocTransformation.transform (head dtds) t+	  where+	  dtds = getDTDSubset .> processBottomUp removeDoublicateDefs $ t++-- |+-- Removes doublicate declarations from the DTD which first declaration is+-- binding. This is the case for ATTLIST and ENTITY declarations.+--+--+--    - returns : A function that replaces the children of DOCTYPE nodes by a list+--               where all multiple declarations are removed.++removeDoublicateDefs :: XmlFilter+removeDoublicateDefs+    = DTDValidation.removeDoublicateDefs++--+-- selects the DTD part of a document+-- but only, if there is more than the internal part for the 4 predefined XML entities++getDTDSubset	:: XmlFilter+getDTDSubset+    = getChildren .> isDoctype .> hasRootName+      where+      hasRootName = isOf (hasEntry a_name . attrlOfDTD)
+ src/Text/XML/HXT/Validator/XmlRE.hs view
@@ -0,0 +1,102 @@+-- |+-- A module for regular expression matching, adapted for XML DTDs.+--+-- This module is based on the module RE.+--+-- Author .\\artin Schmidt++-- Version : $Id: XmlRE.hs,v 1.1 2004/09/02 19:12:03 hxml Exp $++module Text.XML.HXT.Validator.XmlRE+    ( RE++    , checkRE+    , matches+    , printRE++    , re_unit+    , re_zero+    , re_sym+    , re_rep+    , re_plus+    , re_opt+    , re_seq+    , re_alt+    , re_dot+    )+where++import Text.XML.HXT.Validator.RE hiding (matches)++import Text.XML.HXT.DOM.XmlTree++import Text.XML.HXT.DOM.EditFilters+    ( removeComment+    , removeWhiteSpace+    )++-- |+-- Derives a regular expression with respect to a list of elements.+--+--    * 1.parameter re :  regular expression+--+--    - 2.parameter list :  list of elements to which the regular expression is applied+--+--    - returns : the derived regular expression++matches :: RE String -> XmlTrees -> RE String+matches re list+    = foldl delta re (removeUnimportantStuff $$ list)+      where+      removeUnimportantStuff :: XmlFilter+      removeUnimportantStuff = processBottomUp (removeWhiteSpace `o` removeComment)++++-- |+-- Derives a regular expression with respect to one element.+--+-- L(delta e x) = x \ L(e)+--+--    * 1.parameter re :  regular expression to be derived+--+--    - 2.parameter el :  the element on which the regular expression is applied+--+--    - returns : the derived regular expression++delta :: RE String -> XmlTree -> RE String+delta re el+    | not (allowed el) = re+    | otherwise        = case re of+        RE_ZERO m		 -> re_zero m+        RE_UNIT			 -> re_zero (elemName el ++" unexpected.")+        RE_SYM sym+    	    | sym == k_pcdata	 -> let node = getNode el in+	                            if ((isXTextNode node) || (isXCdataNode node))+				    then re_unit+				    else re_zero ("Character data expected, but "++ elemName el ++" found.")+       	    | expectedNode el sym -> re_unit+	    | otherwise           -> re_zero ("Element "++ show sym ++" expected, but "++ elemName el ++" found.")+        RE_REP e                  -> re_seq (delta e el) (re_rep e)+        RE_PLUS e                 -> re_seq (delta e el) (re_rep e)+        RE_OPT e                  -> delta e el+        RE_SEQ e f+       	    | nullable e          -> re_alt (re_seq (delta e el) f) (delta f el)+       	    | otherwise           -> re_seq (delta e el) f+        RE_ALT e f                -> re_alt (delta e el) (delta f el)+        RE_DOT                    -> re_unit++    where+    expectedNode :: XmlTree -> String -> Bool+    expectedNode (NTree (XTag n _) _) sym = (tName n) == sym+    expectedNode _ _			  = False++    elemName :: XmlTree -> String+    elemName (NTree (XTag n _) _)	= "element "++ show (tName n)+    elemName _				= "character data"++    allowed :: XmlTree -> Bool+    allowed (NTree (XTag _ _) _)	= True+    allowed (NTree (XText _) _)		= True+    allowed (NTree (XCdata _) _)	= True+    allowed _				= False
+ src/Text/XML/HXT/XPath.hs view
@@ -0,0 +1,17 @@+-- |
+-- This helper module exports elements from the basic libraries:
+-- XPathEval, XPathToString and XPathParser
+--
+-- Author : Torben Kuseler
+
+
+module Text.XML.HXT.XPath
+    ( module Text.XML.HXT.XPath.XPathEval
+    , module Text.XML.HXT.XPath.XPathToString
+    , module Text.XML.HXT.XPath.XPathParser
+    ) 
+where
+
+import Text.XML.HXT.XPath.XPathEval
+import Text.XML.HXT.XPath.XPathToString
+import Text.XML.HXT.XPath.XPathParser
+ src/Text/XML/HXT/XPath/NavTree.hs view
@@ -0,0 +1,72 @@+-- |+-- Navigable tree structure which allow a program to traverse+-- for XPath expressions+-- copied and modified from HXML (<http://www.flightlab.com/~joe/hxml/>)+--++module Text.XML.HXT.XPath.NavTree+    ( module Text.XML.HXT.XPath.NavTree+    , module Data.NavTree+    )+where++import Data.NavTree++import Text.XML.HXT.DOM.XmlTreeTypes+    ( XNode(..) ) --  QName(..) not yet used++import Text.XML.HXT.DOM.XmlTreeFunctions+    ( isRootNode, namespaceOf )++import Text.XML.HXT.DOM.XmlKeywords+   ( xmlnsNamespace )++import Data.Maybe+	+-- -----------------------------------------------------------------------------+-- functions for representing XPath axes. All axes except the namespace-axis are supported+++parentAxis		:: NavTree a -> [NavTree a]+parentAxis		= maybeToList . upNT++ancestorAxis		:: NavTree a -> [NavTree a]+ancestorAxis 		= \(NT _ u _ _) -> u		-- or: maybePlus upNT++ancestorOrSelfAxis	:: NavTree a -> [NavTree a]+ancestorOrSelfAxis	= \t@(NT _ u _ _) -> t:u	-- or: maybeStar upNT++childAxis		:: NavTree a -> [NavTree a]+childAxis		= maybe [] (maybeStar rightNT) . downNT++descendantAxis		:: NavTree a -> [NavTree a]+descendantAxis		= tail . preorderNT -- concatMap preorderNT . childAxis++descendantOrSelfAxis		:: NavTree a -> [NavTree a]+descendantOrSelfAxis	= preorderNT++followingSiblingAxis	:: NavTree a -> [NavTree a]+followingSiblingAxis	= maybePlus rightNT++precedingSiblingAxis	:: NavTree a -> [NavTree a]+precedingSiblingAxis	= maybePlus leftNT++selfAxis		:: NavTree a -> [NavTree a]+selfAxis		= wrap  where wrap x = [x]++followingAxis		:: NavTree a -> [NavTree a]+followingAxis		= preorderNT     `o'` followingSiblingAxis `o'` ancestorOrSelfAxis++precedingAxis		:: NavTree a -> [NavTree a]+precedingAxis		= revPreorderNT  `o'` precedingSiblingAxis `o'` ancestorOrSelfAxis+++attributeAxis :: NavTree XNode -> [NavTree XNode]+attributeAxis t@(NT (NTree x@(XTag _ alFull) _) a _ _)+    | not . isRootNode $ x+	= foldr (\ attr -> ((NT attr (t:a) [] []):)) [] al+    | otherwise+        = []+    where al = filter ((/= xmlnsNamespace) . namespaceOf) alFull++attributeAxis _ = []
+ src/Text/XML/HXT/XPath/XPathArithmetic.hs view
@@ -0,0 +1,166 @@+-- |+-- The module contains arithmetic calculations according the IEEE 754 standard+-- for plus, minus, unary minus, multiplication, modulo and division.+--+++module Text.XML.HXT.XPath.XPathArithmetic+    ( xPathMulti+    , xPathMod+    , xPathDiv+    , xPathAdd+    , xPathUnary+    )+where++import Text.XML.HXT.XPath.XPathDataTypes+++-- |+-- Unary minus: the value 'NaN' is not calculatable and returned unchanged,+-- all other values can be denied.+--++xPathUnary :: XPathFilter+xPathUnary (XPVNumber (Float f)) =  XPVNumber (Float (-f))+xPathUnary (XPVError e)          = XPVError e+xPathUnary (XPVNumber NaN)       = XPVNumber NaN+xPathUnary (XPVNumber Pos0)      = XPVNumber Neg0+xPathUnary (XPVNumber Neg0)      = XPVNumber Pos0+xPathUnary (XPVNumber PosInf)    = XPVNumber NegInf+xPathUnary (XPVNumber NegInf)    = XPVNumber PosInf+xPathUnary _                     = XPVError "Call to unaryEval without a number"+++-- |+-- Multiplication+--++xPathMulti :: Op -> XPathValue -> XPathFilter+xPathMulti _ (XPVNumber (Float a)) (XPVNumber (Float b))+    = XPVNumber (Float (a * b))+xPathMulti _ (XPVNumber NegInf) (XPVNumber (Float a))+    | a < 0     = XPVNumber PosInf+    | otherwise = XPVNumber NegInf+xPathMulti _ (XPVNumber PosInf) (XPVNumber (Float a))+    | a < 0     = XPVNumber NegInf+    | otherwise = XPVNumber PosInf+xPathMulti _ (XPVNumber (Float a)) (XPVNumber NegInf)+    | a < 0     = XPVNumber PosInf+    | otherwise = XPVNumber NegInf+xPathMulti _ (XPVNumber (Float a)) (XPVNumber PosInf)+    | a < 0     = XPVNumber NegInf+    | otherwise = XPVNumber PosInf+xPathMulti _ (XPVNumber Pos0) (XPVNumber (Float a))+    | a < 0     = XPVNumber Neg0+    | otherwise = XPVNumber Pos0+xPathMulti _ (XPVNumber Neg0) (XPVNumber (Float a))+    | a < 0     = XPVNumber Pos0+    | otherwise = XPVNumber Neg0+xPathMulti _ (XPVNumber (Float a)) (XPVNumber Pos0)+    | a < 0     = XPVNumber Neg0+    | otherwise = XPVNumber Pos0+xPathMulti _ (XPVNumber (Float a)) (XPVNumber Neg0)+    | a < 0     = XPVNumber Pos0+    | otherwise = XPVNumber Neg0+xPathMulti a b c = xPathSpez a b c+++-- |+-- Modulo+--++xPathMod :: Op -> XPathValue -> XPathFilter+xPathMod _ (XPVNumber (Float a)) (XPVNumber (Float b))+    | floatMod a b == 0 = XPVNumber Pos0+    | otherwise = XPVNumber (Float (floatMod a b))+      where+      floatMod x y+        | x/y >= 0 = x - y * fromInteger(floor (x / y))+        | otherwise =x - y * fromInteger(ceiling (x / y))++xPathMod _ (XPVNumber (Float a)) (XPVNumber NegInf)+    = XPVNumber (Float a)+xPathMod _ (XPVNumber (Float a)) (XPVNumber PosInf)+    = XPVNumber (Float a)+xPathMod _ (XPVNumber Neg0) (XPVNumber Pos0)+    = XPVNumber Neg0+xPathMod a b c = xPathSpez a b c+++-- |+-- Division: the divison-operator is not according the IEEE 754 standard,+-- it calculates the same as the % operator in Java and ECMAScript+--++xPathDiv :: Op -> XPathValue -> XPathFilter+xPathDiv _ (XPVNumber (Float a)) (XPVNumber (Float b))+    = XPVNumber (Float (a / b))+xPathDiv _ (XPVNumber NegInf) (XPVNumber (Float a))+    | a < 0     = XPVNumber PosInf+    | otherwise = XPVNumber NegInf+xPathDiv _ (XPVNumber PosInf) (XPVNumber (Float a))+    | a < 0     = XPVNumber NegInf+    | otherwise = XPVNumber PosInf+xPathDiv _ (XPVNumber (Float a)) (XPVNumber NegInf)+    | a < 0     = XPVNumber Pos0+    | otherwise = XPVNumber Neg0+xPathDiv _ (XPVNumber (Float a)) (XPVNumber PosInf)+    | a < 0     = XPVNumber Neg0+    | otherwise = XPVNumber Pos0+xPathDiv _ (XPVNumber Neg0) (XPVNumber (Float a))+    | a < 0     = XPVNumber Pos0+    | otherwise = XPVNumber Neg0+xPathDiv _ (XPVNumber (Float a)) (XPVNumber Neg0)+    | a < 0     = XPVNumber PosInf+    | otherwise = XPVNumber NegInf+xPathDiv _ (XPVNumber (Float a)) (XPVNumber Pos0)+    | a < 0     = XPVNumber NegInf+    | otherwise = XPVNumber PosInf+xPathDiv a b c  = xPathSpez a b c+++-- |+-- Plus and minus+--+--    1.parameter op :  plus or minus operation+--++xPathAdd :: Op -> XPathValue -> XPathFilter+xPathAdd Plus (XPVNumber (Float a)) (XPVNumber (Float b))+    = if a + b == 0+        then XPVNumber Pos0+        else XPVNumber (Float (a+b))+xPathAdd Minus (XPVNumber (Float a)) (XPVNumber (Float b))+    = if a - b == 0+        then XPVNumber Pos0+        else XPVNumber (Float (a-b))+xPathAdd _ (XPVNumber PosInf) (XPVNumber NegInf)  = XPVNumber NaN+xPathAdd _ (XPVNumber NegInf) (XPVNumber PosInf)  = XPVNumber NaN+xPathAdd _ (XPVNumber PosInf) _                   = XPVNumber PosInf+xPathAdd _ (XPVNumber NegInf) _                   = XPVNumber NegInf+xPathAdd _ _ (XPVNumber PosInf)                   = XPVNumber PosInf+xPathAdd _ _ (XPVNumber NegInf)                   = XPVNumber NegInf+xPathAdd _ (XPVNumber (Float a)) (XPVNumber Pos0) = XPVNumber (Float a)+xPathAdd op (XPVNumber Pos0) (XPVNumber (Float a))+    | op == Minus = XPVNumber (Float (-a))+    | otherwise   = XPVNumber (Float a)+xPathAdd op (XPVNumber Neg0) (XPVNumber (Float a))+    | op == Minus = XPVNumber (Float (-a))+    | otherwise   = XPVNumber (Float a)+xPathAdd _ (XPVNumber (Float a)) (XPVNumber Neg0) = XPVNumber (Float a)+xPathAdd _ (XPVNumber Neg0) (XPVNumber Pos0)      = XPVNumber Neg0+xPathAdd _ (XPVNumber Pos0) (XPVNumber Neg0)      = XPVNumber Neg0+xPathAdd _ (XPVNumber Neg0) (XPVNumber Neg0)      = XPVNumber Neg0+xPathAdd _ (XPVNumber Pos0) (XPVNumber Pos0)      = XPVNumber Pos0+xPathAdd a b c = xPathSpez a b c+++-- |+-- Identically results of the operators are combined to get+-- as few as possible combinations of the special IEEE values+--+xPathSpez :: Op -> XPathValue -> XPathFilter+xPathSpez _ (XPVError e) _ = XPVError e+xPathSpez _ _ (XPVError e) = XPVError e+xPathSpez _ _ _            = XPVNumber NaN
+ src/Text/XML/HXT/XPath/XPathDataTypes.hs view
@@ -0,0 +1,273 @@+-- |+-- The core data types of XPath.+-- The Type NodeSet is based on the module "NavTree" which was adapted from+-- HXML (<http://www.flightlab.com/~joe/hxml/>)+--+++module Text.XML.HXT.XPath.XPathDataTypes+    ( module Text.XML.HXT.XPath.XPathDataTypes+    , module Text.XML.HXT.XPath.NavTree+    )+where++import Text.XML.HXT.XPath.NavTree+import Text.XML.HXT.DOM.XmlTree++-- -----------------------------------------------------------------------------+--+-- Expr++-- | Represents expression+-- ++data Expr     = GenExpr Op [Expr]             -- ^ generic expression with an operator and one or more operands+              | PathExpr (Maybe Expr) (Maybe LocationPath)+	                                      -- ^ a path expression contains an optional filter-expression+					      -- or an optional locationpath. one expression is urgently+					      -- necessary, both are possible+              | FilterExpr [Expr]             -- ^ filter-expression with zero or more predicates+              | VarExpr VarName               -- ^ variable+              | LiteralExpr Literal           -- ^ string+              | NumberExpr XPNumber           -- ^ number+              | FctExpr FctName FctArguments  -- ^ a function with a name and an optional list of arguments+              deriving (Show, Eq)+++-- -----------------------------------------------------------------------------+--+-- Op++-- | Represents XPath operators++data Op       = Or | And | Eq | NEq | Less | Greater | LessEq+              | GreaterEq |Plus | Minus | Div | Mod | Mult| Unary | Union+              deriving (Show, Eq)+++-- -----------------------------------------------------------------------------+--+-- |+-- Represents a floating-point number according the IEEE 754 standard+--+-- The standard includes a special Not-a-Number (NaN) value,+-- positive and negative infinity, positive and negative zero.++data XPNumber = Float Float  -- ^ floating-point number+              | NaN          -- ^ not-a-number+              | NegInf       -- ^ negative infinity+              | Neg0         -- ^ negative zero+              | Pos0         -- ^ positive zero+              | PosInf       -- ^ positive infinity+++instance Show XPNumber+    where+    show NaN           = "NaN"+    show NegInf        = "-Infinity"+    show Neg0          = "0"+    show Pos0          = "0"+    show (Float f)     = show f+    show PosInf        = "Infinity"++++-- Negative zero is equal to positive zero,+-- equality test with NaN-value is always false+instance Eq XPNumber+    where+    NegInf  == NegInf  = True+    Pos0    == Neg0    = True+    Neg0    == Pos0    = True+    Pos0    == Pos0    = True+    Neg0    == Neg0    = True+    Float f == Float g = f == g+    PosInf  == PosInf  = True+    _       == _       = False+++instance Ord XPNumber+    where+    a       <= b       = (a < b) || (a == b)+    a       >= b       = (a > b) || (a == b)+    a       >  b       =  b < a++    NaN     < _        = False+    _       < NaN      = False++    _       < NegInf   = False+    NegInf  < _	       = True++    Neg0    < Neg0     = False+    Pos0    < Pos0     = False+    Pos0    < Neg0     = False+    Neg0    < Pos0     = False++    Neg0    < Float f  = 0 < f+    Pos0    < Float f  = 0 < f+    Float f < Neg0     = f < 0+    Float f < Pos0     = f < 0++    Float f < Float g  = f < g++    PosInf  < _        = False+    _       < PosInf   = True+++-- -----------------------------------------------------------------------------+-- | Represents location path+--+-- A location path consists of a sequence of one or more location steps.++data LocationPath = LocPath Path [XStep]+                  deriving (Show, Eq)+++-- -----------------------------------------------------------------------------                  +-- |+-- A location path is either a relative or an absolute path.++data Path         = Rel | Abs+                  deriving (Show, Eq)+					++-- | Represents location step+-- +-- A location step consists of an axis, a node-test and zero or more predicates.++data XStep        = Step AxisSpec NodeTest [Expr]+                  deriving (Show, Eq)++			+-- -----------------------------------------------------------------------------+--+-- AxisSpec++-- | Represents XPath axis++data AxisSpec     = Ancestor | AncestorOrSelf | Attribute | Child | Descendant  +                  | DescendantOrSelf | Following | FollowingSibling+                  | Namespace | Parent | Preceding | PrecedingSibling | Self+                  deriving (Show, Eq)+++-- -----------------------------------------------------------------------------+--+-- NodeTest++-- | Represents XPath node-tests++--data NodeTest     = NameTest Name     -- ^ name-test+data NodeTest     = NameTest QName     -- ^ name-test+                  | PI String           -- ^ processing-instruction-test with a literal argument+                  | TypeTest XPathNode  -- ^ all nodetype-tests+                  deriving (Show, Eq)++++++-- -----------------------------------------------------------------------------+--+-- XPathNode++-- | Represents nodetype-tests++data XPathNode    = XPNode            -- ^ all 7 nodetypes+                                      --  (root, element, attribute, namespace, pi, comment, text)+                  | XPCommentNode     -- ^ comment-nodes+                  | XPPINode          -- ^ processing-instruction-nodes+                  | XPTextNode        -- ^ text-nodes: cdata, character data+                  deriving (Show, Eq)+++-- -----------------------------------------------------------------------------+--+-- useful type definitions++type Name = (NamePrefix, LocalName)+type NamePrefix = String+type LocalName = String++-- | Variable name+type VarName      = Name++-- | a string+type Literal      = String					++-- | Function name+type FctName      = String++-- | Function arguments+type FctArguments = [Expr]++-- | Evaluation context+type Context      = (ConPos ,ConLen, ConNode)++-- | Context position+type ConPos       = Int++-- | Context length+type ConLen       = Int++-- | Context node+type ConNode      = NavXmlTree++++-- -----------------------------------------------------------------------------+--+-- XPathValue++-- | Represents XPath results++data XPathValue   = XPVNode NodeSet      -- ^ node-set+                  | XPVBool Bool         -- ^ boolean value+                  | XPVNumber XPNumber   -- ^ number according the IEEE 754 standard+                  | XPVString String     -- ^ string value+                  | XPVError String      -- ^ error message with text+                  deriving (Show, Eq, Ord)+++-- -----------------------------------------------------------------------------+--+-- Basic types for navigable tree and filters++-- | Node of navigable tree representation++type NavXmlTree   = NavTree XNode++-- | List of nodes of navigable tree representation++type NavXmlTrees  = [NavXmlTree]++-- | Type synonym for a list of navigable tree representation++type NodeSet      = NavXmlTrees++-- | A functions that takes a XPath result and returns a XPath result++type XPathFilter  = XPathValue -> XPathValue++++-- -----------------------------------------------------------------------------+--+-- Env++-- | XPath environment+--+-- All variables are stored in the environment,+-- each variable name is bound to a value.++type VarTab       = [(VarName, XPathValue)]+type KeyTab       = [(QName, String, NavXmlTree)]++type Env          = (VarTab, KeyTab)++varEnv :: Env+varEnv = ( [ (("", "name"), XPVNumber NaN) ]+	 , []+         )++-- -----------------------------------------------------------------------------
+ src/Text/XML/HXT/XPath/XPathEval.hs view
@@ -0,0 +1,626 @@+-- ------------------------------------------------------------++{- |+   Module     : Text.XML.HXT.XPath.XPathEval+   Copyright  : Copyright (C) 2006 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: XPathEval.hs,v 1.8 2006/10/12 11:51:29 hxml Exp $++   The core functions for evaluating the different types of XPath expressions.+   Each 'Expr'-constructor is mapped to an evaluation function.++-}++-- ------------------------------------------------------------++module Text.XML.HXT.XPath.XPathEval+    ( getXPath+    , getXPathWithNsEnv+    , getXPathSubTrees+    , getXPathSubTreesWithNsEnv+    , getXPathNodeSet+    , getXPathNodeSetWithNsEnv+    , evalExpr+    )+where++import Text.XML.HXT.XPath.XPathFct+import Text.XML.HXT.XPath.XPathDataTypes+import Text.XML.HXT.XPath.XPathArithmetic+    ( xPathAdd+    , xPathDiv+    , xPathMod+    , xPathMulti+    , xPathUnary+    )+import Text.XML.HXT.XPath.XPathParser+    ( parseXPath )++import Text.XML.HXT.XPath.XPathToString+    ( xPValue2XmlTrees )++import Text.XML.HXT.XPath.XPathToNodeSet+    ( xPValue2NodeSet+    , emptyNodeSet+    )++import Text.XML.HXT.DOM.XmlTree+import Text.XML.HXT.DOM.EditFilters+    ( canonicalizeForXPath )++import Text.ParserCombinators.Parsec+    ( runParser )++import Data.Maybe+    ( fromJust )++-- -----------------------------------------------------------------------------++-- |+-- Select parts of a document by an XPath expression.+--+-- The main filter for selecting parts of a document via XPath.+-- The string argument must be a XPath expression with an absolute location path,+-- the argument tree must be a complete document tree.+-- Result is a possibly empty list of XmlTrees forming the set of selected XPath values.+-- XPath values other than XmlTrees (numbers, attributes, tagnames, ...)+-- are convertet to text nodes.++getXPath		:: String -> XmlFilter+getXPath		= getXPathWithNsEnv []++-- |+-- Select parts of a document by a namespace aware XPath expression.+--+-- Works like 'getXPath' but the prefix:localpart names in the XPath expression+-- are interpreted with respect to the given namespace environment++getXPathWithNsEnv	:: NsEnv -> String -> XmlFilter+getXPathWithNsEnv	= getXPathValues xPValue2XmlTrees xPathErr canonicalizeForXPath++-- |+-- Select parts of an XML tree by a XPath expression.+--+-- The main filter for selecting parts of an arbitrary XML tree via XPath.+-- The string argument must be a XPath expression with an absolute location path,+-- There are no restrictions on the arument tree.+--+-- No canonicalization is performed before evaluating the query+--+-- Result is a possibly empty list of XmlTrees forming the set of selected XPath values.+-- XPath values other than XmlTrees (numbers, attributes, tagnames, ...)+-- are convertet to text nodes.++getXPathSubTrees	:: String -> XmlFilter+getXPathSubTrees	= getXPathSubTreesWithNsEnv []++-- | Same as 'getXPathSubTrees' but with namespace aware XPath expression++getXPathSubTreesWithNsEnv	:: NsEnv -> String -> XmlFilter+getXPathSubTreesWithNsEnv nsEnv xpStr t+    = getXPathValues xPValue2XmlTrees xPathErr this nsEnv xpStr $ addRoot t++-- | compute the node set of an XPath query++getXPathNodeSet		:: String -> XmlTree -> XmlNodeSet+getXPathNodeSet		= getXPathNodeSetWithNsEnv []++-- | compute the node set of a namespace aware XPath query++getXPathNodeSetWithNsEnv	:: NsEnv -> String -> XmlTree -> XmlNodeSet+getXPathNodeSetWithNsEnv nsEnv xpStr t+    = getXPathValues xPValue2NodeSet (const (const emptyNodeSet)) this nsEnv xpStr $ addRoot t++-- | parse xpath, evaluate xpath expr and prepare results++getXPathValues	:: (XPathValue -> a) -> (String -> String -> a) -> XmlFilter -> NsEnv -> String -> XmlTree -> a+getXPathValues cvRes cvErr canonicalize nsEnv xpStr t+    = case (runParser parseXPath nsEnv "" xpStr) of+      Left parseError+	  -> cvErr xpStr (show parseError)+      Right xpExpr+	  -> evalXP xpExpr+    where+    evalXP xpe+	= cvRes xpRes+	where+	idAttr	= (("", "idAttr"), idAttributesToXPathValue . getIdAttributes $ t)+	navTD	= (ntree . head . canonicalize) t+	xpRes	= evalExpr (idAttr:(getVarTab varEnv),[]) (1, 1, navTD) xpe (XPVNode [navTD])++addRoot	:: XmlTree -> XmlTree+addRoot t+    | null . isRoot $ t+	= head . rootTag [] [this] $ t+    | otherwise+	= t++xPathErr	:: String -> String -> [XmlTree]+xPathErr xpStr parseError+    = xerr ("Syntax error in XPath expression " ++ show xpStr ++ ": " ++ show parseError)++-- |+-- The main evaluation entry point. +-- Each XPath-'Expr' is mapped to an evaluation function. The 'Env'-parameter contains the set of global variables+-- for the evaluator, the 'Context'-parameter the root of the tree in which the expression is evaluated.+-- ++evalExpr :: Env -> Context -> Expr -> XPathFilter+evalExpr env cont (GenExpr Or ex)+    = boolEval env cont Or ex+evalExpr env cont (GenExpr And ex)+    = boolEval env cont And ex+    +evalExpr env cont (GenExpr Eq ex)+    = relEqEval env cont Eq . evalExprL env cont ex+evalExpr env cont (GenExpr NEq ex)+    = relEqEval env cont NEq . evalExprL env cont ex+evalExpr env cont (GenExpr Less ex)+    = relEqEval env cont Less . evalExprL env cont ex+evalExpr env cont (GenExpr LessEq ex)+    = relEqEval env cont LessEq . evalExprL env cont ex+evalExpr env cont (GenExpr Greater ex)+    = relEqEval env cont Greater . evalExprL env cont ex+evalExpr env cont (GenExpr GreaterEq ex)+    = relEqEval env cont GreaterEq . evalExprL env cont ex++evalExpr env cont (GenExpr Plus ex)+    = numEval xPathAdd Plus . toXValue xnumber cont env . evalExprL env cont ex+evalExpr env cont (GenExpr Minus ex)+    = numEval xPathAdd Minus . toXValue xnumber cont env . evalExprL env cont ex+evalExpr env cont (GenExpr Div ex)+    = numEval xPathDiv Div . toXValue xnumber cont env . evalExprL env cont ex+evalExpr env cont (GenExpr Mod ex)+    = numEval xPathMod Mod . toXValue xnumber cont env . evalExprL env cont ex+evalExpr env cont (GenExpr Mult ex)+    = numEval xPathMulti Mult . toXValue xnumber cont env . evalExprL env cont ex++evalExpr env cont (GenExpr Unary ex)+    = xPathUnary . xnumber cont env . evalExprL env cont ex++evalExpr env cont (GenExpr Union ex)+    = unionEval . evalExprL env cont ex++evalExpr env cont (FctExpr name args)+    = fctEval env cont name args++evalExpr env _ (PathExpr Nothing (Just lp))+    = locPathEval env lp+evalExpr env cont (PathExpr (Just fe) (Just lp))+    = locPathEval env lp . evalExpr env cont fe++evalExpr env cont (FilterExpr ex)+    = filterEval env cont ex+evalExpr env _ ex+    = evalSpezExpr env ex++++evalExprL :: Env -> Context -> [Expr] -> XPathValue -> [XPathValue]+evalExprL env cont ex ns+    = map (\e -> evalExpr env cont e ns) ex++evalSpezExpr :: Env -> Expr -> XPathFilter+evalSpezExpr _ (NumberExpr (Float 0)) _+    = XPVNumber Pos0+evalSpezExpr _ (NumberExpr (Float f)) _+    = XPVNumber (Float f)+evalSpezExpr _ (LiteralExpr s) _+    = XPVString s+evalSpezExpr env (VarExpr name) v+    = getVariable env name v+evalSpezExpr _ _ _+    = XPVError "Call to evalExpr with a wrong argument"+++-- -----------------------------------------------------------------------------++-- |+-- filter for evaluating a filter-expression+filterEval :: Env -> Context -> [Expr] -> XPathFilter+filterEval env cont (prim:predicates) ns+    = case evalExpr env cont prim ns of+        new_ns@(XPVNode _) -> evalPredL env predicates new_ns+        _                  -> XPVError "Return of a filterexpression is not a nodeset"+filterEval _ _ _ _+    = XPVError "Call to filterEval without an expression"++++-- |+-- returns the union of its arguments, the arguments have to be node-sets.+unionEval :: [XPathValue] -> XPathValue+unionEval+    = createDocumentOrder . remDups . unionEval'+      where+      unionEval' (e@(XPVError _):_)           = e+      unionEval' (_:e@(XPVError _):_)         = e+      unionEval' [n@(XPVNode _)]              = n+      unionEval' ((XPVNode n):(XPVNode m):xs) = unionEval ( (XPVNode (n ++ m)):xs)+      unionEval' _                            = XPVError "The value of a union ( | ) is not a nodeset"++++-- |+-- Equality or relational test for node-sets, numbers, boolean values or strings,+-- each computation of two operands is done by relEqEv'+relEqEval :: Env -> Context -> Op -> [XPathValue] -> XPathValue+relEqEval env cont op+    = foldl1 (relEqEv' env cont op)++    ++relEqEv' :: Env -> Context -> Op -> XPathValue -> XPathFilter+relEqEv' _ _ _ e@(XPVError _) _ = e+relEqEv' _ _ _ _ e@(XPVError _) = e++-- two node-sets+relEqEv' env cont op a@(XPVNode _) b@(XPVNode _)+    = relEqTwoNodes env cont op a b++-- one node-set+relEqEv' env cont op a b@(XPVNode _)+    = relEqOneNode env cont (fromJust $ getOpFct op) a b+relEqEv' env cont op a@(XPVNode _) b+    = relEqOneNode env cont (flip $ fromJust $ getOpFct op) b a+++--  test without a node-set and equality or not-equality operator+relEqEv' env cont Eq a b  = eqEv env cont (==) a b+relEqEv' env cont NEq a b = eqEv env cont (/=) a b++-- test without a node-set and less, less-equal, greater or greater-equal operator+relEqEv' env cont op a b+    = XPVBool ((fromJust $ getOpFct op) (toXNumber a) (toXNumber b))+      where+      toXNumber x = xnumber cont env [x]++++-- |+-- Equality or relational test for two node-sets.+-- The comparison will be true if and only if there is a node in the first node-set+-- and a node in the second node-set such that the result of performing the+-- comparison on the string-values of the two nodes is true+relEqTwoNodes :: Env -> Context -> Op -> XPathValue -> XPathFilter+relEqTwoNodes _ _ op (XPVNode ns) (XPVNode ms)+    = XPVBool (foldr  (\n -> (any (fct op n) (getStrValues ms) ||)) False ns)+      where+      fct op' n'   = (fromJust $ getOpFct op') (stringValue n')+      getStrValues = map stringValue+relEqTwoNodes _ _ _ _ _+    = XPVError "Call to relEqTwoNodes without a nodeset"+++-- |+-- Comparison between a node-set and different type.+-- The node-set is converted in a boolean value if the second argument is of type boolean.+-- If the argument is of type number, the node-set is converted in a number, otherwise it is converted+-- in a string value.+relEqOneNode :: Env -> Context -> (XPathValue -> XPathValue -> Bool) -> XPathValue -> XPathFilter+relEqOneNode env cont fct arg (XPVNode ns)+    = XPVBool (any  (fct arg) (getStrValues arg ns))+      where+      getStrValues arg' = map ((fromJust $ getConvFct arg') cont env . wrap) . map stringValue+      wrap x = [x]+relEqOneNode _ _ _ _ _+    = XPVError "Call to relEqOneNode without a nodeset"++++-- |+-- No node-set is involved and the operator is equality or not-equality.+-- The arguments are converted in a common type. If one argument is a boolean value+-- then it is the boolean type. If a number is involved, the arguments have to converted in numbers,+-- else the string type is the common type.+eqEv :: Env -> Context -> (XPathValue -> XPathValue -> Bool) -> XPathValue -> XPathFilter+eqEv env cont fct f@(XPVBool _) g+    = XPVBool (f `fct` xboolean cont env [g])+eqEv env cont fct f g@(XPVBool _)+    = XPVBool (xboolean cont env [f] `fct` g)++eqEv env cont fct f@(XPVNumber _) g+    = XPVBool (f `fct` xnumber cont env [g])+eqEv env cont fct f g@(XPVNumber _)+    = XPVBool (xnumber cont env [f] `fct` g)++eqEv env cont fct f g+    = XPVBool (xstring cont env [f] `fct` xstring cont env [g])+++getOpFct :: Op -> Maybe (XPathValue -> XPathValue -> Bool)+getOpFct Eq        = Just (==)+getOpFct NEq       = Just (/=)+getOpFct Less      = Just (<)+getOpFct LessEq    = Just (<=)+getOpFct Greater   = Just (>)+getOpFct GreaterEq = Just (>=)+getOpFct _         = Nothing++++-- |+-- Filter for accessing the root element of a document tree+getRoot :: XPathFilter+getRoot (XPVNode (n:_))+    = XPVNode [getRoot' n]+      where+      getRoot' tree+        = case upNT tree of+            Nothing -> tree+            Just t -> getRoot' t+getRoot _+    = XPVError "Call to getRoot without a nodeset"++++-- |+-- Filter for accessing all nodes of a XPath-axis+--+--    * 1.parameter as :  axis specifier+--+getAxisNodes :: AxisSpec ->  XPathFilter+getAxisNodes as (XPVNode ns)+    = XPVNode (concat $ map (fromJust $ lookup as axisFctL) ns)+getAxisNodes _ _+    = XPVError "Call to getAxis without a nodeset"++++-- |+-- Axis-Function-Table.+-- Each XPath axis-specifier is mapped to the corresponding axis-function+axisFctL :: [(AxisSpec, (NavXmlTree -> NavXmlTrees))]+axisFctL = [ (Ancestor, ancestorAxis)+           , (AncestorOrSelf, ancestorOrSelfAxis)+           , (Attribute, attributeAxis)+           , (Child, childAxis)+           , (Descendant, descendantAxis)+           , (DescendantOrSelf, descendantOrSelfAxis)+           , (Following, followingAxis)+           , (FollowingSibling, followingSiblingAxis)+           , (Parent, parentAxis)+           , (Preceding, precedingAxis)+           , (PrecedingSibling, precedingSiblingAxis)+           , (Self, selfAxis)+           ]+++-- |+-- evaluates a location path,+-- evaluation of an absolute path starts at the document root, +-- the relative path at the context node+locPathEval :: Env -> LocationPath -> XPathFilter+locPathEval env (LocPath Rel steps)+    = evalSteps env steps+locPathEval env (LocPath Abs steps)+    = evalSteps env steps . getRoot+++++evalSteps :: Env -> [XStep] -> XPathFilter+evalSteps env steps ns+    = foldl (evalStep env) ns steps+++-- |+-- evaluate a single XPath step+-- namespace-axis is not supported+evalStep :: Env -> XPathValue -> XStep -> XPathValue+evalStep _   _  (Step Namespace _ _)  = XPVError "namespace-axis not supported"+evalStep _   ns (Step Attribute nt _) = evalAttr nt (getAxisNodes Attribute ns)+evalStep env ns (Step axisSpec nt pr) = evalStep' env pr nt (getAxisNodes axisSpec ns)++++evalAttr :: NodeTest -> XPathFilter+evalAttr nt (XPVNode ns)+    = XPVNode (foldr (\n -> (evalAttrNodeTest nt n ++)) [] ns)+evalAttr _ _+    = XPVError "Call to evalAttr without a nodeset"+++evalAttrNodeTest :: NodeTest -> NavXmlTree -> NavXmlTrees+evalAttrNodeTest (NameTest (QN _pre local uri)) ns@(NT (NTree (XAttr (QN _pre1 local1 uri1)) _) _ _ _)+    = if ( ( uri == uri1               && local == local1) || +           ((uri == "" || uri == uri1) && local == "*") +         ) then [ns] else [] +evalAttrNodeTest (TypeTest XPNode) ns@(NT (NTree (XAttr _) _) _ _ _)+    = [ns]+evalAttrNodeTest _ _+    = []++evalStep' :: Env -> [Expr] -> NodeTest -> XPathFilter+evalStep' env pr nt+    = evalPredL env pr . nodeTest nt+++evalPredL :: Env -> [Expr] -> XPathFilter+evalPredL env pr n@(XPVNode ns)+    = remDups $ foldl (evalPred env 1 (length ns)) n pr+evalPredL _ _ _+    = XPVError "Call to evalPredL without a nodeset"+++evalPred :: Env -> Int -> Int -> XPathValue -> Expr -> XPathValue+evalPred _ _ _ ns@(XPVNode []) _ = ns+evalPred env pos len (XPVNode (x:xs)) ex+    = case testPredicate env (pos, len, x) ex (XPVNode [x]) of+        e@(XPVError _) -> e+        XPVBool True   -> XPVNode (x : n)+        XPVBool False  -> nextNode+        _              -> XPVError "Value of testPredicate is not a boolean"+      where nextNode@(XPVNode n) = evalPred env (pos+1) len (XPVNode xs) ex+evalPred _ _ _ _ _+    = XPVError "Call to evalPred without a nodeset"++++testPredicate :: Env -> Context -> Expr -> XPathFilter+testPredicate env context@(pos, _, _) ex ns+    = case evalExpr env context ex ns of+        XPVNumber (Float f) -> XPVBool (f == fromIntegral pos)+        XPVNumber _         -> XPVBool False+        _                   -> xboolean context env [evalExpr env context ex ns]+++-- |+-- filter for selecting a special type of nodes from the current fragment tree+--+-- the filter works with namespace activated and without namespaces.+-- If namespaces occur in XPath names, the uris are used for matching,+-- else the name prefix+--+--    Bugfix : "*" (or any other name-test) must not match the root node++nodeTest :: NodeTest -> XPathFilter++-- nodeTest (NameTest (QN "" "*" ""))      = filterNodes (\n -> isXTagNode n && not (isRootNode n))+-- nodeTest (NameTest (QN _ "*" uri))      = filterNodes (filterd uri)++nodeTest (NameTest q)+    | isWildcardTest+	= filterNodes (wildcardTest q)+    | otherwise+        = filterNodes (nameTest q)		-- old: (isOfTagNode1 q)+      where+      isWildcardTest = localPart q == "*"++nodeTest (PI s)                         = filterNodes (isPiNode s)+nodeTest (TypeTest t)                   = typeTest t++nameTest	:: QName -> XNode -> Bool+nameTest xpName (XTag elemName _)+    | namespaceAware+	= localPart xpName == localPart elemName+	  &&+	  namespaceUri xpName == namespaceUri elemName+    | otherwise+	= qualifiedName xpName == qualifiedName elemName+    where+    namespaceAware = not . null . namespaceUri $ xpName++nameTest _ _ = False++wildcardTest	:: QName -> XNode -> Bool+wildcardTest xpName (XTag elemName _)+    | namespaceAware+	= namespaceUri xpName == namespaceUri elemName+    | prefixMatch+	= namePrefix xpName == namePrefix elemName+    | otherwise+	= localPart elemName /= t_root			-- all names except the root name "/"+    where+    namespaceAware = not . null . namespaceUri $ xpName+    prefixMatch    = not . null . namePrefix   $ xpName++wildcardTest _ _ = False+  +{- old stuff++filterd :: String -> XNode -> Bool+filterd uri (XTag a _) = uri == namespaceUri a+filterd _   _          = False++isOfTagNode1 :: QName -> XNode -> Bool+isOfTagNode1 (QN _prefix local uri) (XTag (QN _prefix1 local1 uri1) _) = local == local1 && uri1 == uri -- is this the better variant?:  prefix == prefix1 && local == local1+isOfTagNode1 _                      _                                  = False+-}++-- |+-- tests whether a node is of a special type+--+typeTest :: XPathNode -> XPathFilter+typeTest XPNode         = id+typeTest XPCommentNode  = filterNodes isXCmtNode+typeTest XPPINode       = filterNodes isXPiNode+typeTest XPTextNode     = filterNodes isXTextNode+++-- |+-- the filter selects the NTree part of a navigable tree and+-- tests whether the node is of the necessary type+--+--    * 1.parameter fct :  filter function from the XmlTreeFilter module which tests the type of a node+--+filterNodes :: (XNode -> Bool) -> XPathFilter+filterNodes fct (XPVNode ns)+    = XPVNode ([n | n@(NT (NTree node _) _ _ _) <- ns , fct node])+filterNodes _ _+    = XPVError "Call to filterNodes without a nodeset"++++-- |+-- evaluates a boolean expression, the evaluation is non-strict+boolEval :: Env -> Context -> Op -> [Expr] -> XPathFilter+boolEval _ _ op [] _+    = XPVBool (op==And)+boolEval env cont Or (x:xs) ns+    = case xboolean cont env [evalExpr env cont x ns] of+        e@(XPVError _) -> e+        XPVBool True   -> XPVBool True+        _              -> boolEval env cont Or xs ns++boolEval env cont And (x:xs) ns+    = case xboolean cont env [evalExpr env cont x ns] of+        e@(XPVError _) -> e+        XPVBool True   -> boolEval env cont And xs ns+        _              -> XPVBool False+boolEval _ _ _ _ _+    = XPVError "Call to boolEval with a wrong argument"++++-- |+-- returns the value of a variable+getVariable :: Env -> VarName -> XPathFilter+getVariable env name _+    = case lookup name (getVarTab env) of+        Nothing -> XPVError ("Variable: " ++ show name ++ " not found")+        Just v  -> v+++-- |+-- evaluates a function, +-- computation is done by 'XPathFct.evalFct' which is defined in "XPathFct".+fctEval :: Env -> Context -> FctName -> [Expr] -> XPathFilter+fctEval env cont name args+    = evalFct name env cont . evalExprL env cont args++++-- |+-- evaluates an arithmetic operation.+--+--   1.parameter f :  arithmetic function from "XPathArithmetic"+--+numEval :: (Op -> XPathValue -> XPathValue -> XPathValue) -> Op -> [XPathValue] -> XPathValue+numEval f op = foldl1 (f op)++++-- |+-- Convert list of ID attributes from DTD into a space separated 'XPVString'+--++idAttributesToXPathValue	:: XmlTrees -> XPathValue+idAttributesToXPathValue ts+    = XPVString (foldr (\ n -> ( (valueOfDTD "value" n ++ " ") ++)) [] ts)++-- |+-- Extracts all ID-attributes from the document type definition (DTD).+--++getIdAttributes	:: XmlFilter+getIdAttributes+    = getChildren+      .>+      isXDTD+      .>+      deep (isIdAttrType)
+ src/Text/XML/HXT/XPath/XPathFct.hs view
@@ -0,0 +1,754 @@+-- |+-- The module contains the core-functions of the XPath function library.+-- All functions are implemented as XFct. Each XFct contains the evaluation context,+-- the variable environment and the function arguments.+--+++module Text.XML.HXT.XPath.XPathFct+    ( XFct+    , evalFct+    , toXValue+    , xnumber+    , xboolean+    , xstring+    , getConvFct+    , stringValue+    , remDups+    , isNotInNodeList+    , createDocumentOrder+    , createDocumentOrderReverse+    , getVarTab+    , getKeyTab+    )+where++import Text.XML.HXT.XPath.XPathDataTypes+import Text.XML.HXT.XPath.XPathParser+      ( parseNumber+      --, parseStr     Tim Walkenhorst: Whatever it does parseStr is not useful for normalize-space+      )+import Text.XML.HXT.XPath.XPathArithmetic+      ( xPathAdd )+++import Text.XML.HXT.DOM.XmlTree+      hiding (mkNode)++import Data.Maybe+      ( fromJust )++import Data.List+    ( sortBy )++-- -----------------------------------------------------------------------------++-- added by Tim Walkenhorst to fix Pos0 vs. Float 0.0 problems...+int2XPNumber :: Int -> XPNumber+int2XPNumber 0 = Pos0+int2XPNumber i = Float $ fromIntegral i++-- |+-- Type signature for all functions which can be used in the XPath module.+type XFct = (Context -> Env -> [XPathValue] -> XPathValue)+++-- |+-- All functions are stored in a function table.+type FctTable = [(FctName, FctTableElem)]++-- |+-- Each table entry consists of the function and the expected function arguments.+type FctTableElem = (XFct, CheckArgCount)++-- |+-- Tests whether the number of current function arguments is correct+type CheckArgCount = ([XPathValue] -> Bool)++zero, zeroOrOne, one, two, twoOrM, twoOrThree, three :: CheckArgCount+zero ex       = length ex == 0+zeroOrOne ex  = length ex == 0 || length ex == 1+one ex        = length ex == 1+two ex        = length ex == 2+twoOrM ex     = length ex >= 2+twoOrThree ex = length ex == 2 || length ex == 3+three ex      = length ex == 3+++-- |+-- The core-functions library+fctTable :: FctTable+fctTable = [+            ("last", (xlast, zero)), -- nodeset functions+            ("position",(xposition, zero)),+            ("count",(xcount, one)),+            ("id", (xid, one)),+            ("local-name", (xlocalName, zeroOrOne)),+            ("namespace-uri", (xnamespaceUri, zeroOrOne)),+            ("name", (xname, zeroOrOne)),++            ("string", (xstring, zeroOrOne)), -- string functions+            ("concat", (xconcat, twoOrM)),+            ("starts-with",(xstartsWith, two)),+            ("contains", (xcontains, two)),+            ("substring-before", (xsubstringBefore, two)),+            ("substring-after", (xsubstringAfter, two)),+            ("substring", (xsubstring, twoOrThree)),+            ("string-length", (xstringLength, zeroOrOne)),+            ("normalize-space", (xnormalizeSpace, zeroOrOne)),+            ("translate", (xtranslate, three)),++            ("boolean", (xboolean, one)), -- boolean functions+            ("not", (xnot, one)),+            ("true", (xtrue, zero)),+            ("false",(xfalse, zero)),+            ("lang", (xlang, one)),++            ("number",(xnumber, zeroOrOne)), -- number functions+            ("sum",(xsum, one)),+            ("floor",(xfloor, one)),+            ("ceiling",(xceiling, one)),+            ("round",(xround, one)),+            ("key",(xkey, two)),+            ("format-number",(xformatNumber, twoOrThree))+           ]++-- -----------------------------------------------------------------------------++-- some helper functions++-- |+-- Returns the table of keys, needed by xslt, from the environment+getKeyTab :: Env -> KeyTab+getKeyTab (_, keyTab) = keyTab+++-- |+-- Returns the table of variables from the environment+getVarTab :: Env -> VarTab+getVarTab (varTab, _) = varTab+++-- |+-- Returns the conversion function for the XPath results: string, boolean and number+-- A nodeset can not be converted.+getConvFct :: XPathValue -> Maybe XFct+getConvFct (XPVNumber _) = Just xnumber+getConvFct (XPVString _) = Just xstring+getConvFct (XPVBool _)   = Just xboolean+getConvFct _             = Nothing+++-- |+-- Filter for ordering a list of Nodes in document order+createDocumentOrder :: XPathFilter+createDocumentOrder (XPVNode n) = XPVNode (sortBy documentOrder n)+      where+      documentOrder :: NavXmlTree -> NavXmlTree -> Ordering+      documentOrder a b = compare (documentPos a) (documentPos b)++createDocumentOrder e@(XPVError _) = e+createDocumentOrder _ = XPVError "Call to createDocumentOrder without a nodeset"+++-- |+-- Filter for ordering a list of Nodes in reverse document order+createDocumentOrderReverse :: XPathFilter+createDocumentOrderReverse (XPVNode n) = XPVNode (sortBy documentOrderReverse n)+      where+      documentOrderReverse :: NavXmlTree -> NavXmlTree -> Ordering+      documentOrderReverse a b = compare (documentPos b) (documentPos a)++createDocumentOrderReverse e@(XPVError _) = e+createDocumentOrderReverse _ = XPVError "Call to createDocumentOrderReverse without a nodeset"++++++-- |+-- Filter for removing identical fragment trees in a nodeset+remDups :: XPathFilter+remDups e@(XPVError _) = e+remDups (XPVNode []) = XPVNode []+remDups (XPVNode (x:xs))+    | isNotInNodeList x xs = XPVNode (x : y)+    | otherwise            = remDups (XPVNode xs)+      where+      (XPVNode y) = remDups (XPVNode xs)+remDups _ = XPVError "Call to remDups without a nodeset"++-- |+-- Check whether a node is not a part of a node list. Needed to implement matching & testing in xslt.+isNotInNodeList :: NavXmlTree -> [NavXmlTree] -> Bool+isNotInNodeList n xs' = getRelPosL (Just n) `notElem` map (getRelPosL . Just) xs'+++-- |+-- calculates the number of previous siblings of an navigable tree+--+--    - returns : a list of numbers, one number for each level of the tree++-- Tim Walkenhorst:+--   - Attributes are identified by their QName (they do not have previous siblings)+--   - Elemts are identified by their relative position (# of previous siblings)++getRelPosL :: Maybe (NavXmlTree) -> [Either QName Int]+getRelPosL Nothing = []+getRelPosL (Just t@(NT (NTree (XAttr qn) _)  _ _ _)) = Left  qn            : getRelPosL (upNT t)+getRelPosL (Just t@(NT _ _ prev _))                  = Right (length prev) : getRelPosL (upNT t)+++-- |+-- Calculates the position of a node in a tree (in document order)+documentPos :: NavXmlTree -> [Either QName Int ]+documentPos tree = reverse $ getRelPosL (Just tree)+++-- |+-- Evaluates a function.+-- Calculation of the function value is done by looking up the function name in the function table,+-- check the number of arguments and calculate the funtion, if no+-- argument evaluation returns an error.+--+--    - returns : the function value as 'XPathValue'+--+evalFct :: FctName -> Env -> Context -> [XPathValue] -> XPathValue+evalFct name env cont args+    = case (lookup name fctTable) of+        Nothing -> XPVError ("Call to undefined function "++ name)+        Just (fct, checkArgCount) ->+          if not (checkArgCount args)+            then XPVError ("Call to function "++ name ++ " with wrong arguments")+            else case (checkArgErrors args) of+                   Just e  -> e+                   Nothing -> fct cont env args+      where+      checkArgErrors [] = Nothing+      checkArgErrors ((XPVError r):_) = Just (XPVError r)+      checkArgErrors (_:xs) = checkArgErrors xs+++-- |+-- Converts a list of different 'XPathValue' types in a list of one 'XPathValue' type.+--+--    * 1.parameter fct :  the conversion function+--+toXValue :: XFct -> Context -> Env -> [XPathValue] -> [XPathValue]+toXValue fct c env args = [fct c env [x] | x <- args]+++-- -----------------------------------------------------------------------------+-- core-funktions library++-- nodeset functions++-- |+-- number last(): returns a number equal to the context size from the expression evaluation context+xlast :: XFct+xlast (_, len , _) _ _ = XPVNumber $ int2XPNumber len+++-- |+-- number position(): returns a number equal to the context position from the expression evaluation context+xposition :: XFct+xposition (pos, _ , _) _ _ = XPVNumber $ int2XPNumber pos+++-- |+-- number count(node-set): returns the number of nodes in the argument node-set+xcount :: XFct+xcount _ _ [XPVNode ns] = XPVNumber $ int2XPNumber $ length ns+xcount _ _ _ = XPVError "Call to function count with wrong arguments"+++-- |+-- node-set id(object): selects elements by their unique ID +xid :: XFct+xid (_, _, cn) env [XPVNode ns]+    = isInId  (getIds env) (strValues ns) [cn]+      where+      strValues = map ((\ (XPVString str) -> str) . stringValue)++xid c@(_, _, cn) env arg+    = isInId (getIds env) ( (\(XPVString s) -> words s) (xstring c env arg)) [cn]++++-- |+-- returns all IDs from the variable environment as a list of strings.+-- the IDs are stored in the variable: idAttr+getIds :: Env -> [String]+getIds env+-- hier muss noch auf prefix getestet werden+    = words $ (\ (XPVString str) -> str) . fromJust $ lookup ("", "idAttr") $ getVarTab env +++isInId :: [String] -> [String] -> NavXmlTrees -> XPathValue+isInId ids str ns+    = remDups (XPVNode (concat $ map (filterNS ids str . descendantOrSelfAxis) ns))+++filterNS :: [String] -> [String] -> NavXmlTrees -> NavXmlTrees+filterNS ids str ns+    = [ n | n@(NT a@(NTree _ _) _ _ _) <- ns, or $ map (idInIdList a str) ids]+      where+      idInIdList :: XmlTree -> [String] -> String -> Bool+      idInIdList al str' b = (xshow $ getValue b al) `elem` str'+++-- |+-- string local-name(node-set?):+-- returns the local part of the expanded-name of the node in the argument node-set that is first in document order. +-- If the argument node-set is empty or the first node has no expanded-name, an empty string is returned. +-- If the argument is omitted, it defaults to a node-set with the context node as its only member++--   Bugfix: name(\/) is "" not "\/"!++xlocalName :: XFct+xlocalName (_, _, cn) _ [] = XPVString (xpLocalPartOf $ subtreeNT cn)+xlocalName _ _ [XPVNode []] = XPVString ""+xlocalName _ _ [XPVNode ns] = XPVString (xpLocalPartOf $ subtreeNT $ head $ ns)+xlocalName _ _ _ = XPVError "Call to function local-name with wrong arguments"+++xpLocalPartOf :: XmlTree -> String+xpLocalPartOf n = if isRootNode (getNode n)+                    then ""+                    else localPartOf n++-- |+-- string namespace-uri(node-set?):+-- returns the namespace URI of the expanded-name of the node in the argument node-set that is first in document order.+-- If the argument node-set is empty, the first node has no expanded-name, or the namespace URI of the expanded-name+-- is null, an empty string is returned. If the argument is omitted, it defaults to a node-set with the context node as its only member+xnamespaceUri :: XFct+xnamespaceUri (_, _, cn) _ [] = XPVString (namespaceOf $ subtreeNT cn)+xnamespaceUri _ _ [XPVNode []] = XPVString ""+xnamespaceUri _ _ [XPVNode ns] = XPVString (namespaceOf $ subtreeNT $ head $ ns)+xnamespaceUri _ _ _ = XPVError "Call to function namespace-uri with wrong arguments"+++-- |+-- string name(node-set?): +-- returns a string containing a QName representing the expanded-name of the node in the argument node-set +-- that is first in document order. If the argument node-set is empty or the first node has no expanded-name, +-- an empty string is returned. If the argument it omitted, it defaults to a node-set with the context node as its only member.+-- Tim Walkenhorst: ++--   Bugfix: name(\/) is "" not "\/"!++xname :: XFct+xname (_, _, cn) _ [] =  XPVString (xpNameOf $ subtreeNT cn)+xname _ _ [XPVNode []] = XPVString ""+xname _ _ [XPVNode ns] = XPVString (xpNameOf $ subtreeNT $ head $ ns)+xname _ _ _ = XPVError "Call to function name with wrong arguments"++xpNameOf :: XmlTree -> String +xpNameOf n = if isRootNode (getNode n) +               then "" +               else nameOf n+++-- ------------------------------------------------------------+-- string functions++-- |+-- some helper functions+getFirstPos :: String -> String -> Int+getFirstPos s sub+    = if (getFirstPos' s sub) > length s+        then -1+        else getFirstPos' s sub++getFirstPos' :: String -> String -> Int+getFirstPos' [] _ = 2+getFirstPos' (x:xs) sub+    = if strStartsWith (x:xs) sub+      then 0+      else 1 + getFirstPos' xs sub++strStartsWith :: String -> String -> Bool+strStartsWith a b+    = take (length b) a == b++++-- |+-- Returns the string-value of a node,+-- the value of a namespace node is not supported+stringValue :: NavXmlTree -> XPathValue+stringValue (NT a _ _ _)+    = XPVString $ xshow . textFilter $ a+      where+      textFilter +        = getXCmt `orElse`+--        getXNamespace `orElse`+          multi isXText+         +--        = (isXTag `guards` multi isXText) `orElse`+--          (isXPi `guards` multi isXText) `orElse`+--          (isXAttr `guards` multi isXText) `orElse`          +--          (isXText `guards` multi isXText) `orElse`+--          getXCmt++++-- |+-- string string(object?): converts an object to a string+xstring :: XFct+xstring _ _ [XPVNode []]           = XPVString ""+xstring _ _ [XPVNode (x:_)]        = stringValue x+xstring (_, _, cn) _ []            = stringValue cn++xstring _ _ [XPVNumber (Float a)]+    | a == (fromInteger $ round a) = XPVString (show ((round a)::Integer))+    | otherwise                    = XPVString (show a)+xstring _ _ [XPVNumber s]          = XPVString (show s)++xstring _ _ [XPVBool True]         = XPVString "true"+xstring _ _ [XPVBool False]        = XPVString "false"++xstring _ _ [XPVString s]          = XPVString s+xstring _ _ [XPVError e]           = XPVError e+xstring _ _ _                      = XPVError "Call to xstring with a wrong argument"++++-- |+-- string concat(string, string, string*): returns the concatenation of its arguments+xconcat :: XFct+xconcat c env args +    = XPVString (foldr (\ (XPVString s) -> (s ++)) "" (toXValue xstring c env args))+++-- |+-- boolean starts-with(string, string): +-- returns true if the first argument string starts +-- with the second argument string, and otherwise returns false+xstartsWith :: XFct+xstartsWith c env args+    = XPVBool ( (\ ((XPVString a):[XPVString b]) -> strStartsWith a b) (toXValue xstring c env args))+++-- |+-- boolean contains(string, string):+-- returns true if the first argument string contains the second argument string, and otherwise returns false+xcontains :: XFct+xcontains c env args+    = XPVBool ( (\ ((XPVString s):[XPVString sub]) -> getFirstPos s sub /= -1) (toXValue xstring c env args))+++-- |+-- string substring-before(string, string):+-- returns the substring of the first argument string that precedes the first occurrence of the second argument string +-- in the first argument string, or the empty string if the first argument string does not contain the second argument string+xsubstringBefore :: XFct+xsubstringBefore c env args+    = xsubstringBefore' c env (toXValue xstring c env args)++xsubstringBefore' :: XFct+xsubstringBefore' _ _ ((XPVString _):[XPVString []]) = XPVString ""+xsubstringBefore' _ _ ((XPVString s):[XPVString sub]) = XPVString (take (getFirstPos s sub) s)+xsubstringBefore' _ _ _ = XPVError "Call to xsubstringBefore' with a wrong argument"+++++-- |+-- string substring-after(string, string):+-- returns the substring of the first argument string that follows the first occurrence of the second argument string +-- in the first argument string, or the empty string if the first argument string does not contain the second argument string+xsubstringAfter :: XFct+xsubstringAfter c env args+    = xsubstringAfter' c env (toXValue xstring c env args)++xsubstringAfter' :: XFct+xsubstringAfter' _ _ ((XPVString s):[XPVString []])+    = XPVString s+xsubstringAfter' _ _ ((XPVString s):[XPVString sub])+    = if getFirstPos s sub == -1+        then (XPVString "")+        else XPVString (drop ((getFirstPos s sub)+length sub) s)+xsubstringAfter' _ _ _ +    = XPVError "Call to xsubstringAfter' with a wrong argument"+++-- |+-- string substring(string, number, number?):+-- returns the substring of the first argument starting at the position specified in the second argument +-- with length specified in the third argument. If the third argument is not specified, it returns the substring +-- starting at the position specified in the second argument and continuing to the end of the string.+xsubstring :: XFct+xsubstring c env (x:xs)+    = xsubstring' c env ((toXValue xstring c env [x])++(toXValue xnumber c env xs))+xsubstring _ _ _+    = XPVError "Call to xsubstring with a wrong argument"++xsubstring' :: XFct+xsubstring' c env ((XPVString s):start:[])+    = case xround c env [start] of+        XPVNumber NaN       -> XPVString ""+        XPVNumber PosInf    -> XPVString ""+        XPVNumber (Float f) -> XPVString (drop ((round f)-1) s)+        XPVNumber _         -> XPVString s+        _                   -> XPVError "Call to xsubstring' with a wrong argument"++xsubstring' c env ((XPVString s):start:[end])+    = case xPathAdd Plus (xround c env [start]) (xround c env [end]) of+        XPVNumber (Float f) -> xsubstring' c env ( (XPVString (take ((round f) -1) s)):[start])+        XPVNumber PosInf    -> xsubstring' c env ( (XPVString s):[start])+        XPVNumber _         -> XPVString ""+        _                   -> XPVError "Call to xsubstring' with a wrong argument"+xsubstring' _ _ _+    = XPVError "Call to xsubstring' with a wrong argument"+++-- |+-- number string-length(string?):+-- returns the number of characters in the string. If the argument is omitted, it defaults to the context node +-- converted to a string, in other words the string-value of the context node.+xstringLength :: XFct+xstringLength c@(_, _, cn) env []+    = XPVNumber (Float (fromIntegral $ length s))+      where (XPVString s) = xstring c env [XPVNode [cn]]+xstringLength c env args+    = XPVNumber $ (\[XPVString s] -> int2XPNumber $ length s) (toXValue xstring c env args)+++-- |+-- string normalize-space(string?):+-- returns the argument string with whitespace normalized by stripping leading and trailing whitespace and replacing sequences +-- of whitespace characters by a single space. If the argument is omitted, it defaults to the context node converted to a string, +-- in other words the string-value of the context node.+-- The string is parsed by a function parseStr from XPathParser module. <-- No longer! Tim Walkenhorst+xnormalizeSpace :: XFct+xnormalizeSpace c@(_, _, cn) env []+    = (\(XPVString s) -> XPVString $ normStr s) (xstring c env [XPVNode [cn]])+xnormalizeSpace c env args+    = (\ [XPVString s] -> XPVString $ normStr s) (toXValue xstring c env args)++-- Tim Walkenhorst normStr replaces the use of parseStr...+normStr :: String -> String+normStr = unwords . words++-- |+-- string translate(string, string, string):+-- returns the first argument string with occurrences of characters in the second argument string replaced by the character at +-- the corresponding position in the third argument string+xtranslate :: XFct+xtranslate c env args+    = xtranslate' c env (toXValue xstring c env args)++xtranslate' :: XFct+xtranslate' _ _ ((XPVString a):(XPVString b):[XPVString c])+    = XPVString (replace a b c)+xtranslate' _ _ _+    = XPVError "Call to xtranslate' with a wrong argument"++replace :: String -> String -> String -> String+replace str [] _ = str++-- remove all characters, if there is no corresponding character in the third argument+replace str (x:xs) []+    = replace [ s | s <- str, x /= s] xs []++replace str (x:xs) (y:ys)+    = replace (rep x y str) xs ys+      where -- replace all characters in the first argument+      rep :: Char -> Char -> String -> String+      rep a b = foldr (\c -> if c == a then (b:) else (c:)) ""+++-- ------------------------------------------------------------+-- boolean functions++-- |+-- boolean boolean(object): converts its argument to a boolean value+xboolean :: XFct+xboolean _ _ [XPVNumber a] = XPVBool (a/= NaN && a/= Neg0 && a/= Pos0)+xboolean _ _ [XPVString s] = XPVBool (length s /= 0)+xboolean _ _ [XPVBool b]   = XPVBool b+xboolean _ _ [XPVNode ns]  = XPVBool (length ns > 0)+xboolean _ _ [XPVError e]  = XPVError e+xboolean _ _ _             = XPVError "Call to xboolean with a wrong argument"+++-- |+-- boolean not(boolean): returns true if its argument is false, and false otherwise+xnot :: XFct+xnot c env args+    = XPVBool ( (\ (XPVBool b) -> not b) (xboolean c env args) )+++-- |+-- boolean true(): returns true+xtrue :: XFct+xtrue _ _ _ = XPVBool True+++-- |+-- boolean false(): returns false+xfalse :: XFct+xfalse _ _ _ = XPVBool False+++-- |+-- boolean lang(string):+-- returns true or false depending on whether the language of the context node as specified by xml:lang attributes +-- is the same as or is a sublanguage of the language specified by the argument string++-- function needs namespaces which are not supported by the toolbox+xlang :: XFct+xlang _ _ _+    = XPVError "namespaces are not supported"++-- xlang c env args+--    = (\ (_, _, cn) [XPVString s] -> ...) c (toXValue xstring c env args)++++-- ------------------------------------------------------------+-- number functions++-- |+-- number number(object?): converts its argument to a number+xnumber :: XFct+xnumber c@(_, _, cn) env []+    = (\(XPVString s) -> parseNumber s) (xstring c env [XPVNode [cn]])+xnumber c env [n@(XPVNode _)]+    = (\(XPVString s) -> parseNumber s) (xstring c env [n])++xnumber _ _ [XPVBool b]+    | b                   = XPVNumber (Float 1)+    | otherwise           = XPVNumber Pos0++xnumber _ _ [XPVString s] = parseNumber s+xnumber _ _ [XPVNumber a] = XPVNumber a+xnumber _ _ [XPVError e]  = XPVError e+xnumber _ _ _             = XPVError "Call to xnumber with a wrong argument"+++-- |+-- number sum(node-set): +-- returns the sum, for each node in the argument node-set, of the result of +-- converting the string-values of the node to a number+xsum :: XFct+xsum _ _ [XPVNode []] = XPVNumber NaN+xsum c env [XPVNode ns]+    = foldr1 (\ a b -> (xPathAdd Plus a b)) (getValues ns)+      where+      getValues :: NodeSet -> [XPathValue]+      getValues = foldr (\ n -> ([xnumber c env $ [stringValue n] ] ++) ) []++xsum _ _ _+    = XPVError "The value of the function sum is not a nodeset"+++-- |+-- number floor(number): returns the largest (closest to positive infinity) number that is not greater +-- than the argument and that is an integer+xfloor :: XFct+xfloor c env args+    = xfloor' (toXValue xnumber c env args)+      where+      xfloor' [XPVNumber (Float f)]+        | f > 0 && f < 1    = XPVNumber Pos0+        | otherwise         = XPVNumber (Float (fromInteger $ floor f))+      xfloor' [XPVNumber a] = XPVNumber a+      xfloor' _             = XPVError "Call to xfloor' without a number"+++-- |+-- number ceiling(number): returns the smallest (closest to negative infinity) number that is not less +-- than the argument and that is an integer+xceiling  :: XFct+xceiling c env args+    = xceiling' (toXValue xnumber c env args)+      where+      xceiling' [XPVNumber (Float f)]+        | f < 0 && f > -1     = XPVNumber Pos0+        | otherwise           = XPVNumber (Float (fromInteger $ ceiling f))+      xceiling' [XPVNumber a] = XPVNumber a+      xceiling' _             = XPVError "Call to xceiling' without a number"+++-- |+-- number round(number):+-- returns the number that is closest to the argument and that is an integer. +-- If there are two such numbers, then the one that is closest to positive infinity is returned.+xround :: XFct+xround c env args+    = xround' c env (toXValue xnumber c env args)++xround' :: XFct+xround' _ _ [XPVNumber (Float f)]+    | f < 0 && f >= -0.5  = XPVNumber Neg0+    | f >= 0 && f < 0.5   = XPVNumber Pos0+    | otherwise           = XPVNumber (Float (fromInteger $ xPathRound f))+      where+      xPathRound a +        = if a - (fromInteger $ floor a) < 0.5+            then floor a+            else floor (a+1)++xround' _ _ [XPVNumber a] = XPVNumber a+xround' _ _ _             = XPVError "Call to xround' without a number"++++-- |+-- node-set key(string, object):+-- does for keys what the id function does for IDs+-- The first argument specifies the name of the key.+-- When the second argument is of type node-set, then the result is the+-- union of the result of applying the key function to the string value+-- of each of the nodes in the argument node-set.+-- When the second argument is of any other type, the argument is+-- converted to a string +xkey :: XFct+xkey _ env ((XPVString s) : [XPVNode ns])+    = isInKey (getKeyTab env) s (strValues ns)+      where+      strValues = map ((\ (XPVString str) -> str) . stringValue)++xkey c env ((XPVString s) : arg)+    -- = isInKey (getKeyTab env) s  ( (\(XPVString s) -> words s) (xstring c env arg))+    = isInKey (getKeyTab env) s [str]+      where+        (XPVString str) = xstring c env arg++xkey _ _ _ = XPVError "Call to xkey with a wrong argument"+++isInKey :: KeyTab -> String -> [String] -> XPathValue+isInKey kt kn kv+    -- = remDups (XPVNode (map ntree ts) )+    = XPVNode ts --(map ntree ts)+      where+        (_, _, ts) = unzip3 $ concat $ map (isKeyVal (isKeyName kt kn)) kv++isKeyName :: KeyTab -> String -> KeyTab+isKeyName kt kn = filter (isOfKeyName kn) kt++isKeyVal :: KeyTab -> String -> KeyTab+isKeyVal kt kv = filter (isOfKeyValue kv) kt++isOfKeyName :: String -> (QName, String, NavXmlTree) -> Bool+isOfKeyName kn (qn, _, _) = (localPart qn) == kn+++isOfKeyValue :: String -> (QName, String, NavXmlTree) -> Bool+isOfKeyValue kv (_, v, _)   = v == kv+++-- |+-- string format-number(number, string, string?):+-- converts its first argument to a string using the format pattern string+-- specified by the second argument and the decimal-format named by the+-- third argument, or the default decimal-format, if there is no third argument+xformatNumber :: XFct+xformatNumber c env (x:xs)+    = xsubstring' c env ((toXValue xstring c env [x])++(toXValue xnumber c env xs))+xformatNumber _ _ _+    = XPVError "Call to xformatNumber with a wrong argument"
+ src/Text/XML/HXT/XPath/XPathKeywords.hs view
@@ -0,0 +1,57 @@+-- |+-- $Id: XPathKeywords.hs,v 1.1 2004/09/02 19:12:05 hxml Exp $+--+-- the XPath keywords+--+++module Text.XML.HXT.XPath.XPathKeywords+where++-- ------------------------------------------------------------+--+-- string constants for representing XPath keywords and axis++a_ancestor,			-- axisNames+ a_ancestor_or_self,+ a_attribute,+ a_child,+ a_descendant,+ a_descendant_or_self,+ a_following,+ a_following_sibling,+ a_namespace,+ a_parent,+ a_preceding,+ a_preceding_sibling,+ a_self				:: String+++n_comment,			-- nodeTypes+ n_text,+ n_processing_instruction,+ n_node				:: String++-- ------------------------------------------------------------++a_ancestor			= "ancestor"  +a_ancestor_or_self		= "ancestor-or-self"  +a_attribute 			= "attribute"  +a_child				= "child"  +a_descendant			= "descendant"  +a_descendant_or_self		= "descendant-or-self"  +a_following			= "following"  +a_following_sibling		= "following-sibling"  +a_namespace			= "namespace"  +a_parent			= "parent"  +a_preceding			= "preceding"  +a_preceding_sibling		= "preceding-sibling"  +a_self				= "self" +++n_comment 			= "comment"+n_text 				= "text"+n_processing_instruction 	= "processing-instruction"+n_node 				= "node"++-- ------------------------------------------------------------
+ src/Text/XML/HXT/XPath/XPathParser.hs view
@@ -0,0 +1,652 @@+-- ------------------------------------------------------------++{- |+   Module     : Text.XML.HXT.XPath.XPathParser+   Copyright  : Copyright (C) 2006 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: XPathParser.hs,v 1.6 2006/10/12 11:51:29 hxml Exp $++   the XPath Parser++-}++-- ------------------------------------------------------------++module Text.XML.HXT.XPath.XPathParser+    ( parseNumber+    , parseXPath+    )+where++import Text.XML.HXT.DOM.TypeDefs++import Text.XML.HXT.XPath.XPathKeywords+import Text.XML.HXT.XPath.XPathDataTypes hiding (choice)++import Data.Maybe++import Text.XML.HXT.Parser.XmlParser+    ( separator+    , systemLiteral+    , skipS0+    , ncName+    , qName+    )++import Text.ParserCombinators.Parsec++lookupNs		:: NsEnv -> String -> String+lookupNs uris prefix+    -- downwards compatibility: if namespace env is not supported+    -- no error is raised, but the uri remains empty+    -- not conformant to XPath spec: If namespaces are used, an complete env must be supported,+    -- but we don't care about this++    = lookup1 prefix uris++enhanceAttrQName	:: NsEnv -> QName -> QName+enhanceAttrQName uris qn+    | null (namePrefix qn)	= qn+    | otherwise			= enhanceQName uris qn++enhanceQName 		:: NsEnv -> QName -> QName+enhanceQName uris qn+    = qn {namespaceUri = lookupNs uris (namePrefix qn)}++enhanceQN		::  AxisSpec -> NsEnv -> QName -> QName+enhanceQN Attribute	= enhanceAttrQName+enhanceQN _		= enhanceQName++type XParser a = GenParser Char NsEnv a++-- ------------------------------------------------------------+-- parse functions which are used in the XPathFct module++-- |+-- parsing a number, parseNumber is used in "XPathFct"+-- by the number function+--+--    - returns : the parsed number as 'XPNumber' float+--                or 'XPVNumber' 'NaN' in case of error+parseNumber :: String -> XPathValue+parseNumber s+    = case (runParser parseNumber' [] {- Map.empty -} "" s) of+        Left _ -> XPVNumber NaN+        Right x  -> if (read x :: Float) == 0+                      then (XPVNumber Pos0)+                      else XPVNumber (Float (read x))++parseNumber' :: XParser String+parseNumber'+    = do+      skipS0+      m <- option "" (string "-")+      n <- number+      skipS0+      eof+      return (m ++ n)++-- ------------------------------------------------------------+++-- |+-- the main entry point:+-- parsing a XPath expression++parseXPath :: XParser Expr+parseXPath+    = do+      skipS0+      xPathExpr <- expr+      skipS0+      eof+      return xPathExpr+++-- some useful token and symbol parser+lpar, rpar, lbra, rbra, slash, dslash	:: XParser ()++lpar   = tokenParser (symbol "(")+rpar   = tokenParser (symbol ")")+lbra   = tokenParser (symbol "[")+rbra   = tokenParser (symbol "]")+slash  = tokenParser (symbol "/")+dslash = tokenParser (symbol "//")+++tokenParser :: XParser String -> XParser ()+tokenParser p+    = try ( do+            skipS0+            p+            skipS0+           )+++symbolParser :: (String, a) -> XParser a+symbolParser (s,a)+    = do+      tokenParser (symbol s)+      return a+++symbol :: String -> XParser String+symbol s = try (string s)++++--  operation parser+orOp, andOp, eqOp, relOp, addOp, multiOp, unionOp :: XParser Op++orOp  = symbolParser ("or", Or)+andOp =	symbolParser ("and", And)++eqOp+    = symbolParser ("=", Eq)+      <|> +      symbolParser ("!=", NEq)++relOp+    = choice [ symbolParser ("<=", LessEq)+             , symbolParser (">=", GreaterEq)+             , symbolParser ("<", Less)+             , symbolParser (">", Greater)+             ]++addOp+    = symbolParser ("+", Plus)+      <|> +      symbolParser ("-", Minus)+++multiOp+    = choice [ symbolParser ("*", Mult)+             , symbolParser ("mod", Mod)+             , symbolParser ("div", Div)+             ]+++unionOp	= symbolParser ("|", Union)++-- ------------------------------------------------------------++mkExprNode :: Expr -> [(Op, Expr)] -> Expr+mkExprNode e1 [] = e1+mkExprNode e1 l@((op, _): _) = +    if null rest+      then GenExpr op (e1:(map snd l))+      else GenExpr op $ (e1:(map snd $ init same)) ++ [mkExprNode (snd $ last same) rest]+  where +    (same, rest) = span ((==op) . fst) l+    +-- Tim Walkenhorst, original expr. below:+-- It seems mkExprNode is called only with operators of the same precedence, that should make it fixable+-- FIXED, see above!+--mkExprNode e1 l@((op, _): _) = GenExpr op (e1:(map snd l))  -- Less than ideal: 1+1-1 = 3 ???+++--GenExpr op (e1:(map snd l))+++exprRest :: XParser Op -> XParser Expr -> XParser (Op, Expr)+exprRest parserOp parserExpr+    = do+      op <- parserOp+      e2 <- parserExpr+      return (op, e2)+++-- ------------------------------------------------------------++-- abbreviation of "//"+descOrSelfStep :: XStep +descOrSelfStep = (Step DescendantOrSelf (TypeTest XPNode) [])++-- ------------------------------------------------------------+-- Location Paths (2)+++-- [1] LocationPath +locPath :: XParser LocationPath+locPath+    = absLocPath+      <|> +      relLocPath'+++-- [2] AbsoluteLocationPath+absLocPath :: XParser LocationPath+absLocPath+    = do -- [10]+      dslash+      s <- relLocPath+      return (LocPath Abs ([descOrSelfStep] ++ s))+      <|> +      do+      slash+      s <- option [] relLocPath+      return (LocPath Abs s)+      <?> "absLocPath"+++-- [3] RelativeLocationPath+relLocPath' :: XParser LocationPath+relLocPath'+    = do+      rel <- relLocPath+      return (LocPath Rel rel)++relLocPath :: XParser [XStep]+relLocPath+    = do+      s1 <- step+      s2 <- many (step')+      return ([s1] ++ (concat s2))+      <?> "relLocPath"+++-- Location Steps (2.1)+--+-- [4] Step+step' :: XParser [XStep]+step'+    = do -- [11]+      dslash+      s <- step+      return [descOrSelfStep,s]+      <|>+      do+      slash+      s <- step+      return [s]+      <?> "step'"++step :: XParser XStep+step+    = abbrStep+      <|>+      do+      as <- axisSpecifier'+      nt <- nodeTest as+      pr <- many predicate+      return (Step as nt pr)+      <?> "step"+++-- [5] AxisSpecifier+axisSpecifier' :: XParser AxisSpec+axisSpecifier'+    = do  -- [13]+      tokenParser (symbol "@")+      return Attribute+      <|>+      do+      as <- option Child ( try ( do -- child-axis is default-axis+                                 a <- axisSpecifier+                                 tokenParser (symbol "::")+                                 return a+                               )+                          )+      return as+      <?> "axisSpecifier'"+++-- Axes (2.2)+--+-- [6] AxisName+axisSpecifier :: XParser AxisSpec+axisSpecifier+    = choice [ symbolParser (a_ancestor_or_self, AncestorOrSelf)+             , symbolParser (a_ancestor, Ancestor)+             , symbolParser (a_attribute, Attribute)+             , symbolParser (a_child, Child)+             , symbolParser (a_descendant_or_self, DescendantOrSelf)+             , symbolParser (a_descendant, Descendant)+             , symbolParser (a_following_sibling, FollowingSibling)+             , symbolParser (a_following, Following)+             , symbolParser (a_namespace, Namespace)+             , symbolParser (a_parent, Parent)+             , symbolParser (a_preceding_sibling, PrecedingSibling)+             , symbolParser (a_preceding, Preceding)+             , symbolParser (a_self, Self)+             ]+      <?> "axisSpecifier"+++-- Node Tests (2.3)+--+-- [7] NodeTest+nodeTest :: AxisSpec -> XParser NodeTest+nodeTest as+    = do+      nt <- try nodeType'+      return (TypeTest nt)+      <|>+      do+      processInst <- pI+      return (PI processInst)+      <|>+      do+      nt <- nameTest as+      return (NameTest nt)+      <?> "nodeTest"++pI :: XParser String+pI+    = do+      tokenParser (symbol n_processing_instruction)+      li <- between lpar rpar literal+      return li+      <?> "Processing-Instruction"+++-- Predicates (2.4)+--+-- [8] Predicate+-- [9] PredicateExpr+predicate :: XParser Expr+predicate +    = do+      ex <- between lbra rbra expr+      return ex+++-- Abbreviated Syntax (2.5)+--+-- [10] AbbreviatedAbsoluteLocationPath: q.v. [2]+-- [11] AbbreviatedRelativeLocationPath: q.v. [4]++-- [12] AbbreviatedStep+abbrStep :: XParser XStep+abbrStep +    = do+      tokenParser (symbol "..")+      return (Step Parent (TypeTest XPNode) [])+      <|>+      do+      tokenParser (symbol ".")+      return (Step Self (TypeTest XPNode) [])+      <?> "abbrStep"++-- [13] AbbreviatedAxisSpecifier: q.v. [5]+++-- ------------------------------------------------------------+-- Expressions (3)+++-- Basics (3.1)+--+-- [14] Expr+expr :: XParser Expr+expr = orExpr+++-- [15] PrimaryExpr+primaryExpr ::  XParser Expr+primaryExpr+    = do+      vr <- variableReference+      return (VarExpr vr)+      <|>+      do+      ex <- between lpar rpar expr+      return ex+      <|>+      do+      li <- literal+      return (LiteralExpr li)+      <|> +      do+      num <- number+      return (NumberExpr (Float $ read num))+      <|>+      do+      fc <- functionCall+      return (fc)+      <?> "primaryExpr"+++-- Function Calls (3.2)+--+-- [16] FunctionCall+-- [17] Argument+functionCall :: XParser Expr+functionCall+    = do+      fn <- functionName+      arg <- between lpar rpar ( sepBy expr (separator ',') )+      return (FctExpr fn arg)+      <?> "functionCall"+++-- Node-sets (3.3)+--+-- [18] UnionExpr+unionExpr :: XParser Expr+unionExpr+    = do+      e1 <- pathExpr+      eRest <- many (exprRest unionOp pathExpr)+      return (mkExprNode e1 eRest)+++-- [19] PathExpr+pathExpr :: XParser Expr+pathExpr+    = do+      fe <- try filterExpr+      path <- do+              dslash+              LocPath t1 t2 <- relLocPath'+              return (PathExpr (Just fe) (Just (LocPath t1 ([descOrSelfStep] ++ t2))))+              <|>+              do+              slash+              relPath <- relLocPath'+              return (PathExpr (Just fe) (Just relPath))+              <|>+              return fe+      return path+      <|>+      do+      lp <- locPath+      return (PathExpr Nothing (Just lp))+      <?> "pathExpr"+++-- [20] FilterExpr+filterExpr :: XParser Expr+filterExpr+    = do+      prim <- primaryExpr+      predicates <- many predicate+      if length predicates > 0+        then return (FilterExpr (prim : predicates))+        else return prim+      <?> "filterExpr"+++-- Booleans (3.4)+--+-- [21] OrExpr+orExpr :: XParser Expr+orExpr+    = do+      e1 <- andExpr+      eRest <- many (exprRest orOp andExpr)+      return (mkExprNode e1 eRest)+      <?> "orExpr"+++-- [22] AndExpr+andExpr :: XParser Expr+andExpr+    = do+      e1 <- equalityExpr+      eRest <- many (exprRest andOp equalityExpr)+      return (mkExprNode e1 eRest)+      <?> "andExpr"+++-- [23] EqualityExpr+equalityExpr :: XParser Expr+equalityExpr+    = do+      e1 <- relationalExpr+      eRest <- many (exprRest eqOp relationalExpr)+      return (mkExprNode e1 eRest)+      <?> "equalityExpr"+++-- [24] RelationalExpr+relationalExpr :: XParser Expr+relationalExpr+    = do+      e1 <- additiveExpr+      eRest <- many (exprRest relOp additiveExpr)+      return (mkExprNode e1 eRest)+      <?> "relationalExpr"+++-- Numbers (3.5)+--+-- [25] AdditiveExpr+additiveExpr :: XParser Expr+additiveExpr+    = do+      e1 <- multiplicativeExpr+      eRest <- many (exprRest addOp multiplicativeExpr)+      return (mkExprNode e1 eRest)+      <?> "additiveExpr"+++-- [26] MultiplicativeExpr+multiplicativeExpr :: XParser Expr+multiplicativeExpr+    = do+      e1 <- unaryExpr+      eRest <- many (exprRest multiOp unaryExpr)+      return (mkExprNode e1 eRest)+      <?> "multiplicativeExpr"+++-- [27] UnaryExpr+unaryExpr :: XParser Expr+unaryExpr+    = do+      tokenParser (symbol "-")+      u <- unaryExpr+      return (GenExpr Unary [u])+      <|>+      do+      u <- unionExpr+      return u+      <?> "unaryExpr"+++-- Lexical Structure (3.7)+--+-- [29] Literal+-- systemLiteral from XmlParser is used+literal :: XParser String+literal = systemLiteral+++-- [30] Number+number :: XParser String+number+    = do+      tokenParser (symbol ".")+      d <- many1 digit+      return ("0." ++ d)+      <|>+      do+      d <- many1 digit+      d1 <- option "" ( do+                        tokenParser (symbol ".")+                        d2 <- option "0" (many1 digit)+                        return ("." ++ d2)+                      )+      return (d ++ d1)+      <?> "number"+++-- [35] FunctionName+-- no nodetype name is allowed as a function name+-- Tim Walkenhorst:+--   Change in String encoding for function name+--+--         previoulsy:      new:+--           +--         name             name+--         pref:name        {http://uri-for-pref}name++functionName :: XParser String+functionName+    = try ( do           +            (p, n) <- qName+            uris   <- getState+            u      <- return $ if null p then "" else '{' : lookupNs uris p ++ "}"+            let fn = (u ++ n) in+              if fn `elem` ["processing-instruction", "comment", "text", "node"]+                then fail ("function name: " ++ fn ++ "not allowed")+                else return fn+          )+      <?> "functionName"+++-- [36] VariableReference+variableReference :: XParser (String, String)+variableReference+    = do+      tokenParser (symbol "$")+      (p,n) <- qName+      uris   <- getState+      return (lookupNs uris p, n)+      <?> "variableReference"+++-- [37] NameTest+nameTest :: AxisSpec -> XParser QName+nameTest as+    = do+      tokenParser (symbol "*")+      uris <- getState+      return (enhanceQN as uris $ mkName "*")+      <|> try ( do+                  pre <- ncName+                  symbol ":*"+                  uris <- getState+                  return (enhanceQN as uris $ mkNsName (pre ++ ":*") "")                +              )+      <|>+      do+      (pre,local) <- qName      	      +      uris <- getState+      return (enhanceQN as uris $ mkNsName (pre ++ ":" ++ local) "")+      <?> "nameTest"	++	+-- [38] NodeType+nodeType' :: XParser XPathNode+nodeType' +    = do+      nt <- nodeType+      lpar+      rpar+      return nt+      <?> "nodeType'"+	+nodeType :: XParser XPathNode+nodeType +    = choice [ symbolParser (n_comment, XPCommentNode)+             , symbolParser (n_text, XPTextNode)+             , symbolParser (n_processing_instruction, XPPINode)+             , symbolParser (n_node, XPNode)+             ]+      <?> "nodeType"
+ src/Text/XML/HXT/XPath/XPathToNodeSet.hs view
@@ -0,0 +1,78 @@+-- |+-- Convert an XPath result set into a node set+--+++module Text.XML.HXT.XPath.XPathToNodeSet+    ( xPValue2NodeSet+    , emptyNodeSet+    )+where++import Text.XML.HXT.DOM.TypeDefs+import Text.XML.HXT.XPath.XPathDataTypes++import Data.Maybe++-- -----------------------------------------------------------------------------+-- |+-- Convert a a XPath-value into a XmlNodeSet represented by a tree structure+--+-- The XmlNodeSet can be used to traverse a tree an process all+-- marked nodes.++xPValue2NodeSet		:: XPathValue -> XmlNodeSet+xPValue2NodeSet (XPVNode ns)+    = toNodeSet ns++xPValue2NodeSet _+    = emptyNodeSet++emptyNodeSet		:: XmlNodeSet+emptyNodeSet		= XNS False [] []++leafNodeSet		:: XmlNodeSet+leafNodeSet		= XNS True [] []++toNodeSet		:: NodeSet -> XmlNodeSet+toNodeSet+    = pathListToNodeSet . map toPath++toPath			:: NavXmlTree -> XmlNodeSet+toPath+    = upTree leafNodeSet+++upTree			:: XmlNodeSet -> NavXmlTree -> XmlNodeSet+upTree ps t@(NT (NTree n _) _par left _right)+    = up (upNT t)+    where+    up (Just pt)+	| isJust . upNT $ pt		-- pt is a "real" node+	    = upTree (pix n) pt+	| otherwise			-- pt is the added root node, stop recursion+	    = ps+    up Nothing				-- never used recursion should stop earler+	= ps++    pix (XAttr qn)	= XNS False [qn] []+    pix _		= XNS False []   [(length left, ps)]++pathListToNodeSet	::[XmlNodeSet] -> XmlNodeSet+pathListToNodeSet+    = foldr mergePaths emptyNodeSet+    where+    mergePaths (XNS p1 al1 cl1) (XNS p2 al2 cl2)+	= XNS (p1 || p2) (al1 ++ al2) (mergeSubPaths cl1 cl2)++    mergeSubPaths []       sp2 = sp2+    mergeSubPaths (s1:sp1) sp2 = mergeSubPath s1 (mergeSubPaths sp1 sp2)++    mergeSubPath s1 []+	= [s1]+    mergeSubPath s1@(ix1,p1) sl@(s2@(ix2, p2) : sl')+	| ix1 < ix2	= s1 : sl+	| ix1 > ix2	= s2 : mergeSubPath s1 sl'		-- ordered insert of s1 +	| otherwise	= (ix1, mergePaths p1 p2) : sl'		-- same ix merge subpaths++-- -----------------------------------------------------------------------------
+ src/Text/XML/HXT/XPath/XPathToString.hs view
@@ -0,0 +1,115 @@+-- |+-- Format an expression or value in tree- or string-representation+--+++module Text.XML.HXT.XPath.XPathToString+    ( expr2XPathTree+    , xPValue2String+    , xPValue2XmlTrees+    , nt2XPathTree+    , pred2XPathTree+    , toXPathTree+    )+where++import Text.XML.HXT.DOM.XmlTree+import Text.XML.HXT.DOM.FormatXmlTree+    ( formatXmlTree )++import Text.XML.HXT.XPath.XPathDataTypes++import Data.Char+    ( toLower )++-- ------------------------------------------------------------++type XPathTree = NTree String+++-- -----------------------------------------------------------------------------+-- |+-- Convert an navigable tree in a xmltree+--+toXPathTree			:: [NavTree a] -> [NTree a]+toXPathTree xs			= foldr (\ x -> (subtreeNT x :)) [] xs++++-- -----------------------------------------------------------------------------+-- |+-- Format a XPath-value in string representation.+-- Text output is done by 'formatXmlTree' for node-sets (trees),+-- all other values are represented as strings.+--++xPValue2String			:: XPathValue -> String+xPValue2String (XPVNode ns)+    = foldr (\t -> ((formatXmlTree t ++ "\n") ++)) "" (toXPathTree ns)+xPValue2String (XPVBool b) 	= map toLower (show b)+xPValue2String (XPVNumber (Float f)) = show f+xPValue2String (XPVNumber s) 	= show s+xPValue2String (XPVString s) 	= s+xPValue2String (XPVError s) 	= "Error: " ++ s++-- -----------------------------------------------------------------------------+-- |+-- Convert a a XPath-value into XmlTrees.+--++xPValue2XmlTrees			:: XPathValue -> XmlTrees+xPValue2XmlTrees (XPVNode ns)		= toXPathTree ns+xPValue2XmlTrees (XPVBool b)		= xtext (show b)+xPValue2XmlTrees (XPVNumber (Float f))	= xtext (show f)+xPValue2XmlTrees (XPVNumber s)		= xtext (show s)+xPValue2XmlTrees (XPVString s)		= xtext s+xPValue2XmlTrees (XPVError  s)		= xerr s++++-- -----------------------------------------------------------------------------+-- |+-- Format a parsed XPath-expression in tree representation.+-- Text output is done by 'formatXmlTree'+--+expr2XPathTree			:: Expr -> XPathTree+expr2XPathTree (GenExpr op ex)	= NTree (show op) (map expr2XPathTree ex)+expr2XPathTree (NumberExpr f) 	= NTree (show f) []+expr2XPathTree (LiteralExpr s) 	= NTree s []+expr2XPathTree (VarExpr name) 	= NTree ("Var: " ++ show name) []+expr2XPathTree (FctExpr n arg)	= NTree ("Fct: " ++ n) (map expr2XPathTree arg)++expr2XPathTree (FilterExpr [])	= NTree "" []+expr2XPathTree (FilterExpr (primary:predicate))+    = NTree "FilterExpr" [expr2XPathTree primary, pred2XPathTree predicate]++expr2XPathTree (PathExpr Nothing (Just lp)) = locpath2XPathTree lp+expr2XPathTree (PathExpr (Just fe) (Just lp))+    = NTree "PathExpr" [expr2XPathTree fe, locpath2XPathTree lp]+expr2XPathTree (PathExpr _ _) 	= NTree "" []++locpath2XPathTree		:: LocationPath -> XPathTree+locpath2XPathTree (LocPath rel steps)+    = NTree (show rel ++ "LocationPath") (map step2XPathTree steps)+++step2XPathTree 			:: XStep -> XPathTree+step2XPathTree (Step axis nt [])+    = NTree (show axis) [nt2XPathTree nt]+step2XPathTree (Step axis nt expr)+    = NTree (show axis) [nt2XPathTree nt, pred2XPathTree expr]++nt2XPathTree 			:: NodeTest -> XPathTree+nt2XPathTree (TypeTest s) 	= NTree ("TypeTest: "++ typeTest2String s) []+nt2XPathTree (PI s) 		= NTree ("TypeTest: processing-instruction("++ show s ++ ")") []+nt2XPathTree (NameTest s) 	= NTree ("NameTest: "++ show s) []+++pred2XPathTree 			:: [Expr] -> XPathTree+pred2XPathTree exprL 		= NTree "Predicates" (map expr2XPathTree exprL)++typeTest2String 		:: XPathNode -> String+typeTest2String XPNode 		= "node()"+typeTest2String XPCommentNode	= "comment()"+typeTest2String XPPINode 	= "processing-instruction()"+typeTest2String XPTextNode 	= "text()"
+ src/Text/XML/HXT/XSLT/Application.hs view
@@ -0,0 +1,628 @@+-- ------------------------------------------------------------++{- |+   Module     : Text.XML.HXT.XSLT.Application+   Copyright  : Copyright (C) 2006 Tim Walkenhorst, Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: Application.hs,v 1.6 2006/11/17 17:16:24 hxml Exp $++   The transformation functions for XSLT transformation of XML documents++   Exports only two pure functions 'applyStylesheet' and 'applyStylesheetWParams'++-}++-- ------------------------------------------------------------++module Text.XML.HXT.XSLT.Application +    ( applyStylesheet        -- CompiledStylesheet -> XmlTree -> [XmlTree]+    , applyStylesheetWParams -- Map ExName Expr -> CompiledStylesheet -> XmlTree -> [XmlTree]+    , XPathParams+    )+where++import Text.XML.HXT.XSLT.Common+import Text.XML.HXT.XSLT.CompiledStylesheet++import Data.Maybe+import Data.Either+import Data.List++import Data.Map(Map)+import qualified Data.Map as Map hiding (Map)++import Data.Char++-- import Debug.Trace(trace)++-- ------------------------------------------------------------++type XPathParams = Map ExName Expr++type VariableSet = Map ExName XPathValue++type ParamSet = VariableSet++data Context = Ctx NavXmlTree               -- current node+                   [NavXmlTree]             -- current node list +                   Int                      -- pos. of curr-node 1..length+                   Int                      -- length of node list+                   VariableSet              -- glob. Var+                   VariableSet              -- loc. Var+                   CompiledStylesheet       -- The stylesheet which is being applied+                   (Maybe MatchRule)        -- Just the last applied match rule, Nothing within xsl:for-each+               | CtxEmpty        -- The empty-context, indicates that a branch of a transformation has been finished++ctxGetNode :: Context -> NavXmlTree+ctxGetNode CtxEmpty = error "ctxGetNode: Internal error attempt to access the empty context"+ctxGetNode (Ctx node _ _ _ _ _ _ _) = node++{- not used +ctxGetNodes :: Context -> [NavXmlTree]+ctxGetNodes CtxEmpty = []+ctxGetNodes (Ctx _ nodes _ _ _ _ _ _) = nodes+-}++ctxGetStylesheet :: Context -> CompiledStylesheet+ctxGetStylesheet CtxEmpty = error "ctxGetStylesheet: Internal error attempt to access the empty context"+ctxGetStylesheet (Ctx _ _ _ _ _ _ stylesheet _) = stylesheet++ctxGetRule :: Context -> Maybe MatchRule+ctxGetRule CtxEmpty = Nothing+ctxGetRule (Ctx _ _ _ _ _ _ _ rule) = rule++ctxSetNodes :: [NavXmlTree] -> Context -> Context+ctxSetNodes _ CtxEmpty = error "ctxSetNodes: Internal error attempt to access the empty context"+ctxSetNodes [] _       = CtxEmpty+ctxSetNodes nodes (Ctx _ _ _ _ globVars locVars cs rl) =+  Ctx (head nodes) nodes 1 (length nodes) globVars locVars cs rl++ctxSetRule :: Maybe MatchRule -> Context -> Context+ctxSetRule _ CtxEmpty = error "ctxSetRule: Internal error attempt to access the empty context"+ctxSetRule rule (Ctx node nodes pos len globVars locVars cs _) =+  Ctx node nodes pos len globVars locVars cs rule++addVariableBinding :: ExName -> XPathValue -> Context -> Context+addVariableBinding name val (Ctx node nodes pos len globVars locVars cs rl)+    = Ctx node nodes pos len globVars locVarsNew cs rl+    where+    locVarsNew = Map.insertWith (errF) name val locVars+    errF       = error $ "Local variable or parameter " ++ show name ++ " is already bound in this context"++addVariableBinding _ _ CtxEmpty = CtxEmpty++clearLocalVariables :: Context -> Context+clearLocalVariables CtxEmpty = CtxEmpty+clearLocalVariables (Ctx node nodes pos len globVars _ cs rl)+    = (Ctx node nodes pos len globVars Map.empty cs rl)++processContext :: Context -> (Context->[XmlTree]) -> [XmlTree]+processContext CtxEmpty _f = []+processContext ctx@(Ctx _node nodeList pos len globVar locVar cs rl) f+    | pos > len+	= []+    | otherwise+	= f ctx ++ processContext (Ctx (nodeList!!pos) nodeList (pos+1) len globVar locVar cs rl) f+                 +-- ----------------++evalXPathExpr :: Expr -> Context -> XPathValue+evalXPathExpr expr (Ctx node _ pos len globVars locVars _ _)+    = filterXPath $ evalExpr (vars,[]) (pos, len, node) expr (XPVNode [node])+    where +    filterXPath (XPVError err)    = error err+    filterXPath (XPVNode nodes)   = XPVNode $ (\x -> fst x ++ snd x) $ partition (isAttr.subtreeNT) nodes+    -- line above: complicated issue: consider: <lre><xsl:copy-of select="a/@*|a/*|b/@*"/></lre>+    -- assume a is in document order before b. Shall b's attributes be added to lre or be ignored?!+    filterXPath xpv               = xpv+    vars                          = map (\(name, val) -> ((exUri name, exLocal name), val)) varList+    varList                       = Map.toAscList $ locVars `Map.union` globVars++evalXPathExpr _ CtxEmpty+    = error "internal error in evalXPathExpr in XSLT module"++applySelect :: SelectExpr -> Context -> [NavXmlTree]+applySelect (SelectExpr expr) ctx = +    extractNodes xpathResult+  where +    xpathResult                  = evalXPathExpr expr ctx+    extractNodes (XPVNode nodes) = nodes+    extractNodes r               = error $ "XPATH-Expression in select or match attribute returned a value of the wrong type ("              +                                           ++ take 15 (show r)  ++ "...)"++applyTest :: TestExpr -> Context -> Bool+applyTest (TestExpr expr) ctx = bool+  where (XPVBool bool) = evalXPathExpr expr ctx++applyStringExpr :: StringExpr -> Context -> String+applyStringExpr (StringExpr expr) ctx = string+  where (XPVString string) = evalXPathExpr expr ctx++applyMatch :: MatchExpr -> Context -> Bool+applyMatch (MatchExpr expr) ctx+    = matchBySelect (SelectExpr expr) (ctxGetNode ctx) ctx+    where+    matchBySelect :: SelectExpr -> NavXmlTree -> Context -> Bool+    matchBySelect _ _ CtxEmpty = False+    matchBySelect expr' matchNode ctx'  +	| matchNode `isNotInNodeList` applySelect expr' ctx'+	    = matchBySelect expr' matchNode $ ctxSetNodes (maybeToList $ upNT $ ctxGetNode ctx') ctx'+        | otherwise+	    = True   ++-- ------------------------------------++applyComputedQName :: ComputedQName -> Context -> QName++applyComputedQName (LiteralQName qName) ctx = +    lookupAlias (getAliases $ ctxGetStylesheet ctx) qName++applyComputedQName (CompQName uris nameATV nsATV) ctx =+    if null nsuri && not (null pref)+    then mkQName pref loc $ lookupPrefix uris pref+    else mkQName pref loc nsuri+  where       +    nsuri         = applyStringExpr nsATV ctx   +    (pref, loc)   = if null loc' then ("", pref') +                                 else (pref', tail loc')+    (pref', loc') = span (/=':') $ applyStringExpr nameATV ctx++-- ------------------------------------+ +applyComposite :: Template -> Context -> [XmlTree]+applyComposite (TemplComposite templates) ctx+    = concat $ reverse $ fst $ foldl applyElem ([], ctx) templates+    where +    applyElem :: ([[XmlTree]], Context) -> Template -> ([[XmlTree]], Context)+    applyElem (nodes, ctx') (TemplVariable v) = (nodes, processLocalVariable v Map.empty ctx')+    applyElem (nodes, ctx') t                 = (applyTemplate t ctx' : nodes, ctx')++applyComposite _ _ = []+++applyForEach :: Template -> Context -> [XmlTree]+applyForEach (TemplForEach expr sorting template) ctx+    = processContext sortedCtx $ applyTemplate template+    where +    sortedCtx = applySorting sorting ctxWOrule nodes+    ctxWOrule = ctxSetRule Nothing $ ctx+    nodes     = applySelect expr ctx++applyForEach _ _ = []++         +applyChoose :: Template -> Context -> [XmlTree]+applyChoose (TemplChoose whenList) ctx+    = applyWhenList whenList ctx++applyChoose _ _ = []+++applyWhenList :: [When] -> Context -> [XmlTree]+applyWhenList []  _ = []+applyWhenList ((WhenPart expr template):xs) ctx+    | applyTest expr ctx+	= applyTemplate template ctx+    | otherwise+	= applyWhenList xs ctx++applyMessage :: Template -> Context -> [XmlTree]+applyMessage (TemplMessage halt template) ctx+    | halt+	= error $ "Message(fatal): " ++ msg+    | otherwise+	= []	-- trace ("Message(trace): " ++ msg) []+    where+    msg     = xshow content+    content = applyTemplate template ctx++applyMessage _ _ = []++-- ------------------------------------++applyElement :: Template -> Context -> [XmlTree]+applyElement (TemplElement compQName uris attribSets template) ctx =+    return $ createElement name uris aliases fullcontent+  where +    aliases     = getAliases $ ctxGetStylesheet ctx+    name        = applyComputedQName compQName ctx+    fullcontent = applyAttribSets [] attribSets ctx ++ applyTemplate template ctx++applyElement _ _ = []+++-- create an element from a list of attributes followed by content++createElement :: QName -> UriMapping -> NSAliasing -> [XmlTree] -> XmlTree+createElement name uris aliases fullcontent =+    mkElement name (nsAttrs ++ distinctAttribs) content+  where +    nsAttrs            = uriMap2Attrs $ aliasUriMapping aliases uris+    distinctAttribs    = nubBy eqAttr $ reverse attribs +    (attribs, content) = span (isAttr) fullcontent+    eqAttr node1 node2 = equivQName (fromJust $ getAttrName node1) (fromJust $ getAttrName node2)  +++applyAttribute :: Template -> Context -> [XmlTree]+applyAttribute (TemplAttribute compQName template) ctx =+    return $ mkAttr qName content+  where +    qName   = applyComputedQName compQName ctx+    content = applyTemplate template ctx++applyAttribute _ _ = []++  +applyText :: Template -> Context -> [XmlTree]+applyText (TemplText s) _+    = [mkText s]++applyText _ _ = []+++applyValueOf :: Template -> Context -> [XmlTree]+applyValueOf (TemplValueOf expr) ctx+    = [mkText $ applyStringExpr expr ctx]++applyValueOf _ _ = []+++applyComment :: Template -> Context -> [XmlTree]+applyComment (TemplComment content) ctx = +    return $ mkCmt $ format $ collectTextnodes $ applyTemplate content ctx+  where+    format ""           = ""               -- could probably move to hxt...?+    format "-"          = "- "+    format ('-':'-':xs) = '-':' ':format ('-':xs)+    format (x:xs)       = x:format xs++applyComment _ _ = []++applyProcInstr :: Template -> Context -> [XmlTree]+applyProcInstr (TemplProcInstr nameExpr template) ctx =+    return $ mkXPiTree name $ format $ collectTextnodes $ applyTemplate template ctx+  where+    name      = applyStringExpr nameExpr ctx      +    format ""           = ""                       -- In a better Haskell: format = replaceAll "?>" "? >"+    format ('?':'>':xs) = '?':' ':'>':format xs    -- could probably move to hxt...?+    format (x:xs)       = x:format xs++applyProcInstr _ _ = []++-- ------------------------------------++applyApplTempl :: Template -> Context -> [XmlTree]+applyApplTempl (TemplApply expr mode args sorting) ctx =+    applyMatchRulesToEntireContext params rules mode sortedCtx+  where +    params      = createParamSet args ctx+    sortedCtx   = applySorting sorting ctx nodes+    nodes       = maybe (getChildrenNT $ ctxGetNode ctx)+                        (flip applySelect ctx)+                        expr+    rules       = getMatchRules $ ctxGetStylesheet ctx++applyApplTempl _ _ = []+++applyImports :: Template -> Context -> [XmlTree]+applyImports (TemplApplyImports) ctx= +    applyMatchRules Map.empty rules mode ctx+  where+    rules    = getRuleImports currRule+    mode     = getRuleMode currRule+    currRule = maybe (error "apply-imports must not be called during xsl:for-each") id $ ctxGetRule ctx++applyImports _ _ = []+++applyCallTempl  :: Template -> Context -> [XmlTree]+applyCallTempl (TemplCall name args) ctx =+    instantiateRule applyTemplate params rule ctx+  where+    params      = createParamSet args ctx+    rule        = maybe errNoRule id $ Map.lookup name rules+    rules       = getNamedRules $ ctxGetStylesheet ctx+    errNoRule   = error $ "No rule with qualified name: " ++ show name++applyCallTempl _ _ = []++-- ------------------------------------++applyCopy :: Template -> Context -> [XmlTree]+applyCopy (TemplCopy attrsets template) ctx+    | isRoot currNode			-- Case 1: Root node => just use the content template+	= applyTemplate template ctx+    | isElem currNode			-- Case 2: Any other element-node+	= return $ createElement name (getUriMap currNode) Map.empty fullcontent+    | otherwise				-- Just return the current node as result+	= return currNode        +  where+    currNode    = subtreeNT $ ctxGetNode ctx+    name        = fromJust $ getElemName currNode+    fullcontent = applyAttribSets [] attrsets ctx ++ applyTemplate template ctx++applyCopy _ _ = []++applyCopyOf :: Template -> Context -> [XmlTree]+applyCopyOf (TemplCopyOf expr)+    = concatMap (expandRoot) . xPValue2XmlTrees . evalXPathExpr expr+    where+    expandRoot node+	| isRoot node	= getChildren node+        | otherwise	= return node++applyCopyOf _ = const []++-- ------------------------------------++applyTemplate :: Template -> Context -> [XmlTree]+applyTemplate t@(TemplComposite _)     = applyComposite t+applyTemplate t@(TemplMessage _ _)     = applyMessage t+applyTemplate t@(TemplForEach _ _ _)   = applyForEach t+applyTemplate t@(TemplChoose _)        = applyChoose t+applyTemplate t@(TemplElement _ _ _ _) = applyElement t+applyTemplate t@(TemplAttribute _ _)   = applyAttribute t+applyTemplate t@(TemplText _)          = applyText t+applyTemplate t@(TemplValueOf _)       = applyValueOf t+applyTemplate t@(TemplComment _)       = applyComment t+applyTemplate t@(TemplProcInstr _ _)   = applyProcInstr t+applyTemplate t@(TemplApply _ _ _ _)   = applyApplTempl t+applyTemplate t@(TemplApplyImports)    = applyImports t+applyTemplate t@(TemplCall _ _)        = applyCallTempl t+applyTemplate t@(TemplCopy _ _)        = applyCopy t+applyTemplate t@(TemplCopyOf _)        = applyCopyOf t+applyTemplate   (TemplVariable _)      = const []	-- trace ("Warning: Unreacheable variable: " ++ show (getVarName v)) const []++-- ------------------------------------+-- "Main" :++applyStylesheetWParams :: XPathParams -> CompiledStylesheet -> XmlTree -> [XmlTree]+applyStylesheetWParams inputParams cs@(CompStylesheet matchRules _ vars _ strips _) rawDoc = +    map fixupNS $ applyMatchRules Map.empty matchRules Nothing ctxRoot+  where+    ctxRoot   = Ctx docNode [docNode] 1 1 gloVars Map.empty cs Nothing+    gloVars   = Map.map (evalVariableWParamSet extParams ctxRoot) vars+    extParams = Map.map (flip evalXPathExpr ctxRoot) inputParams+    docNode   = ntree $ expandNSDecls $ stripDocument strips rawDoc++applyStylesheet :: CompiledStylesheet -> XmlTree -> [XmlTree]+applyStylesheet  = applyStylesheetWParams Map.empty++-- ------------------------------------+-- calling named- and applying match-rules++applyMatchRulesToChildren :: ParamSet -> [MatchRule] -> (Maybe ExName) -> Context -> [XmlTree]+applyMatchRulesToChildren args rules mode ctx = +    applyMatchRulesToEntireContext args rules mode childCtx+  where+    childCtx = ctxSetNodes (getChildrenNT $ ctxGetNode ctx) ctx++applyMatchRulesToEntireContext :: ParamSet -> [MatchRule] -> Maybe ExName -> Context -> [XmlTree]+applyMatchRulesToEntireContext args rules mode ctx = processContext ctx (applyMatchRules args rules mode)++applyMatchRules :: ParamSet -> [MatchRule] -> (Maybe ExName) -> Context -> [XmlTree]+applyMatchRules _    []           mode ctx = matchDefaultRules mode ctx+applyMatchRules args (rule:rules) mode ctx = +    maybe (applyMatchRules args rules mode ctx) +          id+          (applyMatchRule args rule mode ctx)++applyMatchRule :: ParamSet -> MatchRule -> Maybe ExName -> Context -> Maybe [XmlTree]+applyMatchRule args rule@(MatRule expr _ ruleMode _ _ _) mode ctx =+  if mode==ruleMode && applyMatch expr ctx+    then Just $ instantiateRule applyTemplate args rule $ ctxSetRule (Just rule) ctx+    else Nothing++-- instantiateRule can either be used on match- or on named-rules.+-- It receives and processes the parameters and instantiate the rule-body.+-- The first argument will always be applyTemplate.+-- However, calling applyTemplate dircetly brakes Haskell's type system.++instantiateRule :: Rule a => (Template -> Context -> [XmlTree]) -> ParamSet -> a -> Context -> [XmlTree]+instantiateRule applyTemplat args rule ctx = +    applyTemplat (getRuleContent rule) ctxNew+  where +    ctxNew = processParameters (getRuleParams rule) args $ clearLocalVariables ctx++matchDefaultRules :: (Maybe ExName) -> Context -> [XmlTree]+matchDefaultRules mode ctx@(Ctx ctxNavNode _ _ _ _ _ stylesheet _)+    | isElem ctxNode				-- rules for match="*|/"+	= applyMatchRulesToChildren Map.empty rules mode ctx +    | isText ctxNode				-- rule for match="text()"+	= [ctxNode]+    | isAttr ctxNode				-- rule for match="@*"+	= [mkText $ collectTextnodes $ getChildren ctxNode]+    | otherwise					-- the glorious rest (PIs and comments):+	= []+    where +    rules   = getMatchRules stylesheet+    ctxNode = subtreeNT ctxNavNode++matchDefaultRules _ _ = []+  +-- ------------------------------------++-- Variables and Parameters++-- Evaluate a xsl:variable or xsl:param element and add the newly+-- created local variable to the context++processLocalVariable :: Variable -> ParamSet -> Context -> Context+processLocalVariable var@(MkVar _ name _) arguments ctx =    +    addVariableBinding name val ctx+  where+    val = evalVariableWParamSet arguments ctx var++processParameters :: [Variable] -> ParamSet -> Context -> Context+processParameters params arguments ctx+    = foldl (\c v -> processLocalVariable v arguments c) ctx params++evalVariableWParamSet :: ParamSet -> Context -> Variable -> XPathValue+evalVariableWParamSet ps ctx (MkVar isPar name exprVar)+    | isPar+	= maybe resultFromVar id $ Map.lookup name ps +    | otherwise+	= resultFromVar+  where+    resultFromVar = evalXPathExpr exprVar ctx++-- create a set of parameters (Names refering to XPath-values) from a set of Variable-placeholders (unevaluated expressions)+createParamSet :: Map ExName Variable -> Context -> ParamSet+createParamSet wParamList ctx = Map.map (evalVariableWParamSet Map.empty ctx) wParamList++-- ------------------------------------+-- handling of imported attributes++applyAttribSets :: [ExName] -> UsedAttribSets -> Context -> [XmlTree]+applyAttribSets callstack (UsedAttribSets sets) ctx = concatMap (\name -> applyAllAttrSetForName callstack name ctx) sets++applyAllAttrSetForName :: [ExName] -> ExName -> Context -> [XmlTree]+applyAllAttrSetForName callstack name ctx =++    if name `elem` callstack+    then error $ "Attribute-Set " ++ show name ++ " is recursively used." +++                 concatMap (("\n  used in "++) . show) callstack+    +    else if isNothing attrset+    then error $ "No attribute set with name: " ++ show name+    +    else concatMap (flip (applyAttribSet (name:callstack)) ctx) $ fromJust attrset++  where+    attrset = Map.lookup name $ getAttributeSets $ ctxGetStylesheet ctx++applyAttribSet :: [ExName] -> AttributeSet -> Context -> [XmlTree]+applyAttribSet callstack (AttribSet _ usedSets content) ctx = +    applyAttribSets callstack usedSets ctx ++ applyTemplate content ctx+    +-- ------------------------------------+-- Sorting++applySorting :: [SortKey] -> Context -> [NavXmlTree] -> Context+applySorting [] ctx nodes = ctxSetNodes nodes ctx+applySorting sortKeys ctx nodes = +    ctxSetNodes resultOrder ctx+  where+    resultOrder          = snd $ unzip sortedKVs+    sortedKVs            = sortBy compKV keysWVals+    keysWVals            = zip keys nodes+    keys                 = map extract nodes+    (extrFs, cmpFs)      = unzip $ map (flip applySortKey ctx) sortKeys++    -- helper functions:+    extract node         = map ($ ctxSetNodes [node] ctx) extrFs+    compKV (k1,_) (k2,_) = compressOrds $ compares k1 k2+    compares             = zipWith3 (($) $) cmpFs+    compressOrds         = maybe EQ id . find (/=EQ)++type SortVal = Either Float String++applySortKey :: SortKey -> Context -> ( Context -> SortVal+                                      , SortVal -> SortVal -> Ordering)+applySortKey (SortK expr typeATV orderATV) ctx+    | typ /= "number"+      &&+      typ /= "text" +	  = error $ "unsupported type in xsl:sort: " ++ typ+    | ordering /="ascending"+      &&+      ordering /="descending"+	  = error $ "order in xsl:sort element must be ascending or descending. Found: " ++ ordering+    | otherwise+	= (extractFct, cmpFct)+    where+    isNum          = typ == "number"+    isDesc         = ordering == "descending"+    ordering       = applyStringExpr orderATV ctx+    typ            = applyStringExpr typeATV ctx++    extractFct ctx'+	= let+	  val = applyStringExpr expr ctx'+	  in+          if isNum+          then Left $ readWDefault (-1.0 / 0.0) val+          else Right val++    cmpFct a+	= ( if isDesc then invertOrd else id ) +          .+          ( if isNum then cmpNum a else cmpString a )++    cmpNum (Left n1)  (Left n2)+	= compare n1 n2+    cmpNum _ _+	= error "internal error in cmpNum in applySortKey"++    cmpString (Right s1) (Right s2)+	= compare (map toLower s1) (map toLower s2)      -- The text comparison still needs to be improved...+    cmpString _ _+	= error "internal error in cmpString in applySortKey"++invertOrd :: Ordering -> Ordering+invertOrd EQ = EQ+invertOrd LT = GT+invertOrd GT = LT++-- ------------------------------------+-- Namespace FIXUP++fixupNS :: XmlTree -> XmlTree+fixupNS = compressNS . disambigNS++compressNS :: XmlTree -> XmlTree+compressNS = +    mapTreeCtx compressElem $ Map.fromAscList [("xml", xmlNamespace), ("xmlns", xmlnsNamespace)]+  +compressElem :: UriMapping -> XNode -> (UriMapping, XNode)+compressElem uris node+  | isElem node = (newUris, changeAttrl (filter $ isImportant) node)+  | otherwise   = (uris, node)+  where+    newUris       = uris `Map.union` getUriMap node+    isImportant n = not (isNsAttr n) +                         || not ((localPart $ fromJust $ getAttrName n) `Map.member` uris)++disambigNS :: XmlTree -> XmlTree+disambigNS = +    mapTreeCtx step $ Map.fromAscList [("xml", xmlNamespace), ("xmlns", xmlnsNamespace)]+  where+    step uris node+      | isElem node = let uris'               = uris `Map.union` getUriMap node+                          (newUris, newNode') = disambigElem uris' node in+                        (newUris, setUriMap newUris newNode')+      | otherwise   = (uris, node)++disambigElem :: UriMapping -> XNode -> (UriMapping, XNode)+disambigElem nsMap element =    +    (newNsMap, XTag                  +                 (remapNsName newNsMap $ fromJust $ getElemName element)+                 $ map (changeName $ remapNsName newNsMap) $ fromJust $ getAttrl element )+  where+    newNsMap   = nsMap `Map.union` Map.fromAscList newTuples+    newTuples  = zip newPrefs $ nub newUris+    newUris    = filter (`notElem` oldUris) $ filter (not . null) $ map namespaceUri $ mapMaybe getName+                   (element : map getNode (fromJust $ getAttrl element))+    newPrefs   = filter (`notElem` oldPrefs) ["ns" ++ show i | i <- [(1::Int)..]]+    oldPrefs   = Map.keys nsMap+    oldUris    = Map.elems nsMap  ++remapNsName :: UriMapping -> QName -> QName+remapNsName nsMap name = ++    if maybe (nsUri=="") (== nsUri) luUri+    then name++    else mkQName newPref (localPart name) nsUri++  where+    luUri   = Map.lookup (namePrefix name) nsMap+    newPref = head $ (++ (error $ "int. error: No prefix for " ++ nsUri)) +                $ Map.keys $ Map.filter (==namespaceUri name) nsMap+    nsUri   = namespaceUri name+
+ src/Text/XML/HXT/XSLT/Common.hs view
@@ -0,0 +1,388 @@+-- ------------------------------------------------------------++{- |+   Module     : Text.XML.HXT.XSLT.Application+   Copyright  : Copyright (C) 2006 Tim Walkenhorst, Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: Common.hs,v 1.4 2006/11/11 15:36:05 hxml Exp $++   Common imports and functions for HXSLT++-}++-- ------------------------------------------------------------++module Text.XML.HXT.XSLT.Common+    ( module Control.Arrow+    , module Text.XML.HXT.Arrow.XmlNode+    , module Text.XML.HXT.DOM.XmlKeywords+    , module Text.XML.HXT.DOM.XmlTreeTypes+    , module Text.XML.HXT.DOM.XmlTreeFunctions+    , module Text.XML.HXT.DOM.FormatXmlTree+    , module Text.XML.HXT.XPath.XPathDataTypes+    , module Text.XML.HXT.XPath.XPathParser+    , module Text.XML.HXT.XPath.XPathEval+    , module Text.XML.HXT.XPath.XPathFct+    , module Text.XML.HXT.XPath.XPathToString+    , module Data.NavTree+    , module Data.Tree.Class++    -- Tree Functions+    , filterTree                 -- Tree t => (a -> Bool) -> t a -> Maybe (t a)+    , mapTreeCtx                 -- Tree t => (c -> a -> (c, b)) -> c -> t a -> t b+    , filterTreeCtx              -- Tree t => (c -> a -> (c, Bool)) -> c -> t a -> Maybe (t a)+    , zipTreeWith                -- Tree t => (a -> b -> c) -> t a -> t b -> t c+    , zipTree                    -- Tree t => t a -> t b -> t (a,b)           (zipTreeWith (,))+    , unzipTree                  -- Tree t => t (a,b) -> (t a, t b)           (mapTree fst &&& mapTree snd)++    -- XML functions+    , isRoot                     -- XmlTree -> Bool+    , isElemType                 -- XmlNode n => QName -> n -> Bool+    , isAttrType                 -- XmlNode n => QName -> n -> Bool+    , isWhitespaceNode           -- XmlTree -> Bool+    , collectTextnodes           -- [XmlTree] -> String+    , tryFetchAttribute          -- XmlNode n => n -> QName -> Maybe String+    , fetchAttributeWDefault     -- XmlNode n => n -> QName -> String -> String+    , fetchAttribute             -- XmlNode n => n -> QName -> String+    , hasAttribute               -- XmlNode n => n -> QName -> Bool+    , setAttribute               -- XmlNode n => QName -> String -> n -> n++    -- Namespace functions+    , mkQName                    -- String (prefix) -> String (local) -> String (uri) -> QName+    , ExName(ExName)             -- String (local) -> String (uri) -> ExName+    , mkExName                   -- QName -> ExName+    , exLocal		         -- ExName -> String+    , exUri		         -- ExName -> String+    , parseExName                -- UriMapping -> String -> ExName+    , UriMapping                 -- Map String String+    , getUriMap                  -- XmlNode n => n -> UriMapping (extract an Ns-Uri Map from an Element node)+    , setUriMap                  -- XmlNode n => UriMap -> n -> n+    , uriMap2Attrs               -- UriMapping -> [XmlTree]      (create xmlns:* Attribute nodes for Uri-Mapping)+    , expandNSDecls              -- XmlTree -> XmlTree+    , lookupPrefix               -- UriMapping -> String -> String+    , isNsAttr                   -- XmlTree -> Bool++    -- additions to XPATH:+    , mkLiteralExpr              -- String -> Expr+    , mkStringExpr               -- Expr -> Expr+    , mkBoolExpr                 -- Expr -> Expr+    , mkTrueExpr                 -- Expr+    , concatExpr                 -- [Expr] -> Expr+    , splitExpr                  -- Expr -> [Expr]+    , unionExpr                  -- [Expr] -> Expr+    , splitMatchByPrio           -- Expr -> [(Float, Expr)]+    , computePriority            -- Expr -> Float+    , computeNTestPriority       -- NodeTest -> Float+    , isMatchExpr                -- Expr -> Bool++    -- Misc.:+    , fromJustErr                -- String -> Maybe a -> a, fromJust with error message+    , readWDefault               -- Read a => a -> String -> a+    )+where++import Control.Arrow++import Text.XML.HXT.Arrow.XmlNode+    ( XmlNode (..)+    , mkElement+    , mkAttr+    , mergeAttrl+    )+import Text.XML.HXT.DOM.XmlKeywords++import Text.XML.HXT.DOM.XmlTreeTypes+    ( XmlTree+    , XNode(XTag, XAttr)+    , QName(QN, namePrefix, localPart, namespaceUri)+    , equivQName+    )+import Text.XML.HXT.DOM.XmlTreeFunctions+    ( newRoot+    , xshow+    , isRootNode+    , mkXPiTree+    )+import Text.XML.HXT.DOM.FormatXmlTree+    ( formatXmlTree )++import Text.XML.HXT.XPath.XPathDataTypes+    ( Expr(LiteralExpr, FctExpr, GenExpr, PathExpr)+    , Op(Union)+    , LocationPath (LocPath)+    , Path (Rel)+    , XStep (Step)+    , NodeTest (NameTest, PI, TypeTest)+    , NavXmlTree+    , XPathValue(XPVNode, XPVBool, XPVString, XPVError)+    )++import Text.XML.HXT.XPath.XPathParser+    ( parseXPath )++import Text.XML.HXT.XPath.XPathEval+    ( evalExpr )++import Text.XML.HXT.XPath.XPathFct+    ( isNotInNodeList )++import Text.XML.HXT.XPath.XPathToString+    ( xPValue2XmlTrees )++import Data.Map (Map)+import qualified Data.Map as Map hiding (Map)++import Data.Tree.Class ++import Data.NavTree+    ( NavTree+    , ntree+    , subtreeNT+    , upNT+    , downNT+    , rightNT+    , leftNT+    , getChildrenNT+    )++import Data.Maybe+import Data.List+import Data.Char++--------------------------- +-- Tree functions++-- mapTree :: Functor t => (a -> b) -> t a -> t b+-- mapTree = fmap++-- "map" on a tree with a context. +-- Contextual information from the ancestors of the current node can be collected in the context++mapTreeCtx :: Tree t => (c -> a -> (c, b)) -> c -> t a -> t b+mapTreeCtx f c tree = +    mkTree b $ map (mapTreeCtx f cN) $ getChildren tree+  where +    (cN, b) = f c $ getNode tree++filterTree :: Tree t => (a -> Bool) -> t a -> Maybe (t a)+filterTree p tree = if p node+                      then Just $ mkTree node $ mapMaybe (filterTree p) $ getChildren tree+                      else Nothing+                    where node = getNode tree++-- "filter" on a tree with a context. +-- Contextual information from the ancestors of the current node can be collected in the context+filterTreeCtx :: Tree t => (c -> a -> (c, Bool)) -> c -> t a -> Maybe (t a)+filterTreeCtx p c tree =+  if b +    then Just $ mkTree node $ mapMaybe (filterTreeCtx p cN) $ getChildren tree+    else Nothing+  where +    (cN, b) = p c node+    node    = getNode tree++zipTreeWith   :: Tree t => (a -> b -> c) -> t a -> t b -> t c+zipTreeWith f a b = mkTree (f (getNode a) (getNode b)) +                       $ zipWith (zipTreeWith f) (getChildren a) $ getChildren b++zipTree     :: Tree t => t a -> t b -> t (a,b)+zipTree      = zipTreeWith (,)++unzipTree  :: Functor t => t (a,b) -> (t a, t b)+unzipTree   = fmap fst &&& fmap snd++--------------------------- +-- Xml Functions++isRoot :: XmlTree -> Bool+isRoot = isRootNode . getNode++collectTextnodes :: [XmlTree] -> String+collectTextnodes = concat . mapMaybe getText++isElemType :: XmlNode n => QName -> n -> Bool+isElemType qn node = isElem node && equivQName qn (fromJust $ getElemName node)++isAttrType :: XmlNode n => QName -> n -> Bool+isAttrType qname node = isAttr node && equivQName qname (fromJust $ getAttrName node)++tryFetchAttribute :: XmlNode n => n -> QName -> Maybe String+tryFetchAttribute node qn+  | isElem node =++      if null candidates +      then Nothing++      else if length candidates > 1+      then error ("More than one attribute " ++ show qn)++      else Just $ collectTextnodes $ getChildren $ head candidates++  | otherwise = Nothing    +  where +    candidates = filter (isAttrType qn) $ fromJust $ getAttrl node++fetchAttributeWDefault ::  XmlNode n => n -> QName -> String -> String+fetchAttributeWDefault node name def = maybe def id (tryFetchAttribute node name)++fetchAttribute ::  XmlNode n => n -> QName -> String+fetchAttribute node name = fetchAttributeWDefault node name $ error ("Element " ++ show (getElemName node) ++ " has no attribute: " ++ show name)++hasAttribute ::  XmlNode n => n -> QName -> Bool+hasAttribute node = isJust . tryFetchAttribute node++setAttribute :: XmlNode n => QName -> String -> n -> n+setAttribute qn val node+  | isElem node = setElemAttrl (newA : attrs) node+  | otherwise   = error $ "setAttribute on none-element node"             -- how print an XmlNode...+  where +    attrs = filter (not . isAttrType qn) $ fromJust $ getAttrl node+    newA  = mkTree (XAttr qn) [mkText val]++isWhitespaceNode :: (XmlNode n) => n -> Bool+isWhitespaceNode = maybe False (all isSpace) . getText++--------------------------- +-- Namespace Functions++mkQName :: String -> String -> String -> QName+mkQName p l u = QN {namePrefix=p, localPart=l, namespaceUri=u}++-- Expanded name, is unique can therefore be used as a key (unlike QName)+data ExName = ExName String String+  deriving (Show, Eq, Ord)++mkExName :: QName -> ExName+mkExName qn = ExName (localPart qn) (namespaceUri qn)++exLocal, exUri :: ExName -> String+exLocal (ExName l _) = l+exUri   (ExName _ u) = u++parseExName :: UriMapping -> String -> ExName+parseExName uris str =++    if noPrefix +    then ExName str ""++    else ExName loc $ lookupPrefix uris prefix++  where+    noPrefix       = null loc +    loc            = drop 1 loc'                +    (prefix, loc') = span (/= ':') str++-- Mapping from namespace-Prefixes to namespace-URIs+type UriMapping = Map String String++getUriMap :: XmlNode n => n -> UriMapping+getUriMap = uriMappingsFromNsAttrs . filter isNsAttr . maybe err id . getAttrl+  where err = error "Internal error: getUriMap on none-element node"++setUriMap :: XmlNode n => UriMapping -> n -> n+setUriMap nsMap node = setElemAttrl (mergeAttrl (maybe [] id $ getAttrl node) $ uriMap2Attrs nsMap) node++uriMap2Attrs :: UriMapping -> [XmlTree]+uriMap2Attrs  = map joinNsAttr . Map.toAscList++lookupPrefix :: UriMapping -> String -> String+lookupPrefix uris prefix = fromJustErr ("No namespace-Uri bound to prefix: "++prefix) $ Map.lookup prefix uris++expandNSDecls :: XmlTree -> XmlTree+expandNSDecls = mapTreeCtx (expandNSElem) $ Map.fromAscList [("xml", xmlNamespace), ("xmlns", xmlnsNamespace)]++expandNSElem :: UriMapping -> XNode -> (UriMapping, XNode)+expandNSElem umap node+  | isElem node = (umapNew, nodeNew)+  | otherwise   = (umap, node)+  where+    nodeNew          = XTag (fromJust $ getElemName node) attrNew+    attrNew          = attrs ++ map joinNsAttr (Map.toAscList umapNew)+    umapNew          = uriMappingsFromNsAttrs nsAttrs `Map.union` umap+    (nsAttrs, attrs) = partition isNsAttr $ fromJust $ getAttrl node++uriMappingsFromNsAttrs :: [XmlTree] -> UriMapping+uriMappingsFromNsAttrs = Map.fromList . map splitNsAttr++isNsAttr :: XmlTree -> Bool+isNsAttr = maybe False ((==) xmlnsNamespace . namespaceUri) . getAttrName++splitNsAttr :: XmlTree -> (String, String)+splitNsAttr node = (localPart $ fromJust $ getAttrName node, collectTextnodes $ getChildren node)++joinNsAttr :: (String, String) -> XmlTree+joinNsAttr (prefix, uri) = mkAttr (mkQName "xmlns" prefix xmlnsNamespace) [mkText uri]++-------------------------+-- additions to XPATH:++mkLiteralExpr :: String -> Expr+mkLiteralExpr = LiteralExpr++mkStringExpr :: Expr -> Expr+mkStringExpr = FctExpr "string" . return++mkBoolExpr :: Expr -> Expr+mkBoolExpr = FctExpr "boolean" . return++mkTrueExpr :: Expr+mkTrueExpr = FctExpr "true" []++concatExpr :: [Expr] -> Expr+concatExpr []                    = LiteralExpr ""+concatExpr [lit@(LiteralExpr _)] = lit+concatExpr xs1@[_]               = FctExpr "string" xs1+concatExpr xs                    = FctExpr "concat" xs++splitExpr :: Expr -> [Expr]+splitExpr (GenExpr Union expr) = expr+splitExpr rest                 = [rest]++unionExpr :: [Expr] -> Expr+unionExpr [e] = e+unionExpr es  = GenExpr Union es++-- Intelligent splitting: Split an expression into subexpressions with equal priority+-- for example: "a|c/d|e|f/g"  => [(0.0, "a|e"), (0.5, "c/d|f/g")]+splitMatchByPrio :: Expr -> [(Float, Expr)]+splitMatchByPrio = +    map compress . groupBy eq . sortBy cmp . map (computePriority &&& id) . splitExpr+  where+    eq  x y  = fst x == fst y+    cmp x y  = compare (fst x) (fst y)+    compress = (head *** unionExpr) . unzip++computePriority :: Expr -> Float+computePriority (PathExpr Nothing (Just (LocPath Rel [Step _ ntest []]))) = computeNTestPriority ntest+computePriority _ = 0.5++computeNTestPriority :: NodeTest -> Float+computeNTestPriority (PI _)        =  0.0+computeNTestPriority (TypeTest _)  = -0.5+computeNTestPriority (NameTest nt) +  | namePrefix nt /= ""+    && localPart nt == "*"        = -0.25+  | localPart nt == "*"           = -0.5+  | otherwise                     =  0.0++isMatchExpr :: Expr -> Bool+isMatchExpr (GenExpr Union exprs)                          = all isMatchExpr exprs+isMatchExpr (PathExpr _ _)                                 = True+isMatchExpr (FctExpr "id" [LiteralExpr _])                 = True+isMatchExpr (FctExpr "key" [LiteralExpr _, LiteralExpr _]) = True+isMatchExpr _                                              = False++--------------------------- +-- Misc:++fromJustErr :: String -> Maybe a -> a+fromJustErr msg = maybe (error msg) id ++readWDefault :: Read a => a -> String -> a+readWDefault a str = fst $ head $ reads str ++ [(a, "")]++--------------------------- 
+ src/Text/XML/HXT/XSLT/Compilation.hs view
@@ -0,0 +1,595 @@+-- ------------------------------------------------------------++{- |+   Module     : Text.XML.HXT.XSLT.Application+   Copyright  : Copyright (C) 2006 Tim Walkenhorst, Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: Compilation.hs,v 1.6 2006/11/11 15:36:05 hxml Exp $++   The compilation functions for XSLT stylesheets++-}++-- ------------------------------------------------------------++module Text.XML.HXT.XSLT.Compilation +    ( prepareXSLTDocument        -- :: XmlTree -> XmlTree+    , assembleStylesheet         -- :: XmlTree -> [CompiledStylesheet] -> CompiledStylesheet+    )+where++import Control.Monad++import Data.Maybe+import Data.Either+import Data.List+import qualified Data.Map as Map hiding (Map)+import Data.Map(Map)++import Text.ParserCombinators.Parsec.Prim(runParser)++import Text.XML.HXT.XSLT.Common+import Text.XML.HXT.XSLT.Names+import Text.XML.HXT.XSLT.CompiledStylesheet+++-- No deep meaning just a shortcut notation for a *very* common expression...++infixl 9 ><++(><)	:: XmlNode n => (UriMapping -> a ) -> n -> a+f >< node+    = f $ getUriMap node++-- --------------------------++parseExpr :: UriMapping -> String -> Expr+parseExpr uris selectStr+    = either (error.show) id parseResult                               +    where+    parseResult = runParser parseXPath (Map.toList uris) ("select-expr:"++selectStr) selectStr ++parseSelect :: UriMapping -> String -> SelectExpr+parseSelect uris+    = SelectExpr . parseExpr uris++parseTest :: UriMapping -> String -> TestExpr+parseTest uris+    = TestExpr . mkBoolExpr . parseExpr uris++parseStringExpr :: UriMapping -> String -> StringExpr+parseStringExpr uris+    = StringExpr . mkStringExpr . parseExpr uris++parseMatch :: UriMapping -> String -> MatchExpr+parseMatch uris str+    = if isMatchExpr expr+      then MatchExpr expr+      else error $ str ++ " is not a legal match-expression"+    where +    expr = parseExpr uris str++-- --------------------------++parseAVT :: UriMapping -> String -> StringExpr+parseAVT uris str = +    StringExpr $ concatExpr $ splitAVT str ""+  where++    splitAVT :: String -> String -> [Expr]+    splitAVT ""           acc = acc2lit acc+    splitAVT ('{':'{':xs) acc = splitAVT xs $ '{':acc+    splitAVT ('}':'}':xs) acc = splitAVT xs $ '}':acc+    splitAVT ('{':xs)     acc = let (body, rest) = span (`notElem` "{}") xs in+                                  if not (null rest) && head rest == '}'+                                    then acc2lit acc ++ parseExpr uris body : splitAVT (tail rest) ""+                                    else error $ "Unterminated expression " ++ xs ++ " in AVT."+    splitAVT ('}':_)      _   = error $ "deserted '}' in AVT."+    splitAVT (x:xs)       acc = splitAVT xs $ x:acc++    acc2lit :: String -> [Expr] +    acc2lit ""  = []+    acc2lit acc = [mkLiteralExpr $ reverse acc]++-- --------------------------++-- extract ComputedQName from "name" and "namespace" AVTs of an xsl:element- or xsl-attribute-node+compileComputedQName :: XmlTree -> ComputedQName+compileComputedQName node =+    (CompQName><node) nameAVT nsAVT+  where +    nameAVT  = parseAVT><node $ fetchAttribute node xsltName+    nsAVT    = parseAVT><node $ fetchAttributeWDefault node xsltNamespace ""++-- --------------------------++compileComposite :: [XmlTree] -> Template+compileComposite = TemplComposite . map (compileTemplate . return)++compileMessage :: XmlTree -> Template+compileMessage node = TemplMessage halt content+  where halt     = termAttr == "yes"+        termAttr = fetchAttributeWDefault node xsltTerminate "no"+        content  = compileTemplate (getChildren node)++compileForEach :: XmlTree -> Template+compileForEach node = TemplForEach expr sorting template+  where expr       = parseSelect><node $ fetchAttribute node xsltSelect+        sorting    = map compileSortKey srt+        template   = compileTemplate cnt+        (srt, cnt) = partition (isElemType xsltSort) $ getChildren node++compileChoose :: XmlTree -> Template+compileChoose node = TemplChoose whenParts+  where whenParts  = map compl children+        children   = filter isElem (getChildren node)+        compl node' = let elemName = fromJust $ getElemName node' in+                        if      equivQName elemName xsltWhen      then compileWhen node'+                        else if equivQName elemName xsltOtherwise then compileOtherwise node'+                        else error ("No elements of type " ++ show elemName ++ " allowed within xsl-choose template!")++compileWhen :: XmlTree -> When+compileWhen node = WhenPart expr $ compileTemplate $ getChildren node+  where expr     = parseTest><node $ fetchAttribute node xsltTest++-- Otherwise is treated as a when-Part with node-test "true()"+compileOtherwise :: XmlTree -> When+compileOtherwise node = WhenPart (TestExpr mkTrueExpr) $ compileTemplate $ getChildren node++-- "if" is treated as a convenience-form of choose with exactly one "when"-Part+compileIf :: XmlTree -> Template+compileIf = TemplChoose . return . compileWhen++-- -----------------------------------++parseExNames :: UriMapping -> String -> [ExName]+parseExNames urm = map (parseExName urm) . words++compileElement :: XmlTree -> Template+compileElement node = +    TemplElement compQName Map.empty attribSets template+  where +    compQName   = compileComputedQName node+    attribSets  = UsedAttribSets $ parseExNames><node+                  $ fetchAttributeWDefault node xsltUseAttributeSets ""+    template    = compileTemplate (getChildren node)++compileAttribute :: XmlTree -> Template+compileAttribute node = +    TemplAttribute (compileComputedQName node) $ compileTemplate (getChildren node)++-- compiles xsl:text+compileText :: XmlTree -> Template+compileText = TemplText . collectTextnodes . getChildren++-- compiles textNode +compileTextnode :: XmlTree -> Template+compileTextnode = TemplText . fromJust . getText++compileValueOf :: XmlTree -> Template+compileValueOf node = +    TemplValueOf $ parseStringExpr><node $ fetchAttribute node xsltSelect++compileComment :: XmlTree -> Template+compileComment = TemplComment . compileTemplate . getChildren++compileProcInstr :: XmlTree -> Template+compileProcInstr node = +   TemplProcInstr name content+  where+    name    = parseAVT><node  $ fetchAttribute node xsltName+    content = compileTemplate $ getChildren node++-- -----------------------------------++compileLiteralResultElement :: XmlTree -> Template+compileLiteralResultElement node =+    TemplElement compQName nsUris attribSets content+  where +    nsUris             = extractAddUris node+    compQName          = LiteralQName   $ fromJust $ getElemName node+    attribSets         = UsedAttribSets $ parseExNames><node $ attrSetsStr+    attrSetsStr        = fetchAttributeWDefault node xsltUseAttributeSetsLRE ""+    content            = TemplComposite $ attributes ++ [template]+    attributes         = mapMaybe (compileLREAttribute><node) $ fromJust $ getAttrl node+    template           = compileTemplate (getChildren node)++compileLREAttribute :: UriMapping -> XmlTree -> Maybe Template+compileLREAttribute uris node = +    if isSpecial +      then Nothing+      else Just $ TemplAttribute (LiteralQName name) val  +  where +    isSpecial = namespaceUri name `elem` [xsltUri, xmlnsNamespace]+    name      = fromJust $ getAttrName node+    val       = TemplValueOf $ parseAVT uris $ collectTextnodes $ getChildren node++-- -----------------------------------++compileApplyTempl :: XmlTree -> Template+compileApplyTempl node =+    TemplApply expr mode args sorting+  where+    expr    = liftM (parseSelect><node) $ tryFetchAttribute node xsltSelect+    mode    = liftM (parseExName><node) $ tryFetchAttribute node xsltMode+    args    = compileVariables          $ filter (isElemType xsltWithParam) $ par+    sorting =  map compileSortKey srt+    (srt,par) =  partition (isElemType xsltSort) $ getChildren node++compileApplyImports :: XmlTree -> Template+compileApplyImports _node+    = TemplApplyImports++compileCallTempl :: XmlTree -> Template+compileCallTempl node =+    TemplCall name args+  where+    name = parseExName><node $ fetchAttribute node xsltName+    args = compileVariables  $ filter (isElemType xsltWithParam) $ getChildren node++compileTemplVariable :: XmlTree -> Template+compileTemplVariable = TemplVariable . compileVariable++-- -----------------------------------++compileCopy :: XmlTree -> Template+compileCopy node =+    TemplCopy attribSets $ compileTemplate (getChildren node)+  where+    attribSets  = UsedAttribSets $ parseExNames><node $ fetchAttributeWDefault node xsltUseAttributeSets ""++compileCopyOf :: XmlTree -> Template+compileCopyOf node = TemplCopyOf $ parseExpr><node $ fetchAttribute node xsltSelect++-- -----------------------------------++compileTemplate :: [XmlTree] -> Template+compileTemplate [node]       = +   if isElem node+   then let elemName = fromJust $ getElemName node in        +        if      equivQName elemName xsltMessage        then compileMessage       node+        else if equivQName elemName xsltForEach        then compileForEach       node+        else if equivQName elemName xsltChoose         then compileChoose        node   +        else if equivQName elemName xsltIf             then compileIf            node+        else if equivQName elemName xsltElement        then compileElement       node+        else if equivQName elemName xsltAttribute      then compileAttribute     node+        else if equivQName elemName xsltText           then compileText          node+        else if equivQName elemName xsltValueOf        then compileValueOf       node+        else if equivQName elemName xsltComment        then compileComment       node+        else if equivQName elemName xsltProcInstr      then compileProcInstr     node+        else if equivQName elemName xsltApplyTemplates then compileApplyTempl    node+        else if equivQName elemName xsltApplyImports   then compileApplyImports  node+        else if equivQName elemName xsltCallTemplate   then compileCallTempl     node+        else if equivQName elemName xsltVariable       then compileTemplVariable node+        else if equivQName elemName xsltCopy           then compileCopy          node+        else if equivQName elemName xsltCopyOf         then compileCopyOf        node++        -- no other xslt elements allowed here:+        else if namespaceUri elemName == xsltUri+        then error $ "xslt-element " ++ localPart elemName ++ " not allowed within this context."++        -- for now all other elements will be considered as Literal Result Elements+        else compileLiteralResultElement node++   else if isText node then compileTextnode node++   else+       error $ "Unsupported node-type in xslt sheet: " ++ show (getNode node)+compileTemplate list = compileComposite list+++-- -----------------------------------+-- Assembling of the entire stylesheet++assembleStylesheet :: XmlTree -> [CompiledStylesheet] -> CompiledStylesheet+assembleStylesheet xslNode imports =+    CompStylesheet matchRules namedRules variables attsets strips aliases+  where +    -- entire contents:+    (namedRules,    +     matchRules)          = assembleRules ruleElems importedMatchRules importedNamedRules+    variables             = assembleVariables varElems importedVariables+    attsets               = assembleAttrSets attsetElems importedAttribSets+    strips                = assembleStrips stripElems preserveElems importedStrips+    aliases               = assembleAliases nsAliasElems importedAliases++    -- element content:+    (nsAliasElems, _r5)   = partition (isElemType xsltNamespaceAlias) r4+    (ruleElems, r4)       = partition (isElemType xsltTemplate) r3+    (varElems, r3)        = partition (\node -> isElemType xsltVariable node || isElemType xsltParam node) r2+    (attsetElems, r2)     = partition (isElemType xsltAttributeSet) r1+    (preserveElems, r1)   = partition (isElemType xsltPreserveSpace) r0+    (stripElems, r0)      = partition (isElemType xsltStripSpace) $ getChildren xslNode++    -- imported stuff:+    importedAttribSets    = map getAttributeSets imports+    importedVariables     = map getVariables revImports+    importedNamedRules    = map getNamedRules revImports+    importedMatchRules    = concatMap getMatchRules revImports+    importedStrips        = concatMap getStrips revImports+    importedAliases       = map getAliases revImports+    revImports            = reverse imports++assembleRules :: [XmlTree] -> [MatchRule] -> [Map ExName NamedRule] -> (Map ExName NamedRule, [MatchRule])+assembleRules nodes importedMatches importedProcs =+    (resProcs, resMatches)+  where+  +  -- matches:  +    resMatches       = localMatches ++ importedMatches+    localMatches     = reverse $ sortBy cmp matches+    cmp rulA rulB    = compare (getRulePrio rulA) (getRulePrio rulB)++  -- procedures:+    resProcs         = Map.unions (localProcs:importedProcs)+    localProcs       = foldl ins Map.empty procs+    ins map' rule    = Map.insertWith (error $ "named-rule "++ show (getRuleName rule) ++" is already defined on this level")+                                     (getRuleName rule) rule map'++  -- compile all xsl:template's:+    (procs, matches) = catMaybes *** concat $ unzip $ map (compileRule importedMatches) nodes++assembleVariables :: [XmlTree] -> [(Map ExName Variable)] -> (Map ExName Variable)       +assembleVariables varElems = Map.unions . (compileVariables varElems:)++assembleAttrSets :: [XmlTree] -> [Map ExName [AttributeSet]] -> Map ExName [AttributeSet]+assembleAttrSets attsetElems =+    foldr (Map.unionWith (++)) localAttribSets+  where+    localAttribSets       = foldr insertAs Map.empty+                            $ map compileAttributeSet attsetElems+    insertAs as@(AttribSet name _ _) = Map.insertWith (++) name [as]++assembleStrips :: [XmlTree] -> [XmlTree]-> [Strips] -> [Strips]+assembleStrips stripElems preserveElems =+    (localStrips :)+  where+    localStrips = feedStrips (concatMap compileStrips stripElems)+                  $ feedPreserves (concatMap compilePreserves preserveElems)+                  $ Map.empty++assembleAliases :: [XmlTree] -> [NSAliasing] -> NSAliasing+assembleAliases nsAliasElems =+    Map.unions . (localAliases:)+  where+    localAliases          = foldr addAlias' Map.empty nsAliasElems+    addAlias' node        = uncurry (addAlias><node) $ compileAlias node++-- -----------------------------------+--++{- not longer in use, all functionality within the IO monad moved to XsltArrows:++isStylesheetElem :: XmlTree -> Bool+isStylesheetElem node = +  (isElemType xsltTransform node || isElemType xsltStylesheet node) && hasAttribute node xsltVersion++isLREstylesheet :: XmlTree -> Bool+isLREstylesheet node  = hasAttribute node xsltVersionLRE++lre2template :: XmlTree -> XmlTree+lre2template = mkElement xsltTemplate [mkAttr xsltMatch [mkText "/"]] . return++lre2stylesheet :: XmlTree -> XmlTree+lre2stylesheet = mkElement xsltTransform [] . return . lre2template++-- -----------------------------------+-- Stylesheet compilation in the IO Monad:++compileStylesheetFromUri :: String -> IO CompiledStylesheet+compileStylesheetFromUri = compileStylesheetFromUriWIncStk []++compileStylesheetFromUriWIncStk :: [String] -> String -> IO CompiledStylesheet+compileStylesheetFromUriWIncStk incstack uri = readStylesheetWIncStk incstack uri >>= compileStylesheetWIncStk (uri:incstack)++readStylesheetWIncStk :: [String] -> String -> IO XmlTree+readStylesheetWIncStk incstack uri = +  if uri `elem` incstack+  then error $ "Error: " ++ uri ++ " is recursively imported/included." +            ++ concatMap ("\n  imported/included from: " ++) incstack+  else readDocumentIO [(a_preserve_comment, "0")] uri >>= return . prepareXSLTDocument++compileStylesheet ::  XmlTree -> IO CompiledStylesheet+compileStylesheet = compileStylesheetWIncStk [] . prepareXSLTDocument++compileStylesheetWIncStk :: [String] -> XmlTree -> IO CompiledStylesheet+compileStylesheetWIncStk incstack node = +  +  -- ======= 1: simplified syntax+  if isLREstylesheet xslNode then+    return $ assembleStylesheet (lre2stylesheet xslNode) []++  -- ======= 2: regular syntax+  else if isStylesheetElem xslNode then +    do+      -- ======= 2.1: gather included stylesheets+      expandedContent <- expandIncludes incstack content++      -- ======= 2.2: compile imported stylesheets+      (imps, rest) <- return $ partition (isElemType xsltImport) expandedContent+      imports      <- mapM (compileStylesheetFromUriWIncStk incstack . getHRef) $ imps++      -- ======= 2.3: compile content+      expandedStylesheet <- return $ setChildren rest xslNode+      return $ assembleStylesheet expandedStylesheet imports+     +  -- ======= 3: unknown document type: +  else error "Expected: Either xsl:stylesheet/xsl:transform or simplified syntax"++  where +    content     = getChildren xslNode+    (xslNode:_) = filter isElem $ getChildren $ node+    getHRef     = flip fetchAttribute xsltHRef+++expandIncludes :: [String] -> [XmlTree] -> IO [XmlTree]+expandIncludes incstack = liftM concat . mapM (expandInclude incstack) . filter isElem++expandInclude :: [String] -> XmlTree -> IO [XmlTree]+expandInclude incstack node = +  if isElemType xsltInclude node+    then +    do+       -- ======= read include-stylesheet and extract stylesheet node+       href        <- return $ fetchAttribute node xsltHRef+       docNode     <- readStylesheetWIncStk incstack href+       (xslNode:_) <- return $ filter isElem $ getChildren docNode++       -- ======= check for simplified syntax+       if isLREstylesheet xslNode+         then return [lre2template xslNode]++       -- ======= check for xsl:stylesheet or xsl:transform+         else if isStylesheetElem xslNode +                 then expandIncludes (href:incstack) $ getChildren xslNode++       -- ======= include file has unknown type+                 else error $ "Error: Included file " ++ href ++ " is not a stylesheet"+    else return [node]+xxx -}++-- -----------------------------------++-- compile a rule from an xsl:template element.+-- The resulting rule can either be a one or more match rule or a named rule, or both.+-- The first argument is needed for xsl:apply-imports and contains+-- a list of all subsequently imported rules+compileRule :: [MatchRule] -> XmlTree -> (Maybe NamedRule, [MatchRule])+compileRule imports node =++    if isNothing match && isNothing name +    then error "Error: Bogus rule (xsl:template) with neither match nor name attribute is illegal"++    else if isJust mode && isNothing match +    then error "Error: Bogus mode attribute on none-match rule is illegal"++    else if isJust priority && isNothing match +    then error "Error: Bogus priority attribute on none-match rule is illegal"++    else +      (+        liftM (\n -> NamRule n params template) name+      , concat $ maybeToList $ liftM (assembleMatchRule priority mode imports params template) match+      ) ++  where+    match      = liftM (parseMatch><node)  $ tryFetchAttribute node xsltMatch+    name       = liftM (parseExName><node) $ tryFetchAttribute node xsltName+    priority   = liftM read                $ tryFetchAttribute node xsltPriority+    mode       = liftM (parseExName><node) $ tryFetchAttribute node xsltMode+    template   = compileTemplate content+    params     = map compileVariable paramsXml+    (paramsXml, content) =+                  partition (isElemType xsltParam) $ getChildren node++assembleMatchRule :: Maybe Float -> Maybe ExName -> [MatchRule] -> [Variable] -> Template ->  MatchExpr -> [MatchRule]+assembleMatchRule pri m imp par tmpl mtch@(MatchExpr expr) =+    if isJust pri+    then return $ MatRule mtch (fromJust pri) m imp par tmpl+    else map expand $ splitMatchByPrio expr+  where +    expand (pri', mtch') = MatRule (MatchExpr mtch') pri' m imp par tmpl++-- -----------------------------------++compileVariables :: [XmlTree] -> Map ExName Variable+compileVariables nodes =+    foldl insertVar Map.empty $ varList+  where+    varList               = map compileVariable $ nodes+    insertVar map' var    = Map.insertWith (error $ "parameter or variable "++ show (getVarName var) ++" is already defined on this level")+                                           (getVarName var) var map'++compileVariable :: XmlTree -> Variable+compileVariable node =+    MkVar modus name expr+  where +    modus   = isElemType xsltParam node+    name    = parseExName><node $ fetchAttribute node xsltName+    expr    = parseExpr><node   $ fetchAttributeWDefault node xsltSelect "''"+++-- -----------------------------------++compileAttributeSet :: XmlTree -> AttributeSet+compileAttributeSet node =+    AttribSet name usedsets template+  where+    name     = parseExName><node $ fetchAttribute node xsltName+    usedsets = UsedAttribSets    $ parseExNames><node $ fetchAttributeWDefault node xsltUseAttributeSets ""+    template = compileTemplate   $ filter (isElemType xsltAttribute) $ getChildren node++-- -----------------------------------++compileSortKey :: XmlTree -> SortKey+compileSortKey node =+    SortK expr dataType order+  where+    expr     = parseStringExpr><node $ fetchAttributeWDefault node xsltSelect "."+    dataType = parseAVT><node        $ fetchAttributeWDefault node xsltDataType "text"+    order    = parseAVT><node        $ fetchAttributeWDefault node xsltOrder "ascending"++-- -----------------------------------++parseNTests :: UriMapping -> String -> [NTest]+parseNTests uris = map (parseNTest uris) . words++compileStrips,compilePreserves :: XmlTree -> [NTest]+compileStrips node = parseNTests><node $ fetchAttribute node xsltElements+compilePreserves = compileStrips++-- -----------------------------------++compileAlias :: XmlTree -> (String, String)+compileAlias node = +  (fetchAttribute node xsltStylesheetPrefix, fetchAttribute node xsltResultPrefix)++-- -----------------------------------+-- Document level preprocessing++prepareXSLTDocument	:: XmlTree -> XmlTree+prepareXSLTDocument	= expandExEx . expandNSDecls . stripStylesheet . removePiCmt++removePiCmt :: XmlTree -> XmlTree+removePiCmt = fromJustErr "XSLT: No root element" . filterTree (\n -> not (isPi n) && not (isCmt n))++-- Expand exclude-result-prefixes AND extension-element-prefixes++expandExEx :: XmlTree -> XmlTree+expandExEx = mapTreeCtx expandExExElem ([xsltUri,xmlNamespace,xmlnsNamespace],[])++expandExExElem :: ([String], [String]) -> XNode -> (([String], [String]), XNode)+expandExExElem c@(excl, ext) node+  | isElem node = ((exclAcc, extAcc), nodeNew)+  | otherwise   = (c, node)+  where+    nodeNew    = setAttribute nameExcl (unwords exclAcc) $ setAttribute nameExt (unwords extAcc) node+    exclAcc    = exclNew ++ excl+    extAcc     = extNew  ++ ext+    exclNew    = extNew  ++ (parsePreList><node $ fetchAttributeWDefault node nameExcl "")+    extNew     =             parsePreList><node $ fetchAttributeWDefault node nameExt  ""+    (nameExcl,+     nameExt)  = if (namespaceUri $ fromJust $ getElemName node) == xsltUri+                   then (xsltExlcudeResultPrefixes   , xsltExtensionElementPrefixes   )+                   else (xsltExlcudeResultPrefixesLRE, xsltExtensionElementPrefixesLRE)++-- parse a prefix list, create a list of uris: +-- "pre1 pre2 pre3" -> ["pre1.uri","pre2.uri","pre3.uri"]++parsePreList :: UriMapping -> String -> [String]+parsePreList uris = map (lookupPrefix uris) . words++-- -----------------------------------+-- Extraction of contextual Information from an XML-Node++extractAddUris :: XmlTree -> UriMapping+extractAddUris node = +    (Map.filter (`notElem` exclUris))><node+  where+    exclUris = words $ fetchAttributeWDefault node xsltExlcudeResultPrefixesLRE ""++-- -----------------------------------
+ src/Text/XML/HXT/XSLT/CompiledStylesheet.hs view
@@ -0,0 +1,286 @@+-- ------------------------------------------------------------++{- |+   Module     : Text.XML.HXT.XSLT.Application+   Copyright  : Copyright (C) 2006 Tim Walkenhorst, Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: CompiledStylesheet.hs,v 1.2 2006/11/11 15:36:05 hxml Exp $++   Types for compiled stylesheets++-}++-- ------------------------------------------------------------++module Text.XML.HXT.XSLT.CompiledStylesheet+where  ++import Text.XML.HXT.XSLT.Common+import Text.XML.HXT.XSLT.Names++import Data.Maybe+import Data.List++import Data.Map(Map)+import qualified Data.Map as Map hiding (Map)++-- -------------------++-- compiled-Stylesheet:++data CompiledStylesheet = +  CompStylesheet+    [MatchRule]                +    (Map ExName NamedRule)+    (Map ExName Variable)       +    (Map ExName [AttributeSet]) +    [Strips]                   +    NSAliasing                  +  deriving Show++getMatchRules :: CompiledStylesheet -> [MatchRule]+getMatchRules (CompStylesheet matchRules _ _ _ _ _) = matchRules++getNamedRules :: CompiledStylesheet -> (Map ExName NamedRule)+getNamedRules (CompStylesheet _ namedRules _ _ _ _) = namedRules++getVariables :: CompiledStylesheet -> (Map ExName Variable)+getVariables (CompStylesheet _ _ variables _ _ _) = variables++getAttributeSets :: CompiledStylesheet -> Map ExName [AttributeSet]+getAttributeSets (CompStylesheet _ _ _ attrSets _ _) = attrSets++getStrips :: CompiledStylesheet -> [Strips]+getStrips (CompStylesheet _ _ _ _ strips _) = strips++getAliases :: CompiledStylesheet -> NSAliasing+getAliases (CompStylesheet _ _ _ _ _ aliases) = aliases++-- -------------------++-- common properties of match- and named- rules:++class Rule a where+  getRuleContent :: a -> Template+  getRuleParams  :: a -> [Variable]++-- -------------------+-- Match-Rules:++data MatchRule = +  MatRule MatchExpr+          Float           -- priority+          (Maybe ExName)  -- mode+          [MatchRule]     -- Imported rules only for xsl:apply-imports+          [Variable]      -- xsl:param list+          Template        -- content+  --deriving Show         -- output of imported Rules makes it unreadable++instance Show MatchRule where+    show (MatRule expr prio mode imprules params content)+	= "MkRule expr: " ++ show expr ++ "\n  prio: " ++ show prio ++ "\n  mode: "++ show mode +	  ++ "\n  no. imported rules: " ++ show (length imprules) ++ "\n  xsl-params: " ++ show params +          ++ "\n  content: " ++ show content ++"\n"++instance Rule MatchRule where+    getRuleContent (MatRule _ _ _ _ _ c) = c+    getRuleParams  (MatRule _ _ _ _ p _) = p++getRulePrio :: MatchRule -> Float+getRulePrio (MatRule _ prio _ _ _ _) = prio++getRuleMode :: MatchRule -> Maybe ExName+getRuleMode (MatRule _ _ mode _ _ _) = mode++getRuleImports :: MatchRule -> [MatchRule]+getRuleImports (MatRule _ _ _ imports _ _) = imports++-- -------------------+-- Named-Rules:++data NamedRule = NamRule ExName [Variable] Template+  deriving Show++instance Rule NamedRule where+    getRuleContent (NamRule _ _ c) = c+    getRuleParams  (NamRule _ p _) = p++getRuleName :: NamedRule -> ExName+getRuleName (NamRule name _ _)  = name++-- -------------------+-- Variables ++data Variable = MkVar +                  Bool        -- modus: False => xsl:variable, True => xsl:param+                  ExName      -- name+                  Expr        -- select+		deriving Show++getVarName :: Variable -> ExName+getVarName (MkVar _ name _) = name++getVarExpr :: Variable -> Expr+getVarExpr (MkVar _ _ expr) = expr++isParam :: Variable -> Bool+isParam (MkVar isP _ _) = isP++-- -------------------+-- Attribute sets:++newtype UsedAttribSets = UsedAttribSets [ExName]+  deriving Show++data AttributeSet = AttribSet ExName UsedAttribSets Template+  deriving Show++-- -------------------+-- Whitespace-stripping++type NTest = ExName ++parseNTest :: UriMapping -> String -> NTest+parseNTest = parseExName++type Strips = Map NTest Bool++-- Lookup whether an element of the source document must be stripped.+-- Strip descriptions are ordered by descending import precedence:++lookupStrip :: ExName -> [Strips] -> Bool+lookupStrip name+    = head . (++ [False]) . mapMaybe (lookupStrip1 name)++-- Try to match a qualified name with a set of strip- and preserve-space attributes of the same import precedence:++lookupStrip1 :: ExName -> Strips -> Maybe Bool+lookupStrip1 name spec = +    if      isJust nameMatch then nameMatch+    else if isJust prefMatch then prefMatch+    else if isJust globMatch then globMatch+    else Nothing+  where+    nameMatch = Map.lookup (       name             ) spec+    prefMatch = Map.lookup (ExName "*"  $ exUri name) spec+    globMatch = Map.lookup (ExName "*"  ""          ) spec++feedSpaces :: Bool -> [NTest] -> Strips -> Strips+feedSpaces strip tests = +    Map.unionWithKey feedErr $ Map.fromListWithKey feedErr $ zip tests $ repeat strip+  where+    feedErr k = error $ "Ambiguous strip- or preserve-space rules for " ++ show k++feedStrips, feedPreserves :: [NTest] -> Strips -> Strips+feedStrips    = feedSpaces True+feedPreserves = feedSpaces False++stripDocument :: [Strips] -> XmlTree -> XmlTree+stripDocument strips+    = stripSpaces (\_ n -> lookupStrip (mkExName $ fromJust $ getElemName n) strips) False++stripStylesheet :: XmlTree -> XmlTree+stripStylesheet+    = stripSpaces isStrip True+    where+    isStrip strip' node+	= not (isElemType xsltText node)+	  &&+	  ( maybe strip' (=="default") $ tryFetchAttribute node xmlSpace )++stripSpaces :: (Bool -> XNode -> Bool) -> Bool -> XmlTree -> XmlTree+stripSpaces f def = +    fromJustErr "stripSpaces (internal error)" . filterTreeCtx step def+  where+    step strip node +     | isElem node           = (f strip node, True)+     | isWhitespaceNode node = (strip       , not strip)+     | otherwise             = (strip       , True)++-- -------------------+-- Namespace aliases and exclusion++-- Map a namespace URI to a new URI tuple,++type NSAliasing = Map String String++addAlias :: UriMapping -> String -> String -> NSAliasing -> NSAliasing+addAlias uris oldPr newPr+    = Map.insertWith (error $ "duplicate mapping for " ++ old) old new+    where+    old = lookupPrefix uris oldPr+    new = lookupPrefix uris newPr++-- lookup an alias in a namespace-mapping.+-- returns the original name, if there is no alias for that name.++lookupAlias :: NSAliasing -> QName -> QName+lookupAlias nsm qn+    = mkQName (namePrefix qn) (localPart qn) +      $ maybe (namespaceUri qn) id+      $ Map.lookup (namespaceUri qn) nsm+ +aliasUriMapping :: NSAliasing -> UriMapping -> UriMapping+aliasUriMapping nsm = Map.map (\uri -> Map.findWithDefault uri uri nsm)++-- -------------------+-- Templates:++data Template+    = TemplComposite [Template]   +    | TemplForEach SelectExpr [SortKey] Template+    | TemplChoose [When]    -- otherwise will be represented by <xsl:when test="true()"/> in the abstract Syntax+    | TemplMessage Bool     -- halt?+                   Template -- content            +    | TemplElement ComputedQName+                   UriMapping              -- Namespaces which *must* be added+                   UsedAttribSets          -- +                   Template                -- content+    | TemplAttribute ComputedQName+                     Template              -- content+    | TemplText      String+    | TemplValueOf StringExpr  -- select+    | TemplComment Template+    | TemplProcInstr StringExpr       -- name+                     Template               -- content+    | TemplApply (Maybe SelectExpr) +                 (Maybe ExName)  -- mode+                 (Map ExName Variable) -- passed arguments+                 [SortKey]+    | TemplApplyImports+    | TemplVariable Variable+    | TemplCall ExName                 -- name+               (Map ExName Variable) -- passed arguments+    | TemplCopy UsedAttribSets+                Template+    | TemplCopyOf Expr+    deriving Show++data SortKey+    = SortK StringExpr -- select+            StringExpr -- data-type: number or text(default)+            StringExpr -- order: ascending(default) or descending+    deriving Show++data When+    = WhenPart TestExpr Template +    deriving Show++data ComputedQName+    = LiteralQName QName+    | CompQName UriMapping -- namespace-env+                StringExpr -- name+                StringExpr -- namespace+    deriving Show++-- -------------------+-- different kinds of expressions++newtype SelectExpr = SelectExpr Expr   deriving Show+newtype TestExpr   = TestExpr   Expr   deriving Show+newtype StringExpr = StringExpr Expr   deriving Show+newtype MatchExpr  = MatchExpr  Expr   deriving Show
+ src/Text/XML/HXT/XSLT/Names.hs view
@@ -0,0 +1,152 @@+-- ------------------------------------------------------------++{- |+   Module     : Text.XML.HXT.XSLT.Application+   Copyright  : Copyright (C) 2006 Tim Walkenhorst, Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: Names.hs,v 1.2 2006/11/11 15:36:05 hxml Exp $++   Names and constants for HXSLT++-}++-- ------------------------------------------------------------++module Text.XML.HXT.XSLT.Names+where++import Text.XML.HXT.XSLT.Common++xsltPrefix	:: String+xsltPrefix	= "xsl"++xsltUri		:: String+xsltUri		= "http://www.w3.org/1999/XSL/Transform"++mkXsltName :: String -> QName+mkXsltName name = mkQName xsltPrefix name xsltUri++mkXsltAttribName :: String -> QName+mkXsltAttribName name = mkQName "" name ""++-- XSLT-Element QNames+xsltTransform+  , xsltStylesheet+  , xsltMessage+  , xsltForEach+  , xsltChoose+  , xsltWhen+  , xsltOtherwise+  , xsltIf+  , xsltElement+  , xsltAttribute+  , xsltText+  , xsltValueOf+  , xsltComment+  , xsltProcInstr+  , xsltInclude+  , xsltImport+  , xsltTemplate+  , xsltApplyTemplates+  , xsltApplyImports+  , xsltCallTemplate+  , xsltVariable+  , xsltParam+  , xsltWithParam+  , xsltAttributeSet+  , xsltCopy+  , xsltCopyOf+  , xsltSort+  , xsltStripSpace+  , xsltPreserveSpace+  , xsltNamespaceAlias	:: QName++xsltTransform                   = mkXsltName "transform"+xsltStylesheet                  = mkXsltName "stylesheet"+xsltMessage                     = mkXsltName "message"+xsltForEach                     = mkXsltName "for-each"+xsltChoose                      = mkXsltName "choose"+xsltWhen                        = mkXsltName "when"+xsltOtherwise                   = mkXsltName "otherwise"+xsltIf                          = mkXsltName "if"+xsltElement                     = mkXsltName "element"+xsltAttribute                   = mkXsltName "attribute"+xsltText                        = mkXsltName "text"+xsltValueOf                     = mkXsltName "value-of"+xsltComment                     = mkXsltName "comment"+xsltProcInstr                   = mkXsltName "processing-instruction"+xsltInclude                     = mkXsltName "include"+xsltImport                      = mkXsltName "import"+xsltTemplate                    = mkXsltName "template"+xsltApplyTemplates              = mkXsltName "apply-templates"+xsltApplyImports                = mkXsltName "apply-imports"+xsltCallTemplate                = mkXsltName "call-template"+xsltVariable                    = mkXsltName "variable"+xsltParam                       = mkXsltName "param"+xsltWithParam                   = mkXsltName "with-param"+xsltAttributeSet                = mkXsltName "attribute-set"+xsltCopy                        = mkXsltName "copy"+xsltCopyOf                      = mkXsltName "copy-of"+xsltSort                        = mkXsltName "sort"+xsltStripSpace                  = mkXsltName "strip-space"+xsltPreserveSpace               = mkXsltName "preserve-space"+xsltNamespaceAlias              = mkXsltName "namespace-alias"++-- XSLT-Attribute QNames+xsltTerminate+  , xsltSelect+  , xsltTest+  , xsltName+  , xsltNamespace+  , xsltUseAttributeSets+  , xsltHRef+  , xsltMatch+  , xsltPriority+  , xsltMode+  , xsltDataType+  , xsltOrder+  , xsltElements+  , xsltStylesheetPrefix+  , xsltResultPrefix+  , xsltVersion+  , xsltExlcudeResultPrefixes+  , xsltExtensionElementPrefixes	:: QName++xsltTerminate                   = mkXsltAttribName "terminate" +xsltSelect                      = mkXsltAttribName "select" +xsltTest                        = mkXsltAttribName "test" +xsltName                        = mkXsltAttribName "name"+xsltNamespace                   = mkXsltAttribName "namespace"+xsltUseAttributeSets            = mkXsltAttribName "use-attribute-sets"+xsltHRef                        = mkXsltAttribName "href"+xsltMatch                       = mkXsltAttribName "match"+xsltPriority                    = mkXsltAttribName "priority"+xsltMode                        = mkXsltAttribName "mode"+xsltDataType                    = mkXsltAttribName "data-type"+xsltOrder                       = mkXsltAttribName "order"+xsltElements                    = mkXsltAttribName "elements"+xsltStylesheetPrefix            = mkXsltAttribName "stylesheet-prefix"+xsltResultPrefix                = mkXsltAttribName "result-prefix"+xsltVersion                     = mkXsltAttribName "version"+xsltExlcudeResultPrefixes       = mkXsltAttribName "exclude-result-prefixes"+xsltExtensionElementPrefixes    = mkXsltAttribName "extension-element-prefixes"++-- XSLT-Attribute QNames for special Literal result element attributes+xsltUseAttributeSetsLRE+  , xsltVersionLRE+  , xsltExlcudeResultPrefixesLRE+  , xsltExtensionElementPrefixesLRE	:: QName++xsltUseAttributeSetsLRE         = mkXsltName "use-attribute-sets" +xsltVersionLRE                  = mkXsltName "version"+xsltExlcudeResultPrefixesLRE    = mkXsltName "exclude-result-prefixes"+xsltExtensionElementPrefixesLRE = mkXsltName "extension-element-prefixes"++-- xml:space attribute-name+xmlSpace	:: QName++xmlSpace                        = mkQName "xml" "space" xmlNamespace
+ src/Text/XML/HXT/XSLT/XsltArrows.hs view
@@ -0,0 +1,304 @@+-- ------------------------------------------------------------++{- |+   Module     : Text.XML.HXT.XSLT.XsltArrows+   Copyright  : Copyright (C) 2006 Tim Walkenhorst, Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)+   Stability  : experimental+   Portability: portable+   Version    : $Id: XsltArrows.hs,v 1.1 2006/11/11 15:36:05 hxml Exp $++   The HXT arrow interface for the XSLT module++   The application programming interface to the arrow modules of the Haskell XML Toolbox.+   This module exports all important arrows for input, output, parsing, validating and transforming XML.+   It also exports all basic datatypes and functions of the toolbox.++-}++-- ------------------------------------------------------------+++module Text.XML.HXT.XSLT.XsltArrows+    ( xsltCompileStylesheet+    , xsltCompileStylesheetFromURI+    , xsltApplyStylesheet+    , xsltApplyStylesheetFromURI+    , CompiledStylesheet+    )+where++import qualified Control.Exception as E+    ( catch+    , evaluate )++import Control.Arrow.ListArrows++import Text.XML.HXT.Arrow.DOMInterface+import Text.XML.HXT.Arrow.XmlIOStateArrow+import Text.XML.HXT.Arrow.XmlArrow+import Text.XML.HXT.Arrow.ReadDocument++import Text.XML.HXT.XSLT.Names++import Text.XML.HXT.XSLT.CompiledStylesheet+    ( CompiledStylesheet )++import Text.XML.HXT.XSLT.Compilation+    ( prepareXSLTDocument+    , assembleStylesheet+    )++import Text.XML.HXT.XSLT.Application+    ( applyStylesheet )++-- ------------------------------------------------------------++-- | arrow for applying a pure partial function, catch the error case and issue the error++arrWithCatch	:: (a -> b) -> IOSArrow a b+arrWithCatch f+    = arrIO applyf+      >>>+      ( (applyA (arr issueErr) >>> none)+	|||+	this+      )+    where+    -- applyf	:: a -> IO (Either String b)+    applyf x+	= E.catch ( do+		    res <- E.evaluate ( f x )+		    return . Right $ res+		  )+	  (\ e -> return . Left . ("XSLT: " ++) . show $ e)+	  +-- ------------------------------------------------------------++-- | lift prepareXSLTDocument++prepareXSLTDoc	:: IOSArrow XmlTree XmlTree+prepareXSLTDoc+    = ( arrWithCatch prepareXSLTDocument+	>>>+	traceDoc "prepareXSLTDocument"+      )+      `when`+      documentStatusOk++-- | read an XSLT stylesheet++readXSLTDoc	:: Attributes -> IOSArrow String XmlTree+readXSLTDoc options+    = readFromDocument (options ++ defaultOptions)+    where+    defaultOptions+	= [ (a_check_namespaces, v_1)+	  , (a_validate, v_0)+	  , (a_preserve_comment, v_0)+	  ]++-- | Normalize stylesheet, expand includes, select imports and assemble the rules++compileSSTWithIncludeStack :: [String] -> IOSArrow XmlTree CompiledStylesheet+compileSSTWithIncludeStack incStack+    = traceMsg 2 "compile stylesheet"+      >>>+      getChildren					-- remove document root+      >>>+      isElem						-- select XSLT root element+      >>>+      choiceA+      [ isXsltLREstylesheet				-- simplified syntax+	:-> ( xsltlre2stylesheet+	      >>>+	      assStylesheet []+	    )+      , isXsltStylesheetElem				-- xsl:stylesheet or xsl:transform+	:-> ( expStylesheet+	      $< ( listA ( getChildren			-- take contents and expand includes+			   >>>+			   expandIncludes incStack+			 )+		   >>>+		   partitionA isXsltImport		-- separate imports from normal rules+		 )+	    )+      , this+	:-> ( issueErr "XSLT: Either xsl:stylesheet/xsl:transform or simplified syntax expected"+	      >>>+	      none+	    )+      ]+    where+    assStylesheet imports				-- do the assembly, the compilation+	= arrWithCatch (flip assembleStylesheet $ imports)++    expStylesheet (imports, rest)+	= traceMsg 2 "expandStylesheet"+	  >>>+	  setChildren rest				-- remove import rules from stylesheet+	  >>>+	  assStylesheet $< listA ( constL imports	-- read the imports and assemble the stylesheet+				   >>>+				   getXsltAttrValue xsltHRef+				   >>>+				   compileSSTFromUriWithIncludeStack incStack+				 )++-- | read an include and check for recursive includes++readSSTWithIncludeStack	:: [String] -> IOSArrow String XmlTree+readSSTWithIncludeStack incStack+    = ifP (`elem` incStack)+      ( (issueErr $< arr recursiveInclude) >>> none )+      ( readXSLTDoc []+	>>>+	prepareXSLTDoc+      ) +    where+    recursiveInclude uri+	= "XSLT error: "+	  ++ show uri ++ " is recursively imported/included." +          ++ concatMap (("\n  imported/included from: " ++) . show) incStack++compileSSTFromUriWithIncludeStack	:: [String] -> IOSArrow String CompiledStylesheet+compileSSTFromUriWithIncludeStack incStack+    = comp $< this+    where+    comp uri+	= readSSTWithIncludeStack incStack+	  >>>+	  compileSSTWithIncludeStack (uri:incStack)++expandIncludes	:: [String] -> IOSArrow XmlTree XmlTree+expandIncludes incStack+    = isElem+      >>>+      ( ( expandInclude $< getXsltAttrValue xsltHRef )+        `when`+	isXsltInclude+      )+    where+    expandInclude href+	= ( constA href+	    >>>+	    readSSTWithIncludeStack incStack+	    >>>+	    getChildren+	    >>>+	    isElem+	    >>>+	    choiceA+	    [ isXsltLREstylesheet+	      :-> xsltlre2template++	    , isXsltStylesheetElem+	      :-> ( getChildren+		    >>>+		    expandIncludes (href:incStack)+		  )++	    , this+              :-> issueFatal ("XSLT error: Included file " ++ show href ++ " is not a stylesheet")+	    ]+	  )++isXsltElem		:: ArrowXml a => QName -> a XmlTree XmlTree+isXsltElem qn		= isElem >>> hasNameWith (equivQName qn)++isXsltAttr		:: ArrowXml a => QName -> a XmlTree XmlTree+isXsltAttr qn		= isAttr >>> hasNameWith (equivQName qn)++hasXsltAttr		:: ArrowXml a => QName -> a XmlTree XmlTree+hasXsltAttr qn		= ( getAttrl >>> isXsltAttr qn )+			  `guards`+			  this++isXsltInclude		:: ArrowXml a => a XmlTree XmlTree+isXsltInclude		= isXsltElem xsltInclude++isXsltImport		:: ArrowXml a => a XmlTree XmlTree+isXsltImport		= isXsltElem xsltImport++isXsltLREstylesheet	:: ArrowXml a => a XmlTree XmlTree+isXsltLREstylesheet	= hasXsltAttr xsltVersionLRE++isXsltStylesheetElem	:: ArrowXml a => a XmlTree XmlTree+isXsltStylesheetElem	=  ( isXsltElem xsltTransform+			     <+>+			     isXsltElem xsltStylesheet+			   )+                           >>>+			   hasXsltAttr xsltVersion++getXsltAttrValue	:: ArrowXml a => QName -> a XmlTree String+getXsltAttrValue qn	= getAttrl >>> isXsltAttr qn >>> xshow getChildren++xsltlre2template	:: ArrowXml a => a XmlTree XmlTree+xsltlre2template	= mkqelem xsltTemplate [sqattr xsltMatch "/"] [this]++xsltlre2stylesheet	:: ArrowXml a => a XmlTree XmlTree+xsltlre2stylesheet	= mkqelem xsltTransform [] [ this >>> xsltlre2template ]++--++checkApplySST	::  IOSArrow XmlTree XmlTree -> IOSArrow XmlTree XmlTree+checkApplySST appl+    = ( isRoot+	>>>+	replaceChildren appl+	>>>+	traceDoc "XSLT stylesheet applied"+	>>>+	setDocumentStatusFromSystemState "applying XSLT styleshhet"+      )+      `orElse`+      issueErr "XSLT: complete document with root node required for stylesheet application"++-- | Compile a document representing an XSLT stylesheet into an internal representation+--+-- The internal representation is an abstract syntax tree for the XSLT rules.+-- XSLT imports and includes are evaluated and the rules are normalized and prepared+-- for easy application.++xsltCompileStylesheet		:: IOSArrow XmlTree CompiledStylesheet+xsltCompileStylesheet+    = prepareXSLTDoc+      >>>+      compileSSTWithIncludeStack []++-- | A convinient function for combining reading a stylesheet and compilation.+--+-- Reading an XSLT stylesheet is always done without validation but with+-- namespace propagation. Comments are removed from the stylesheet.++xsltCompileStylesheetFromURI	:: IOSArrow String CompiledStylesheet+xsltCompileStylesheetFromURI	= compileSSTFromUriWithIncludeStack []++-- | apply a compiled XSLT stylesheet to a whole document tree+--+-- The compiled stylesheet must have been created with 'xsltCompileStylesheet'+-- or 'xsltCompileStylesheetFromURI'++xsltApplyStylesheet		:: CompiledStylesheet -> IOSArrow XmlTree XmlTree+xsltApplyStylesheet css+    = checkApplySST (arrWithCatch (applyStylesheet css) >>. concat)++-- | apply an XSLT stylesheet given by an URI to a whole document tree+--+-- The string parameter is the URI of the XSLT stylesheet.+-- In case of an error during stylesheet compilation or stylesheet application+-- all children of the root node are removed and+-- the error status is set in the attribute list of the root node of the input document.++xsltApplyStylesheetFromURI	:: String -> IOSArrow XmlTree XmlTree+xsltApplyStylesheetFromURI uri+    = xsltApplyStylesheet $< (constA uri >>> xsltCompileStylesheetFromURI)++{-+xsltApplyStylesheetWParams	:: Map ExName Expr -> CompiledStylesheet -> IOSArrow XmlTree XmlTree+xsltApplyStylesheetWParams wp css	= arrL (applyStylesheetWParams wp css)+-}
+ src/hxt-package.conf view
@@ -0,0 +1,132 @@+-- arch-tag: Haskell XML Toolbox main description file+name: hxt+version: %VERSION%+-- license: MIT+license-file: LICENCE+maintainer: Uwe Schmidt <uwe@fh-wedel.de>+stability: stable+homepage: http://www.fh-wedel.de/~si/HXmlToolbox/index.html+copyright: Copyright (c) 2005 Uwe Schmidt+tested-with: ghc-6.4.2, ghc-6.6+exposed: True+exposed-modules:+  Control.Arrow.ArrowIf,+  Control.Arrow.ArrowIO,+  Control.Arrow.ArrowList,+  Control.Arrow.ArrowState,+  Control.Arrow.ArrowStrict,+  Control.Arrow.ArrowTree,+  Control.Arrow.IOListArrow,+  Control.Arrow.IOStateListArrow,+  Control.Arrow.ListArrow,+  Control.Arrow.ListArrows,+  Control.Arrow.StateListArrow,+  Control.Monad.MonadStateIO,+  Control.Strategies.DeepSeq,+  Data.AssocList,+  Data.NavTree,+  Data.Tree.Class,+  Data.Tree.NTree.Filter,+  Data.Tree.NTree.TypeDefs,+  System.PipeOpen,+  Text.XML.HXT.Arrow,+  Text.XML.HXT.Arrow.DocumentInput,+  Text.XML.HXT.Arrow.DocumentOutput,+  Text.XML.HXT.Arrow.DOMInterface,+  Text.XML.HXT.Arrow.DTDProcessing,+  Text.XML.HXT.Arrow.Edit,+  Text.XML.HXT.Arrow.GeneralEntitySubstitution,+  Text.XML.HXT.Arrow.Namespace,+  Text.XML.HXT.Arrow.ParserInterface+  Text.XML.HXT.Arrow.ProcessDocument,+  Text.XML.HXT.Arrow.ReadDocument,+  Text.XML.HXT.Arrow.WriteDocument,+  Text.XML.HXT.Arrow.XmlArrow,+  Text.XML.HXT.Arrow.XmlIOStateArrow,+  Text.XML.HXT.Arrow.XmlNode,+  Text.XML.HXT.Arrow.XmlNodeSet,+  Text.XML.HXT.DOM,+  Text.XML.HXT.DOM.EditFilters,+  Text.XML.HXT.DOM.FormatXmlTree,+  Text.XML.HXT.DOM.Namespace,+  Text.XML.HXT.DOM.NamespaceFilter,+  Text.XML.HXT.DOM.NamespacePredicates,+  Text.XML.HXT.DOM.TypeDefs,+  Text.XML.HXT.DOM.Unicode,+  Text.XML.HXT.DOM.Util,+  Text.XML.HXT.DOM.XmlKeywords,+  Text.XML.HXT.DOM.XmlOptions,+  Text.XML.HXT.DOM.XmlState,+  Text.XML.HXT.DOM.XmlTree,+  Text.XML.HXT.DOM.XmlTreeFilter,+  Text.XML.HXT.DOM.XmlTreeFunctions,+  Text.XML.HXT.DOM.XmlTreeTypes,+  Text.XML.HXT.IO.GetFILE,+  Text.XML.HXT.IO.GetHTTPCurl,+  Text.XML.HXT.IO.GetHTTPNative,+  Text.XML.HXT.Parser,+  Text.XML.HXT.Parser.DefaultURI,+  Text.XML.HXT.Parser.DTDProcessing,+  Text.XML.HXT.Parser.HtmlParsec,+  Text.XML.HXT.Parser.HtmlParser,+  Text.XML.HXT.Parser.MainFunctions,+  Text.XML.HXT.Parser.ProtocolHandler,+  Text.XML.HXT.Parser.ProtocolHandlerFile,+  Text.XML.HXT.Parser.ProtocolHandlerHttpCurl,+  Text.XML.HXT.Parser.ProtocolHandlerHttpNative,+  Text.XML.HXT.Parser.ProtocolHandlerHttpNativeOrCurl,+  Text.XML.HXT.Parser.ProtocolHandlerUtil,+  Text.XML.HXT.Parser.XmlCharParser,+  Text.XML.HXT.Parser.XmlDTDParser,+  Text.XML.HXT.Parser.XmlDTDTokenParser,+  Text.XML.HXT.Parser.XmlInput,+  Text.XML.HXT.Parser.XmlOutput,+  Text.XML.HXT.Parser.XmlParsec,+  Text.XML.HXT.Parser.XmlParser,+  Text.XML.HXT.Parser.XmlTokenParser,+  Text.XML.HXT.Validator.AttributeValueValidation,+  Text.XML.HXT.Validator.DocTransformation,+  Text.XML.HXT.Validator.DocValidation,+  Text.XML.HXT.Validator.DTDValidation,+  Text.XML.HXT.Validator.IdValidation,+  Text.XML.HXT.Validator.RE,+  Text.XML.HXT.Validator.Validation,+  Text.XML.HXT.Validator.ValidationFilter,+  Text.XML.HXT.Validator.XmlRE,+  Text.XML.HXT.XPath,+  Text.XML.HXT.XPath.NavTree,+  Text.XML.HXT.XPath.XPathArithmetic,+  Text.XML.HXT.XPath.XPathDataTypes,+  Text.XML.HXT.XPath.XPathEval,+  Text.XML.HXT.XPath.XPathFct,+  Text.XML.HXT.XPath.XPathKeywords,+  Text.XML.HXT.XPath.XPathParser,+  Text.XML.HXT.XPath.XPathToNodeSet,+  Text.XML.HXT.XPath.XPathToString,+  Text.XML.HXT.XSLT.Application,+  Text.XML.HXT.XSLT.Common,+  Text.XML.HXT.XSLT.Compilation,+  Text.XML.HXT.XSLT.CompiledStylesheet,+  Text.XML.HXT.XSLT.Names,+  Text.XML.HXT.XSLT.XsltArrows,+  Text.XML.HXT.RelaxNG,+  Text.XML.HXT.RelaxNG.CreatePattern,+  Text.XML.HXT.RelaxNG.DataTypeLibMysql,+  Text.XML.HXT.RelaxNG.DataTypeLibraries,+  Text.XML.HXT.RelaxNG.DataTypeLibUtils,+  Text.XML.HXT.RelaxNG.DataTypeLibW3C,+  Text.XML.HXT.RelaxNG.DataTypes,+  Text.XML.HXT.RelaxNG.PatternFunctions,+  Text.XML.HXT.RelaxNG.PatternToString,+  Text.XML.HXT.RelaxNG.SchemaGrammar,+  Text.XML.HXT.RelaxNG.Schema,+  Text.XML.HXT.RelaxNG.Simplification,+  Text.XML.HXT.RelaxNG.Utils,+  Text.XML.HXT.RelaxNG.Validation,+  Text.XML.HXT.RelaxNG.Validator+hs-source-dirs: .+ghc-options: -Wall -O2 -fglasgow-exts+import-dirs: /usr/local/lib/hxt/imports+library-dirs: /usr/local/lib/hxt+hs-libraries: HShxt+depends: base, haskell98, parsec, HTTP, HUnit, network